Skip to content

Watchdog Issue on V3 #63

@CoryRamsey

Description

@CoryRamsey

Hello. I've just received a new V3 watchy. I'm still working on wrapping my head around the codebase here, but I'm having an issue right out of the box with your pre-built binary and, as expected, the version I'm compiling myself. There seems to be an issue with the watchdog. It never makes it to the watch face after flashing and resetting. An additional reset just sends it back into a panic.

I'm poking at it a bit to try to debug. I've managed to get it to actually boot with some modifications, but I'm still getting random panics during use.

Here is my core dump on completely unmodified code:

===============================================================
==================== ESP32 CORE DUMP START ====================
The ROM ELF file won't load automatically since it was not found for the provided chip type.

Crashed task handle: 0x3fcb9ec0, name: 'watchdogTask', GDB name: 'process 1070309056'
Crashed task is not in the interrupt context
Panic reason: assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)

================== CURRENT THREAD REGISTERS ===================
exccause 0x0 (IllegalInstructionCause)
excvaddr 0x0
epc1 0x42044d9a
epc2 0x0
epc3 0x0
epc4 0x0
epc5 0x0
epc6 0x0
eps2 0x0
eps3 0x0
eps4 0x0
eps5 0x0
eps6 0x0
pc 0x403783d8 0x403783d8 <panic_abort+16>
lbeg 0x40056f08 1074097928
lend 0x40056f12 1074097938
lcount 0x0 0
sar 0x8 8
ps 0x60420 394272
threadptr
br
scompare1
acclo
acchi
m0
m1
m2
m3
expstate
f64r_lo
f64r_hi
f64s
fcr
fsr
a0 0x8037ee14 -2143818220
a1 0x3fcc11e0 1070338528
a2 0x3fcc1220 1070338592
a3 0x1 1
a4 0xa 10
a5 0xc11b0000 -1055195136
a6 0x60023 393251
a7 0x3 3
a8 0x3fcaf994 1070266772
a9 0x1 1
a10 0x3fcc1317 1070338839
a11 0x3fcc1317 1070338839
a12 0x3fcc1317 1070338839
a13 0x3fca83c0 1070236608
a14 0x3fca6178 1070227832
a15 0x3fcaffdc 1070268380

==================== CURRENT THREAD STACK =====================
#0 panic_abort (details=0x3fcc1220 "assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)") at /root/.platformio/packages/framework-espidf/components/esp_system/panic.c:481
#1 0x4037ee14 in esp_system_abort (details=0x3fcc1220 "assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)") at /root/.platformio/packages/framework-espidf/components/esp_system/port/esp_system_chip.c:87
#2 0x40386c3c in __assert_func (file=, line=, func=, expr=) at /root/.platformio/packages/framework-espidf/components/newlib/assert.c:80
#3 0x4200a624 in loopWatchdogTask (parameter=) at src/other/watchdogTask/watchdogTask.cpp:53
#4 0x4037fe99 in vPortTaskWrapper (pxCode=0x4200a5f0 <loopWatchdogTask(void*)>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

======================== THREADS INFO =========================
Id Target Id Frame

  • 1 process 1070309056 panic_abort (details=0x3fcc1220 "assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)") at /root/.platformio/packages/framework-espidf/components/esp_system/panic.c:481
    2 process 1070310436 0x4037c1ee in esp_cpu_wait_for_intr () at /root/.platformio/packages/framework-espidf/components/esp_hw_support/cpu.c:64
    3 process 1070311564 0x4037c1ee in esp_cpu_wait_for_intr () at /root/.platformio/packages/framework-espidf/components/esp_hw_support/cpu.c:64
    4 process 1070330872 0x400559e0 in ?? ()
    5 process 1070304160 0x400559e0 in ?? ()
    6 process 1070313460 prvProcessReceivedCommands () at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/timers.c:856
    7 process 1070289948 0x400559e0 in ?? ()
    8 process 1070308700 0x00000020 in ?? ()
    9 process 1070307940 0x400559e0 in ?? ()
    10 process 1070288052 0x400559e0 in ?? ()

     TCB             NAME PRIO C/B  STACK USED/FREE
    

0x3fcb9ec0 watchdogTask 1/1 608/376
0x3fcba424 IDLE0 0/0 640/112
0x3fcba88c IDLE1 0/0 640/120
0x3fcbf3f8 loopTask 20/20 1664/14716
0x3fcb8ba0 esp_timer 22/22 672/3412
0x3fcbaff4 Tmr Svc 1/1 592/928
0x3fcb541c ipc1 1/1 672/824
0x3fcb9d5c motorTask 22/22 656/332
0x3fcb9a64 buttonTask 12/12 656/4032
0x3fcb4cb4 ipc0 24/24 672/816

==================== THREAD 1 (TCB: 0x3fcb9ec0, name: 'watchdogTask') =====================
#0 panic_abort (details=0x3fcc1220 "assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)") at /root/.platformio/packages/framework-espidf/components/esp_system/panic.c:481
#1 0x4037ee14 in esp_system_abort (details=0x3fcc1220 "assert failed: void loopWatchdogTask(void*) watchdogTask.cpp:53 (0)") at /root/.platformio/packages/framework-espidf/components/esp_system/port/esp_system_chip.c:87
#2 0x40386c3c in __assert_func (file=, line=, func=, expr=) at /root/.platformio/packages/framework-espidf/components/newlib/assert.c:80
#3 0x4200a624 in loopWatchdogTask (parameter=) at src/other/watchdogTask/watchdogTask.cpp:53
#4 0x4037fe99 in vPortTaskWrapper (pxCode=0x4200a5f0 <loopWatchdogTask(void*)>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 2 (TCB: 0x3fcba424, name: 'IDLE0') =====================
#0 0x4037c1ee in esp_cpu_wait_for_intr () at /root/.platformio/packages/framework-espidf/components/esp_hw_support/cpu.c:64
#1 0x4204204c in esp_vApplicationIdleHook () at /root/.platformio/packages/framework-espidf/components/esp_system/freertos_hooks.c:58
#2 0x40380c36 in prvIdleTask (pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:4341
#3 0x4037fe99 in vPortTaskWrapper (pxCode=0x40380bbc , pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 3 (TCB: 0x3fcba88c, name: 'IDLE1') =====================
#0 0x4037c1ee in esp_cpu_wait_for_intr () at /root/.platformio/packages/framework-espidf/components/esp_hw_support/cpu.c:64
#1 0x4204204c in esp_vApplicationIdleHook () at /root/.platformio/packages/framework-espidf/components/esp_system/freertos_hooks.c:58
#2 0x40380c36 in prvIdleTask (pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:4341
#3 0x4037fe99 in vPortTaskWrapper (pxCode=0x40380bbc , pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 4 (TCB: 0x3fcbf3f8, name: 'loopTask') =====================
#0 0x400559e0 in ?? ()
#1 0x4038011e in vPortClearInterruptMaskFromISR (prev_level=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fcc1a84) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4037f58e in xQueueReceive (xQueue=0x3fcc1a38, pvBuffer=0x3fcbeea0, xTicksToWait=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/queue.c:1632
#4 0x42036779 in s_i2c_send_commands (i2c_master=0x3fcc15f4, ticks_to_wait=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:536
#5 0x42036981 in s_i2c_transaction_start (i2c_dev=0x3fcc1aac, xfer_timeout_ms=) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:649
#6 0x42036a4d in s_i2c_synchronous_transaction (i2c_dev=0x3fcc1aac, i2c_ops=0x3fcbef20, ops_dim=3, timeout_ms=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:945
#7 s_i2c_synchronous_transaction (i2c_dev=0x3fcc1aac, i2c_ops=0x3fcbef20, ops_dim=3, timeout_ms=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:925
#8 0x420370ec in i2c_master_multi_buffer_transmit (i2c_dev=0x3fcc1aac, buffer_info_array=, array_size=, xfer_timeout_ms=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:1207
#9 i2c_master_multi_buffer_transmit (i2c_dev=0x3fcc1aac, buffer_info_array=, array_size=, xfer_timeout_ms=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:1184
#10 0x42037156 in i2c_master_transmit (i2c_dev=0x3fcc1aac, write_buffer=0x3fcc1570 <error: Cannot access memory at address 0x3fcc1570>, write_size=9, xfer_timeout_ms=50) at /root/.platformio/packages/framework-espidf/components/esp_driver_i2c/i2c_master.c:1222
#11 0x4202dbfc in i2cWrite (i2c_num=0 '\000', address=24, buff=0x3fcc1570 <error: Cannot access memory at address 0x3fcc1570>, size=9, timeOutMillis=50) at /root/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-i2c-ng.c:263
#12 0x4201d442 in TwoWire::endTransmission (this=0x3fcae6bc , sendStop=true) at /root/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src/Wire.cpp:454
#13 0x420f6990 in TwoWire::endTransmission (this=0x3fcae6bc ) at /root/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src/Wire.cpp:475
#14 0x42004824 in writeRegisterBMA4 (address=24 '\030', reg=94 '^', data=0x3c120f7b <bma423_config_file+2920> "\206A\264\016\003/\002\210\333~\003C\vBF\215DAG\200\005o\224\017v\177\177\002/E\211BC\003CI\210\245o@\221\244\177\0250\342o\323n\003/\0040\203B\200.w\264\004@%)\004B\203BE\202\224o\004\205\300\262\220.c\264\025\207<\214\304@F\177\302\206\a@\206", <incomplete sequence \364\277>, len=8) at src/hardware/acc/acc.cpp:40 #15 writeRegisterBMA4 (address=24 '\030', reg=94 '^', data=0x3c120f7b <bma423_config_file+2920> "\206A\264\016\003/\002\210\333~\003C\vBF\215DAG\200\005o\224\017v\177\177\002/E\211BC\003CI\210\245o@\221\244\177\0250\342o\323n\003/\0040\203B\200.w\264\004@%)\004B\203BE\202\224o\004\205\300\262\220.c\264\025\207<\214\304@F\177\302\206\a@\206", <incomplete sequence \364\277>, len=8) at src/hardware/acc/acc.cpp:29
#16 0x420f6362 in write_regs (addr=, data=0x3c120f7b <bma423_config_file+2920> "\206A\264\016\003/\002\210\333~\003C\vBF\215DAG\200\005o\224\017v\177\177\002/E\211BC\003CI\210\245o@\221\244\177\0250\342o\323n\003/\0040\203B\200.w\264\004@%)\004B\203BE\202\224o\004\205\300\262\220.c\264\025\207<\214\304@F\177\302\206\a@\206", <incomplete sequence \364\277>, len=8 '\b', dev=0x50000014 <rM+20>) at src/hardware/acc/lib/bma4/bma4.c:898 #17 0x42004d93 in stream_transfer_write (stream_data=0x3c120f7b <bma423_config_file+2920> "\206A\264\016\003/\002\210\333~\003C\vBF\215DAG\200\005o\224\017v\177\177\002/E\211BC\003CI\210\245o@\221\244\177\0250\342o\323n\003/\0040\203B\200.w\264\004@%)\004B\203BE\202\224o\004\205\300\262\220.c\264\025\207<\214\304@F\177\302\206\a@\206", <incomplete sequence \364\277>, index=2920, dev=0x50000014 <rM+20>) at src/hardware/acc/lib/bma4/bma4.c:3140
#18 bma4_write_config_file (dev=0x50000014 <rM+20>) at src/hardware/acc/lib/bma4/bma4.c:790
#19 0x4200501c in bma423_write_config_file (dev=) at src/hardware/acc/lib/bma4/bma423.c:733
#20 0x4201fe5d in StableBMA::begin4 (this=0x50000014 <rM+20>, atchyVersion=3 '\003', address=24 '\030', whichBma=, readCallBlack=0x42004788 <readRegisterBMA4(unsigned char, unsigned char, unsigned char*, unsigned short)>, writeCallBlack=) at .pio/libdeps/Watchy_3/StableBMA/src/StableBMA.cpp:105
#21 0x42004647 in initAcc () at src/hardware/acc/acc.cpp:179
#22 0x420046ab in getSteps () at src/hardware/acc/acc.cpp:246
#23 0x42017868 in drawTimeAfterApply (forceDraw=true) at src/ui/watchface/watchfaces/inkField_Szybet/inkField.cpp:115
#24 0x4201718d in wManageOneDrawAll (wdo=0x3c126e20 ) at src/ui/watchface/watchfaceManagers/wManageOne.cpp:183
#25 0x42017200 in wManageOneInit (wdo=0x3c126e20 ) at src/ui/watchface/watchfaceManagers/wManageOne.cpp:21
#26 0x42017213 in wManageOneLaunch (wdo=0x3c126e20 , init=true) at src/ui/watchface/watchfaceManagers/wManageOne.cpp:170
#27 0x42016d3d in watchfaceManageAll (init=true) at src/ui/watchface/watchfaceManagers/wManageAll.cpp:156
#28 0x42016d60 in initWatchfaceManage () at src/ui/watchface/watchfaceManagers/wManageAll.cpp:201
#29 0x4200afbc in managerLaunchFunc (loopFunc=0x42016d4c <loopWatchfaceManage()>, place=watchface, initFunc=0x42016d58 <initWatchfaceManage()>, exitFunc=0x0) at src/ui/manager/manager.cpp:69
#30 managerLaunchFunc (place=watchface, initFunc=0x42016d58 <initWatchfaceManage()>, loopFunc=0x42016d4c <loopWatchfaceManage()>, exitFunc=0x0) at src/ui/manager/manager.cpp:32
#31 0x4200b078 in loopManager () at src/ui/manager/manager.cpp:455
#32 0x42009108 in loop () at src/main.cpp:75
#33 0x42030d57 in loopTask (pvParameters=0x0) at /root/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:74
#34 0x4037fe99 in vPortTaskWrapper (pxCode=0x42030d1c <loopTask(void*)>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 5 (TCB: 0x3fcb8ba0, name: 'esp_timer') =====================
#0 0x400559e0 in ?? ()
#1 0x4038011e in vPortClearInterruptMaskFromISR (prev_level=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fca6178 ) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x403822ed in ulTaskGenericNotifyTake (uxIndexToWait=0, xClearCountOnExit=1, xTicksToWait=4294967295) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:5759
#4 0x4204397c in timer_task (arg=) at /root/.platformio/packages/framework-espidf/components/esp_timer/src/esp_timer.c:459
#5 0x4037fe99 in vPortTaskWrapper (pxCode=0x4204396c <timer_task>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 6 (TCB: 0x3fcbaff4, name: 'Tmr Svc') =====================
#0 prvProcessReceivedCommands () at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/timers.c:856
#1 prvTimerTask (pvParameters=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/timers.c:688
#2 0x4037fe99 in vPortTaskWrapper (pxCode=0x4037f9f4 , pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 7 (TCB: 0x3fcb541c, name: 'ipc1') =====================
#0 0x400559e0 in ?? ()
#1 0x4038011e in vPortClearInterruptMaskFromISR (prev_level=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fca6178 ) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x403822ed in ulTaskGenericNotifyTake (uxIndexToWait=0, xClearCountOnExit=1, xTicksToWait=4294967295) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:5759
#4 0x40377761 in ipc_task (arg=) at /root/.platformio/packages/framework-espidf/components/esp_system/esp_ipc.c:62
#5 0x4037fe99 in vPortTaskWrapper (pxCode=0x40377720 <ipc_task>, pvParameters=0x1) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 8 (TCB: 0x3fcb9d5c, name: 'motorTask') =====================
#0 0x00000020 in ?? ()
Backtrace stopped: Cannot access memory at address 0x20

==================== THREAD 9 (TCB: 0x3fcb9a64, name: 'buttonTask') =====================
#0 0x400559e0 in ?? ()
#1 0x4038011e in vPortClearInterruptMaskFromISR (prev_level=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fca6178 ) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40381bc7 in vTaskSuspend (xTaskToSuspend=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:2060
#4 0x42007a5e in loopButtonsTask (parameter=0x0) at src/hardware/input/buttons.cpp:221
#5 0x4037fe99 in vPortTaskWrapper (pxCode=0x42007950 <loopButtonsTask(void*)>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

==================== THREAD 10 (TCB: 0x3fcb4cb4, name: 'ipc0') =====================
#0 0x400559e0 in ?? ()
#1 0x4038011e in vPortClearInterruptMaskFromISR (prev_level=) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fca6178 ) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x403822ed in ulTaskGenericNotifyTake (uxIndexToWait=0, xClearCountOnExit=1, xTicksToWait=4294967295) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/tasks.c:5759
#4 0x40377761 in ipc_task (arg=) at /root/.platformio/packages/framework-espidf/components/esp_system/esp_ipc.c:62
#5 0x4037fe99 in vPortTaskWrapper (pxCode=0x40377720 <ipc_task>, pvParameters=0x0) at /root/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:139

======================= ALL MEMORY REGIONS ========================
Name Address Size Attrs
.rtc.text 0x600fe000 0x5c R XA
.rtc.force_fast 0x600fe05c 0x20 RW A
.rtc.data 0x50000000 0x1950 RW A
.rtc_noinit 0x50001950 0x0 RW
.rtc.force_slow 0x50001950 0x0 RW
.iram0.vectors 0x40374000 0x403 R XA
.iram0.text 0x40374404 0x17787 R XA
.dram0.data 0x3fc9bc00 0xed58 RW A
.flash.text 0x42000020 0x100fc0 R XA
.flash.appdesc 0x3c110020 0x100 R A
.flash.rodata 0x3c110120 0x2cd04 RW A
.iram0.data 0x4038bc00 0x0 RW
.iram0.bss 0x4038bc00 0x0 RW
.dram0.heap_start 0x3fcb3b30 0x0 RW
.coredump.tasks.data 0x3fcb9ec0 0x154 RW
.coredump.tasks.data 0x3fcc1120 0x3a0 RW
.coredump.tasks.data 0x3fcba424 0x154 RW
.coredump.tasks.data 0x3fcba190 0x280 RW
.coredump.tasks.data 0x3fcba88c 0x154 RW
.coredump.tasks.data 0x3fcba600 0x280 RW
.coredump.tasks.data 0x3fcbf3f8 0x154 RW
.coredump.tasks.data 0x3fcbed70 0x680 RW
.coredump.tasks.data 0x3fcb8ba0 0x154 RW
.coredump.tasks.data 0x3fcb88f0 0x2a0 RW
.coredump.tasks.data 0x3fcbaff4 0x154 RW
.coredump.tasks.data 0x3fcbad90 0x250 RW
.coredump.tasks.data 0x3fcb541c 0x154 RW
.coredump.tasks.data 0x3fcb5150 0x2a0 RW
.coredump.tasks.data 0x3fcb9d5c 0x154 RW
.coredump.tasks.data 0x3fcc0e30 0x290 RW
.coredump.tasks.data 0x3fcb9a64 0x154 RW
.coredump.tasks.data 0x3fcc09a0 0x290 RW
.coredump.tasks.data 0x3fcb4cb4 0x154 RW
.coredump.tasks.data 0x3fcb49e0 0x2a0 RW

===================== ESP32 CORE DUMP END =====================

Let me know if I'm completely missing something dumb. I really appreciate your work on this project. I hope to get this resolved. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions