Hello,
I´m trying to get the LPD8806 strip working.
Hardware:
Im using platformIO to compile. If I do no changes and use no platformio_override.ini it works without errors (using travis_esp8266 in the platformio.ini and my Bord is NodeMcu v3 CP2102).
But if change the settings (I think i have to change) in the platformio_override.ini I get some errors.
Settings I change (remove the " ; "). The rest i leave at it is:
Compiling .pio\build\nodemcu_lpd\src\e131.cpp.o
In file included from wled00\FX.h:30:0,
from wled00\FX.cpp:27:
wled00\NpbWrapper.h:338:25: error: ‘PIXELFEATURE4’ was not declared in this scope
NeoPixelBrightnessBus<PIXELFEATURE4,PIXELMETHOD>* _pGrbw;
void SetPixelSettings(const typename T_COLOR_FEATURE::SettingsObject& settings)
.pio\libdeps\nodemcu_lpd\NeoPixelBus\src/NeoPixelBrightnessBus.h:76:24: required from ‘NeoPixelBrightnessBus<T_COLOR_FEATURE, T_METHOD>::NeoPixelBrightnessBus(uint16_t, uint8_t, uint8_t) [with T_COLOR_FEATURE = Lpd8806GrbFeature; T_METHOD = Lpd8806MethodBase; uint16_t = short unsigned int; uint8_t = unsigned char]’
…
…
wled00\NpbWrapper.h:192:98: required from here
.pio\libdeps\nodemcu_lpd\NeoPixelBus\src/NeoPixelBus.h:133:106: error: ‘SettingsSize’ is not a member of ‘Lpd8806GrbFeature’
_method(pinClock, pinData, countPixels, T_COLOR_FEATURE::PixelSize, T_COLOR_FEATURE::SettingsSize)
^
.pio\libdeps\nodemcu_lpd\NeoPixelBus\src/NeoPixelBus.h: In instantiation of ‘uint8_t* NeoPixelBus<T_COLOR_FEATURE, T_METHOD>::_pixels() [with T_COLOR_FEATURE = Lpd8806GrbFeature; T_METHOD = Lpd8806MethodBase; uint8_t = unsigned char]’:
If I knew what pixelfeature4 was doing anywhere near Lpd8806 enabled code, I could suggest alternatives. However, my suggestion is to look at an older release of WLED built with Lpd8806 and known to work - at least until @Aircoookie or someone on the dev team can dig a little deeper why this code is like this:
Npbwrapper.h
//you can now change the color order in the web settings #ifdef USE_APA102
… #elif defined(USE_LPD8806) #define PIXELFEATURE3 Lpd8806GrbFeature #elif defined(USE_WS2801)
… #endif
And then later:
case NeoPixelType_Grbw: #if defined(… || defined(USE_LPD8806) || …)
_pGrbw = new NeoPixelBrightnessBus<PIXELFEATURE4,PIXELMETHOD>(countPixels, CLKPIN, DATAPIN); #else
_pGrbw = new NeoPixelBrightnessBus<PIXELFEATURE4,PIXELMETHOD>(countPixels, LEDPIN); #endif
_pGrbw->Begin();
break;
PIXELFEATURE4 is not defined at this point because USE_LPD8806 is defined.
As your error post shows, that’s just the tip of the error iceberg.
If I were to suggest anything, I would first assume your strip is RGB and not RGBW, and a change to hard-code that concept for your specific case, like this:
switch (_type)
{
case NeoPixelType_Grb:
_pGrb = new NeoPixelBrightnessBus<PIXELFEATURE3,PIXELMETHOD>(countPixels, CLKPIN, DATAPIN);
_pGrb->Begin();
break;
case NeoPixelType_Grbw:
_pGrbw = new NeoPixelBrightnessBus<PIXELFEATURE3,PIXELMETHOD>(countPixels, CLKPIN, DATAPIN);
_pGrbw->Begin();
break;
}
Thanks Aircookie, but its not working.
If i use
-D USE_APA102
or
-D USE_WS2801
it works, but if I use
-D USE_LPD8806
not.
Did anyone get LPD8806 Strip working (compiling)? If yes, what version of WLED???
Thank you!!!