Closed M0XZS closed 8 months ago
I put the debugging on and found this just before the reset:
[I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=1 [D][esp32-hal-i2c.c:1427] i2cCheckLineState(): Recovered after 1 Cycles [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [W][esp32-hal-i2c.c:1419] i2cCheckLineState(): invalid state sda(21)=0, scl(22)=1 [D][esp32-hal-i2c.c:1427] i2cCheckLineState(): Recovered after 1 Cycles [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit E (176382) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time: E (176382) task_wdt: - IDLE0 (CPU 0) E (176382) task_wdt: Tasks currently running: E (176382) task_wdt: CPU 0: taskAPRS E (176382) task_wdt: CPU 1: IDLE1 E (176382) task_wdt: Aborting. abort() was called at PC 0x4018d32c on core 0
Returning Task 1 to priority 1 seems to fix the problem:
// Task 1
xTaskCreatePinnedToCore(
taskAPRS, /* Function to implement the task */
"taskAPRS", /* Name of the task */
8192, /* Stack size in words */
NULL, /* Task input parameter */
1, /* Priority of the task */
&taskAPRSHandle, /* Task handle. */
0); /* Core where the task should run */
This did improve it but did not fix it.
This seems to be the problem, but not sure why yet:
[I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit [I][esp32-hal-i2c.c:1138] i2cProcQueue(): Bus busy, reinit
and it gets into a loop.
EDIT: I think this was due to there being no 4K7 pull-up resistors on the display I2C lines. I have added these and will check.
Adding the two pull-up resistors on the I2C bus to the OLED, and changing the priority on the task taskAPRS has fixed all of my problems, so closing this issue.
Since moving from V1.1 to 1.2, I have noticed that the ESP starts to reset when the INET to RF is turned on in the IGGate.
I am using an external radio (with RF shielding) - nothing changed other than the firmware, and it looks like the transmitter does into an extended transmission with no APRS modulation, and then the ESP32 resets.
I did a Diff on the V1.1 and V1.4b changes, and I can not see any reason this would happen.