WLED: Brightness acts slow in DMX Effect Segment Mode
What happened?
When controlling WLED via DMX in “Effect Segment Mode” brightness changes are too slow. In general when using DMX consoles to send brightness changes, these changes are only applied/allowed within certain intervals. This becomes critical, especially when switching brightness channel slider off quickly (to black out DMX fixtures). This behavior makes brightness in “Effect Segment Mode” only controllable correctly, when using slow slider movements 👎
To Reproduce Bug
Activate DMX and send brightness changes to single segments using external console sliders.
Expected Behavior
Brightness should change immediately as other DMX channels do as well.
Install Method
Self-Compiled
What version of WLED?
above WLED 0.14.0-b1
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
No response
Anything else?
Problem must occur within setOpacity
:
void Segment::setOpacity(uint8_t o) {
if (opacity == o) return;
if (fadeTransition) startTransition(strip.getTransition()); // start transition prior to change
opacity = o;
stateChanged = true; // send UDP/WS broadcast
}
Maybe stateChanged = true
… TBD
Code of Conduct
- I agree to follow this project’s Code of Conduct
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 24 (7 by maintainers)
Right - I need to read these threads better - I wrote a long reply on another thread, then moved it here, then I read this bit…
So, that’s clearly the root cause of the problems we’re all having.
As I see it there are only a few possible solutions to this:
I don’t know the code well, but I assume 2 may be a quick an easy solution for someone familiar with the code to implement? However, I appreciate it’s more code & more work, so if the workaround (while hacky and I don’t like it), is the current accepted solution that’s fine.
It would be good to get an official position on this (@blazoncek / @Aircoookie), as it would close this issue and also https://github.com/Aircoookie/WLED/issues/3245.
Thank you!
Ps. If we do have to go with the workaround, I went with the effect ‘Percent’ set to 100% as I assumed that’s one of the FX with lower processor load - does it matter, any thoughts on that? May be worth noting the workaround recommendation (and the reasoning) on the DMX docs page.
I know you are quite capable to find and fix the problem. 😄 When you’ll be testing or changing code, check
led.cpp
,handleTransition()
. It is the piece where global brightness may be transitioning.You can change intended FPS in LED Preferences, Advanced section. Be aware, though, that Solid effect disrespects that and only updates at 3-4 FPS.