-
-
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
Crashes when using -D WLED_ENABLE_DMX builds with led output #4298
Comments
@dosipod thanks, interesting find This message was actually not added by me 🤔 @blazoncek do you remember why you've added this error? |
I no longer remember why, but it was definitely intentional. |
netmindz mentioned that when using dmx that the unit might be not used for anything else even led output ( I see the unit crashes when i use led output ) so might be the case its dmx only unit |
DMX output is just serial output so I don't think it's a conflict but perhaps more an issue of lack of CPU time |
I went back to v0.14.4 to compare and the audio usermod seems to be working fine with dmx out enabled |
The behavior we see is as follows ( before we try softhack fix ) : A) On 14.4 with dmx out enabled and AR included : B) On 15.0-b7 with dmx out enabled and AR disabled :
|
@softhack007 I can still see the crash now even after the fix by just setting led output with 256 leds with dmx enabled build . So seems the whole dmx is busted but I am going to leave this be as I have no fixture nor a real interest in DMX but still if you need us to test the crash part then that we could do |
@dosipod please use exception decoder when posting crash dumps. Without it they are almost meaningless. |
@blazoncek When I enabled debug there was nothing useful , might be you could give that a shot |
@dosipod could you upload a cfg.json just before you change Proxy Universe from 1 to 0 ? |
Update: I've managed to bring my esp32 into a boot loop with DMX out enabled , and one output with 256 leds ---WLED 0.15.0-b7 2410270 INIT---
esp32 v3.3.6-16-gcc5440f6a2
arduino-esp32 v1.0.x
CPU: ESP32-D0WDQ5 rev.3, 2 core(s), 240 MHz.
FLASH: 4 MB, Mode 3 (DOUT), speed 40 MHz.
heap 312560
JSON buffer allocated: 32767
PIN ALLOC: Pin 1 successfully allocated by 0x89.
PIN ALLOC: 0x00000000000002.
PIN ALLOC: Pin 2 successfully allocated by 0x8A.
PIN ALLOC: 0x00000000000006.
Registering usermods ...
heap 279724
Reading config
Reading settings from /wsec.json...
JSON buffer locked. (3)
JSON buffer released. (3)
JSON buffer locked. (1)
Reading settings from /cfg.json...
Heap before buses: 277408
Removing all.
Maximum LEDs on a bus: 256
Digital buses: 1
PIN ALLOC: Pin 16 successfully allocated by 0x82.
PIN ALLOC: 0x00000000010006.
Successfully inited strip 0 (len 256) with type 22 and pins 16,255 (itype 23). mA=55/0
LED buffer size: 2304B
Heap after buses: 272416
PIN ALLOC: Pin 0 successfully allocated by 0x85.
PIN ALLOC: 0x00000000010007.
Starting usermod config.
JSON buffer released. (1)
heap 272372
Initializing strip
Loading custom palettes
heap 272168
Usermods setup
heap 272168
Defaulf WiFi used.
Ada
initServer
heap 217080
initIR
heap 217080
Initial connect or forced reconnect.
Defaulf WiFi used.
initConnection() called.
Access point disabled (init).
Connecting to WLAN2...
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x40081437 PS : 0x00060c30 A0 : 0x800e8e0f A1 : 0x3ffb1e90
A2 : 0x00000000 A3 : 0x00060c20 A4 : 0x4008e847 A5 : 0x3ffb1eb0
A6 : 0x00050c23 A7 : 0x3ffb8058 A8 : 0x800825a2 A9 : 0x3ffb1e70
A10 : 0x0000024f A11 : 0x00000000 A12 : 0x0000024f A13 : 0x00001180
A14 : 0x00000003 A15 : 0x00060c23 SAR : 0x0000000a EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000040 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xffffffff
ELF file SHA256: 0000000000000000
Backtrace: 0x40081434:0x3ffb1e90 0x400e8e0c:0x3ffb1eb0 0x40119db8:0x3ffb1f10 0x4011a2e2:0x3ffb1f90 0x4013b339:0x3ffb1fb0 0x4008c2a2:0x3ffb1fd0
#0 0x40081434:0x3ffb1e90 in Segment::progress() const at wled00/FX_fcn.cpp:1549
#1 0x400e8e0c:0x3ffb1eb0 in Segment::handleTransition() at wled00/FX_fcn.cpp:1549
(inlined by) WS2812FX::service() at wled00/FX_fcn.cpp:1322
#2 0x40119db8:0x3ffb1f10 in WLED::loop() at wled00/bus_manager.h:122
#3 0x4011a2e2:0x3ffb1f90 in loop() at wled00/wled_main.cpp:23
#4 0x4013b339:0x3ffb1fb0 in loopTask(void*) at C:/Users/frank/.platformio/packages/framework-arduinoespressif32@src-e9b1fbd6563a55e19ddae15e1fc09589/cores/esp32/main.cpp:23
#5 0x4008c2a2:0x3ffb1fd0 in vPortTaskWrapper at /home/cschwinne/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
Rebooting...
|
I can create a crash on a freshly wiped esp32. just by installing a build with DMX out enabled, then setting one led output (ws2812b) with 256 leds, and toggleling DMX output (Proxy Universe to 1), then rebooting. I think we should understand what's happening before releasing 0.15.0-RC1 |
@softhack007 Not sure you still need that as the unit like you noticed would crash by just setting up led output if dmx out is enabled in the build ( I never changed any other setting so it is fresh serial install ) . dmx_out_crash_fresh_wled_cfg.json I am starting to think there could be other areas and specially usermods that might cause crashes as it seems a lot of changes are not tested as it is not possible to test on all different types of devices with all the available configuration options and usermods , that is without releasing for the masses to test so it is really hard decision to make |
Yes that's a tricky question - but first of all, we are all very thankful for the time and effort that you and your guys put into testing WLED 👍 I think that mixed outputs, as well as led settings page could be put aside for a moment (until bugs are fixed).
Just a few ideas - maybe other maintainers have other areas that could use some more testing.... |
Thank you for the kind words ,unfortunately there is no more my guys so I am alone now testing , on occasions a student would try to help but that is more of an effort to get them up to speed only to lose them after word due to lack of interest . We could talk about testing ( If that was not part of the usual practice for PRs ) but I rather not in this post as it might be more of a direction rather then case to case bases |
@softhack007 just for clarification:
|
looking at the register dumps: both crash dumps hint to a null-pointer access. or rather: an array or struct access that is a null pointer: |
if you mean #4256 I don't think it will make much difference, it still uses the |
I am working on new dmx ways currently and have 42fps and 42 hz output on the dmx line and another version that allows up to 101 fps on wled again but we only get 22 hz max on dmx. i will be adding the code here #4239 for both versions. this should allow dmx again on the sound reactive and also other cpu intensive usermods |
What happened?
When compiling -D WLED_ENABLE_DMX and the audio usermod is also included ( it is there by default now ) you would get the error
Compile is fine if the audio usermod is disabled
I have no dmx fixture to verify functionally afterword but just helping someone with the compile so not sure that is expected or not
To Reproduce Bug
Use -D WLED_ENABLE_DMX on 15.0-b7
Expected Behavior
No failure
Install Method
Self-Compiled
What version of WLED?
0.15.0-b7 (build 2410270)
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
No response
Anything else?
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: