From 57d63b7362a8bd266b38f015de52b4a07a6d7714 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Sun, 25 Jan 2026 17:45:08 +0100 Subject: [PATCH] ESPDMX robustness improvements * clamp channel to dmxMaxChannel (write) * ensure that all data get sent, including start byte --- wled00/src/dependencies/dmx/ESPDMX.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wled00/src/dependencies/dmx/ESPDMX.cpp b/wled00/src/dependencies/dmx/ESPDMX.cpp index 31adefdb..0ac3a5c7 100644 --- a/wled00/src/dependencies/dmx/ESPDMX.cpp +++ b/wled00/src/dependencies/dmx/ESPDMX.cpp @@ -73,6 +73,7 @@ void DMXESPSerial::write(int Channel, uint8_t value) { if (Channel < 1) Channel = 1; if (Channel > channelSize) Channel = channelSize; + if (Channel > dmxMaxChannel) Channel = dmxMaxChannel; // WLEDMM protect against array bounds violation if (value < 0) value = 0; if (value > 255) value = 255; @@ -99,7 +100,7 @@ void DMXESPSerial::update() { //send data Serial1.begin(DMXSPEED, DMXFORMAT); digitalWrite(sendPin, LOW); - Serial1.write(dmxDataStore, channelSize); + Serial1.write(dmxDataStore, min(dmxMaxChannel+1, channelSize+1)); Serial1.flush(); delay(1); Serial1.end();