Replies: 1 comment
-
After some tinkering, it appears that the choppiness can be reduced (but not eliminated) with queue_size_max = 0, rather than the default value of 32. I'm sure that there are implications with setting this to zero (I'm still getting used to the API), but I thought it was good to identify that this had a visible effect on the smoothness of the dimming. It would be great to understand this a bit better as I'd like to make use of manufacturer specific PIDs using this library and would want to make sure I'm doing this on solid foundations early on! Any help very much appreciated! I just wondered if there was some blocking code somewhere in either the Dmx and RDM portions of this library which might be causing this? It appears that the update rate of the DMX is approx 10 or 15hz or so, if I turn off the RDM portion of the code which is the best performance I've managed to achieve so far. This results in visible choppiness on fast (but smooth) fades down, however if the same fade is performed more slowly, the transition is extremely smooth. I may move this into the issues section if there's not some configuration that I'm missing, so I really would appreciate any advice you may have! |
Beta Was this translation helpful? Give feedback.
-
Hi there, I've just started using this library and I'm really impressed so far!
I've adapted a very simple DMX Receiver from the example code on an ESP32 WROOM32E via Arduino Core/ PlatformIO, taking two DMX data slots to create a 16 bit intensity control channel for very precise dimming of an extremely high output custom LED array. I've implemented (half) an S-Curve, to tune in the resolution of the low end, to aid with the smoothness of this dimming which is producing great results.
This works flawlessly when the ESP32 is running without RDM and I'm able to achieve some exceptionally smooth dimming on fast and slow fades.
This changes once I introduce RDM. The fast, smooth fade become slightly choppy. You can start to see this on the built in led on the development board, which then becomes much less subtle when driving the high output LED array due to the amount of light it emits.
I wondered if you could help advise on how to optimise my code when using RDM? I've tried removing my serial debugging commands and rearranging everything into functions using FreeRTOS to isolate every combination of DMX, RDM, Ledc and the logistic S-Curve function onto core 0 allowing everything else to run on the other and sadly I've only managed to achieve worse results.
In essence, everything works perfectly before I try to include any RDM responder functionality. I've read through the documentation I'm sure I'm missing something here!, so I'm hoping you are able to point to something obvious I'm doing wrong with the RDM side of things, Any help much appreciated and thanks for the considerable work and support you have put into (and continue to put into) this library!
Beta Was this translation helpful? Give feedback.
All reactions