-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(ESP32) Bootloop after adding SK6812 led strip to existing setup with 6 ws2812b #4301
Comments
I can see the same crash
The error related to "AR: Failed to initialize sound input driver. Please check input PIN settings. " is there all the time even if the usermod is not active and pins are unused |
Thanks for your complete log @dosipod. I think was a problem with my board, and amazon works all night... so, I bought 2 more ESP32 boards thinking mine is broken 😅.... Your log is much better and complete than mine. So Thanks for take time to reproduce the error and share the information. |
@dosipod @chybeat please check if the crash also happens if you configure all outputs as ws2812b It might be that the bug is related to having one "sk6812" (RGBW) output among all other being ws2812b. |
I could reproduce the crash, but its still very mysterious to me what's going on. to reproduce, its enough to add LEDs in preferences
initServer
heap 208700
initIR
heap 208700
Initial connect or forced reconnect.
Defaulf WiFi used.
initConnection() called.
Access point disabled (init).
Connecting to WLAN2...
abort() was called at PC 0x4008da92 on core 1
ELF file SHA256: 0000000000000000
Backtrace: 0x4008adc0:0x3ffbff70 0x4008b11d:0x3ffbff90 0x4008da92:0x3ffbffb0 0x4008cb3d:0x3ffbffe0 0x40084106:0x3ffc0000 0x400862fd:0x3ffc0030 0x4012ce6f:0x3ffb1df0 0x40114799:0x3ffb1e20 0x4011d2ed:0x3ffb1e50 0x4011d57c:0x3ffb1f10 0x4011e05a:0x3ffb1f90 0x4013ed05:0x3ffb1fb0 0x4008cba6:0x3ffb1fd0
#0 0x4008adc0:0x3ffbff70 in invoke_abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#1 0x4008b11d:0x3ffbff90 in abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#2 0x4008da92:0x3ffbffb0 in vPortCPUAcquireMutexIntsDisabledInternal at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:3507
(inlined by) vPortCPUAcquireMutexIntsDisabled at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/portmux_impl.h:98
(inlined by) vTaskEnterCritical at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4201
#3 0x4008cb3d:0x3ffbffe0 in xQueueIsQueueFullFromISR at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:2041
#4 0x40084106:0x3ffc0000 in i2s_intr_handler_default at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/driver/i2s.c:1330
#5 0x400862fd:0x3ffc0030 in _xt_lowint1 at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
#6 0x4012ce6f:0x3ffb1df0 in WiFiSTAClass::localIP() at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/libraries/WiFi/src/WiFiSTA.cpp:721
#7 0x40114799:0x3ffb1e20 in NetworkClass::isConnected() at wled00/src/dependencies/network/Network.cpp:89
#8 0x4011d2ed:0x3ffb1e50 in WLED::handleConnection() at wled00/bus_manager.h:122
#9 0x4011d57c:0x3ffb1f10 in WLED::loop() at wled00/bus_manager.h:122
#10 0x4011e05a:0x3ffb1f90 in loop() at wled00/wled_main.cpp:23
#11 0x4013ed05:0x3ffb1fb0 in loopTask(void*) at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/cores/esp32/main.cpp:23
#12 0x4008cba6:0x3ffb1fd0 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
Rebooting...
ets Jul 29 2019 12:21:46 after that we have a bootloop, with several different crash locations Defaulf WiFi used.
initConnection() called.
Access point disabled (init).
Connecting to WLAN2...
abort() was called at PC 0x4008da92 on core 1
ELF file SHA256: 0000000000000000
Backtrace: 0x4008adc0:0x3ffbff70 0x4008b11d:0x3ffbff90 0x4008da92:0x3ffbffb0 0x4008cb3d:0x3ffbffe0 0x40084106:0x3ffc0000 0x400862fd:0x3ffc0030 0x401055af:0x3ffb1ef0 0x4011d588:0x3ffb1f10 0x4011e05a:0x3ffb1f90 0x4013ed05:0x3ffb1fb0 0x4008cba6:0x3ffb1fd0
#0 0x4008adc0:0x3ffbff70 in invoke_abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#1 0x4008b11d:0x3ffbff90 in abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#2 0x4008da92:0x3ffbffb0 in vPortCPUAcquireMutexIntsDisabledInternal at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:3507
(inlined by) vPortCPUAcquireMutexIntsDisabled at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/portmux_impl.h:98
(inlined by) vTaskEnterCritical at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4201
#3 0x4008cb3d:0x3ffbffe0 in xQueueIsQueueFullFromISR at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:2041
#4 0x40084106:0x3ffc0000 in i2s_intr_handler_default at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/driver/i2s.c:1330
#5 0x400862fd:0x3ffc0030 in _xt_lowint1 at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
#6 0x401055af:0x3ffb1ef0 in handleTransitions() at wled00/led.cpp:181
#7 0x4011d588:0x3ffb1f10 in WLED::loop() at wled00/bus_manager.h:122
#8 0x4011e05a:0x3ffb1f90 in loop() at wled00/wled_main.cpp:23
#9 0x4013ed05:0x3ffb1fb0 in loopTask(void*) at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/cores/esp32/main.cpp:23
#10 0x4008cba6:0x3ffb1fd0 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1) Initial connect or forced reconnect.
Defaulf WiFi used.
initConnection() called.
Access point disabled (init).
Connecting to WLAN2...
abort() was called at PC 0x4008da92 on core 1
ELF file SHA256: 0000000000000000
Backtrace: 0x4008adc0:0x3ffbff70 0x4008b11d:0x3ffbff90 0x4008da92:0x3ffbffb0 0x4008cb3d:0x3ffbffe0 0x40084106:0x3ffc0000 0x400862fd:0x3ffc0030 0x40084ca5:0x3ffb1eb0 0x4008584b:0x3ffb1ed0 0x40082cd7:0x3ffb1ef0 0x4011d6e3:0x3ffb1f10 0x4011e05a:0x3ffb1f90 0x4013ed05:0x3ffb1fb0 0x4008cba6:0x3ffb1fd0
#0 0x4008adc0:0x3ffbff70 in invoke_abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#1 0x4008b11d:0x3ffbff90 in abort at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:648
#2 0x4008da92:0x3ffbffb0 in vPortCPUAcquireMutexIntsDisabledInternal at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:3507
(inlined by) vPortCPUAcquireMutexIntsDisabled at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/portmux_impl.h:98
(inlined by) vTaskEnterCritical at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4201
#3 0x4008cb3d:0x3ffbffe0 in xQueueIsQueueFullFromISR at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:2041
#4 0x40084106:0x3ffc0000 in i2s_intr_handler_default at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/driver/i2s.c:1330
#5 0x400862fd:0x3ffc0030 in _xt_lowint1 at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
#6 0x40084ca5:0x3ffb1eb0 in timer_overflow_happened at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer_esp32.c:351
(inlined by) esp_timer_impl_get_time at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer_esp32.c:190
#7 0x4008584b:0x3ffb1ed0 in esp_timer_get_time at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer.c:435
#8 0x40082cd7:0x3ffb1ef0 in millis at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/cores/esp32/esp32-hal-misc.c:172
#9 0x4011d6e3:0x3ffb1f10 in WLED::loop() at wled00/bus_manager.h:122
#10 0x4011e05a:0x3ffb1f90 in loop() at wled00/wled_main.cpp:23
#11 0x4013ed05:0x3ffb1fb0 in loopTask(void*) at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/cores/esp32/main.cpp:23
#12 0x4008cba6:0x3ffb1fd0 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
|
It would be good to understand the root cause of this problem before releasing 0.15.0-RC1 |
@softhack007 We could try more scenarios if that would help , just one thing that might help in this and in other cases how did you get the Backtrace details in your post , could you make an environment available as an example |
Hi, the backtrace comes from "esp exception decoder". It only works when you build and upload in VSCode, as exception decoder needs information from the compilation process. You only need this in your buildenv monitor_filters = esp32_exception_decoder In VSCode
If WLED crashes, you should see the function backtrace |
I do not have access to VSC because of big brother but only compile on github with both debug flag and exception_decoder but can not get the detailed Backtrace but only the same as in my post . Was hoping that is possible online |
@softhack007 I was able to reproduce the crash without adding SK6812 so it also happens with all the output set to ws2812b
I did not test on older builds but since the OP mentioned it is working on 0.15.0-b1 but not on 0.15.0-b2 , might be that could |
Just and idea. @softhack007. Try to watch the saved cfg.json after crash (if possible), I remember time ago when implemented the brightness limiter, when saving does nothing, the google inspector says something like 'not possible to point over input area' , with unmarked brightness limiter checkbox and points to a 'required' element in ouputs. This maybe saves wrong configuration, may be happens in global saves as while saving (for fisrt time) on any settings pages, and maybe is not saving o reading GPIO config for Audioreactive, when use GPIO. Again, is just an idea :) |
I've replicated this on my test setup; it looks like a buffer overflow of some kind when using the parallel I2S output mode. |
OK, found it. For parallel I2S, NeoPixelBus requires that all buses be constructed before any bus calls Begin(). Working a fix now. |
NeoPixelBus requires that all parallel I2S bus members be constructed before any of them call Begin(). Implement this by deferring the call to the end of bus construction. Fixes Aircoookie#4301.
NeoPixelBus requires that all parallel I2S bus members be constructed before any of them call Begin(). Implement this by deferring the call to the end of bus construction. Fixes Aircoookie#4301.
NeoPixelBus requires that all parallel I2S bus members be constructed before any of them call Begin(). Implement this by deferring the call to the end of bus construction. Fixes Aircoookie#4301.
Can we close this as fixed then @willmmiles ? |
The bootloop is fixed so for sure this is better then current situation and you already merged that so this is after the fact question But the 10 buses limit is not clear ( I know that was increased recently as I see in const.h ) but if you try to add more then 10 and you reboot then it will go back to 10 buses only . The behavior before was that you can not add more then 10 digital buses as after 10 the led output will be grayed same as below I see also he opened another issue here #4315 so maybe settings/leds page is not |
Please log a separate issue for the limit of 10 @dosipod |
@netmindz Sure but the question was is the PR that fixed the crash responsible for breaking the 10 digital buses limit or was there another change that broke it as I have hard time tracking old PRs due to strange naming and combing multiple fixes in the same PR . It may also be better to engorge testing , feedback and issue reporting is not to close issues that someone toke the time to test and open unless they confirmed . Keep it open for a while marked as fixed in source as a courtesy to the OP @chybeat |
#4312 made no changes to the bus settings logic -- it only changed the call order for bus hardware initialization. I think we can close this issue; problems with the settings page are unrelated. |
This is not the proper way to close raised cases but with that I assume you have tested with real leds on 10 outputs as I do not have the setup to test that at the moment |
This issue entry covers what the title says and first post state and no more: a bootloop if more than 6 entries are added. This problem has been fixed; the updated software no longer crashes and enters a boot loop. Hence we have closed this issue as there is no more work required on it. If there's some other problem with 10 outputs, that is a different and unrelated issue, and should be raised as a new entry as @netmindz said earlier. As I see things, issue entries aren't support cases - each entry should cover one specific software problem; they aren't meant to be an ongoing conversation with a specific user until all their problems are solved. |
I have also tested with even 10 output and do not see any crash issue but not with real leds but the OP has the setup to test on 7 outputs with real leds . If the supported number of outputs at the moment is 10 and you have change something to fix the crash then the proper way is to test 10 outputs with real leds as might be your change has introduced something else say flicker . No one is forcing you to close cases and there are still a lot of other cases open so not sure why only this |
What happened?
After add an SK6812 and other WS2812B in WLED settings led preferences ESP reboots.
To Reproduce Bug
Installing WLED
Hardware & setup
After step 5 save settings. and the ligtstrips starts to flash
Watching the console from https://install.wled.me get this:
Expected Behavior
In version 0.15.0-b1, I can setup this configuration without problem using the ESP32 and WLED as I describe before. but starting from 0.15.0-b2 the bug is exactly the same.
Install Method
Binary from WLED.me
What version of WLED?
0.15.0-b7
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
ets ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DOUT, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5828 entry 0x400806a8 Ada abort() was called at PC 0x4008da26 on core 1 ELF file SHA256: 0000000000000000 Backtrace: 0x4008ad54:0x3ffbff60 0x4008b0b1:0x3ffbff80 0x4008da26:0x3ffbffa0 0x4008cad1:0x3ffbffd0 0x4008409a:0x3ffbfff0 0x40086291:0x3ffc0020 0x4000d085:0x3ffb1f00 0x40082c77:0x3ffb1f20 0x4011bcef:0x3ffb1f40 0x4011c45a:0x3ffb1f90 0x4013ce31:0x3ffb1fb0 0x4008cb3a:0x3ffb1fd0 Rebooting...
Anything else?
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: