Aircoookie / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!

Home Page:https://kno.wled.ge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DMX Proxy Universe bad performance / high latency

Nuet0815 opened this issue · comments

What happened?

I was trying to setup a simple E1.31 to DMX node with WLED on an ESP32. Therefore I firstly used the precompiled DMX binaries from srg74, but also compiled the main version 197f47b myself with dmx enabled.

When I activate the "Proxy Universe 1 from E1.31 to DMX", the data is routed, but with high latency. On ESP32 via Wifi it as constantly around 1s delay between the change I made in my light control software (QLC+) and the DMX device reacting. On ESP32 via Ethernet, it is around 1.5s and on ESP8266 it starts with lower latency but gets worse over time, as if the processor is lagging behind and creates a data jam.

I found a possible, though annoying workaround when I configured the WLED DMX to output RGBW data with no spacing betwen channels via DMX for 128LEDs (128x4 = full 512 channels) and setting the DMX Mode of the Sync Interface to "Multi RGBW". In that way, the DMX is proxied correctly with no latency.

Am I missing some important setting / trick that needs to be done to get it working correctly or is this a bug?

I could reproduce this behaviour on:
-ESP32 via Wifi
-ESP32 via Ethernet (WT32-ETH01)
-ESP8266

To Reproduce Bug

-Use precompiled DMX binaries from srg74 and flash on ESP
-Connect RS485 transmitter to ESP IO2 and connect RS485 side to DMX device
-Enable "Proxy Universe 1 from E1.31 to DMX"
-In QLC+ (V 4.13.0) setup E1.31 via unicast to your previously flashed WLED node
-In QLC+ change some channel intensities and object latency between software change and DMX device reacting

Expected Behavior

Data is proxied with no noticeable latency from E1.31 to DMX.

Install Method

Self-Compiled

What version of WLED?

WLED 0.14.3 (build 2404040), WLED 0.15.0-b3 (build 2404120)

Which microcontroller/board are you seeing the problem on?

ESP8266, ESP32

Relevant log/trace output

No response

Anything else?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

I also ran into this, and I solved it by lowering the MasterTimer value in QLC+ (how you do this depends on your OS). By default, it is constantly outputting at 50hz. Lowering to 40hz worked for me.
I haven't looked into WLED's code yet, but at the time I assumed the delay we see is it working through a buffer of incoming packets that QLC+ is (at default settings) sending quicker than it can process.