From 79b01cdc3c62c98d671fbbe0808b98d147c70eb6 Mon Sep 17 00:00:00 2001 From: Sousanator Date: Mon, 27 Dec 2021 17:54:37 -0500 Subject: [PATCH 1/4] Update bus_wrapper.h Added support for LPD6803 --- wled00/bus_wrapper.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/wled00/bus_wrapper.h b/wled00/bus_wrapper.h index 362c05859..bc8e60999 100644 --- a/wled00/bus_wrapper.h +++ b/wled00/bus_wrapper.h @@ -69,6 +69,10 @@ #define I_HS_P98_3 35 #define I_SS_P98_3 36 +//LPD6803 +#define I_HS_LPO_3 37 +#define I_SS_LPO_3 38 + /*** ESP8266 Neopixel methods ***/ #ifdef ESP8266 @@ -132,6 +136,10 @@ #define B_HS_LPD_3 NeoPixelBrightnessBus #define B_SS_LPD_3 NeoPixelBrightnessBus +//LPD6803 +#define B_HS_LPO_3 NeoPixelBrightnessBus +#define B_SS_LPO_3 NeoPixelBrightnessBus + //WS2801 //#define B_HS_WS1_3 NeoPixelBrightnessBus //#define B_HS_WS1_3 NeoPixelBrightnessBus @@ -176,6 +184,7 @@ class PolyBus { case I_8266_BB_TM1_4: beginTM1814(busPtr); break; case I_HS_DOT_3: (static_cast(busPtr))->Begin(); break; case I_HS_LPD_3: (static_cast(busPtr))->Begin(); break; + case I_HS_LPO_3: (static_cast(busPtr))->Begin(); break; case I_HS_WS1_3: (static_cast(busPtr))->Begin(); break; case I_HS_P98_3: (static_cast(busPtr))->Begin(); break; #endif @@ -203,11 +212,13 @@ class PolyBus { // ESP32 can (and should, to avoid inadvertantly driving the chip select signal) specify the pins used for SPI, but only in begin() case I_HS_DOT_3: (static_cast(busPtr))->Begin(pins[1], -1, pins[0], -1); break; case I_HS_LPD_3: (static_cast(busPtr))->Begin(pins[1], -1, pins[0], -1); break; + case I_HS_LPO_3: (static_cast(busPtr))->Begin(pins[1], -1, pins[0], -1); break; case I_HS_WS1_3: (static_cast(busPtr))->Begin(pins[1], -1, pins[0], -1); break; case I_HS_P98_3: (static_cast(busPtr))->Begin(pins[1], -1, pins[0], -1); break; #endif case I_SS_DOT_3: (static_cast(busPtr))->Begin(); break; case I_SS_LPD_3: (static_cast(busPtr))->Begin(); break; + case I_SS_LPO_3: (static_cast(busPtr))->Begin(); break; case I_SS_WS1_3: (static_cast(busPtr))->Begin(); break; case I_SS_P98_3: (static_cast(busPtr))->Begin(); break; } @@ -261,6 +272,8 @@ class PolyBus { case I_SS_DOT_3: busPtr = new B_SS_DOT_3(len, pins[1], pins[0]); break; case I_HS_LPD_3: busPtr = new B_HS_LPD_3(len, pins[1], pins[0]); break; case I_SS_LPD_3: busPtr = new B_SS_LPD_3(len, pins[1], pins[0]); break; + case I_HS_LPO_3: busPtr = new B_HS_LPO_3(len, pins[1], pins[0]); break; + case I_SS_LPO_3: busPtr = new B_SS_LPO_3(len, pins[1], pins[0]); break; case I_HS_WS1_3: busPtr = new B_HS_WS1_3(len, pins[1], pins[0]); break; case I_SS_WS1_3: busPtr = new B_SS_WS1_3(len, pins[1], pins[0]); break; case I_HS_P98_3: busPtr = new B_HS_P98_3(len, pins[1], pins[0]); break; @@ -316,6 +329,8 @@ class PolyBus { case I_SS_DOT_3: (static_cast(busPtr))->Show(); break; case I_HS_LPD_3: (static_cast(busPtr))->Show(); break; case I_SS_LPD_3: (static_cast(busPtr))->Show(); break; + case I_HS_LPO_3: (static_cast(busPtr))->Show(); break; + case I_SS_LPO_3: (static_cast(busPtr))->Show(); break; case I_HS_WS1_3: (static_cast(busPtr))->Show(); break; case I_SS_WS1_3: (static_cast(busPtr))->Show(); break; case I_HS_P98_3: (static_cast(busPtr))->Show(); break; @@ -369,6 +384,8 @@ class PolyBus { case I_SS_DOT_3: return (static_cast(busPtr))->CanShow(); break; case I_HS_LPD_3: return (static_cast(busPtr))->CanShow(); break; case I_SS_LPD_3: return (static_cast(busPtr))->CanShow(); break; + case I_HS_LPO_3: return (static_cast(busPtr))->CanShow(); break; + case I_SS_LPO_3: return (static_cast(busPtr))->CanShow(); break; case I_HS_WS1_3: return (static_cast(busPtr))->CanShow(); break; case I_SS_WS1_3: return (static_cast(busPtr))->CanShow(); break; case I_HS_P98_3: return (static_cast(busPtr))->CanShow(); break; @@ -446,6 +463,8 @@ class PolyBus { case I_SS_DOT_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_HS_LPD_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_SS_LPD_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; + case I_HS_LPO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; + case I_SS_LPO_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_HS_WS1_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_SS_WS1_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; case I_HS_P98_3: (static_cast(busPtr))->SetPixelColor(pix, RgbColor(col.R,col.G,col.B)); break; @@ -499,6 +518,8 @@ class PolyBus { case I_SS_DOT_3: (static_cast(busPtr))->SetBrightness(b); break; case I_HS_LPD_3: (static_cast(busPtr))->SetBrightness(b); break; case I_SS_LPD_3: (static_cast(busPtr))->SetBrightness(b); break; + case I_HS_LPO_3: (static_cast(busPtr))->SetBrightness(b); break; + case I_SS_LPO_3: (static_cast(busPtr))->SetBrightness(b); break; case I_HS_WS1_3: (static_cast(busPtr))->SetBrightness(b); break; case I_SS_WS1_3: (static_cast(busPtr))->SetBrightness(b); break; case I_HS_P98_3: (static_cast(busPtr))->SetBrightness(b); break; @@ -553,6 +574,8 @@ class PolyBus { case I_SS_DOT_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_HS_LPD_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_SS_LPD_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_HS_LPO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; + case I_SS_LPO_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_HS_WS1_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_SS_WS1_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; case I_HS_P98_3: col = (static_cast(busPtr))->GetPixelColor(pix); break; @@ -624,6 +647,8 @@ class PolyBus { case I_SS_DOT_3: delete (static_cast(busPtr)); break; case I_HS_LPD_3: delete (static_cast(busPtr)); break; case I_SS_LPD_3: delete (static_cast(busPtr)); break; + case I_HS_LPO_3: delete (static_cast(busPtr)); break; + case I_SS_LPO_3: delete (static_cast(busPtr)); break; case I_HS_WS1_3: delete (static_cast(busPtr)); break; case I_SS_WS1_3: delete (static_cast(busPtr)); break; case I_HS_P98_3: delete (static_cast(busPtr)); break; @@ -645,6 +670,7 @@ class PolyBus { switch (busType) { case TYPE_APA102: t = I_SS_DOT_3; break; case TYPE_LPD8806: t = I_SS_LPD_3; break; + case TYPE_LPD6803: t = I_SS_LPO_3; break; case TYPE_WS2801: t = I_SS_WS1_3; break; case TYPE_P9813: t = I_SS_P98_3; break; default: t=I_NONE; @@ -692,4 +718,4 @@ class PolyBus { } }; -#endif \ No newline at end of file +#endif From 5609771993edda5d60fa6a83a1f0e8edf2941bc4 Mon Sep 17 00:00:00 2001 From: Sousanator Date: Mon, 27 Dec 2021 18:01:42 -0500 Subject: [PATCH 2/4] Update html_settings.h --- wled00/html_settings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wled00/html_settings.h b/wled00/html_settings.h index 3655872f7..fb2019e76 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -74,7 +74,7 @@ onclick="B()">Back // Autogenerated from wled00/data/settings_leds.htm, do not edit!! const char PAGE_settings_leds[] PROGMEM = R"=====(LED Settings