Aircoookie / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!
https://kno.wled.ge
MIT License
14.58k stars 3.13k forks source link

ESP32 multistrip usermod failing to compile on v0.11.0 #1402

Closed andyshinn closed 3 years ago

andyshinn commented 3 years ago

Describe the bug It looks like https://github.com/Aircoookie/WLED/commit/fb91d9b2d483c978c986a6f9999b5cf797e3a12c broke the esp32_multistrip usermod. Compiling the usermod now fails on 0.11.0.

To Reproduce

  1. git checkout v0.11.0
  2. Create custom platformio_override.ini:
    [env:quinled_dig_quad]
    extends = env:esp32dev
    build_flags = ${common.build_flags_esp32}
    -D USERMOD_DALLASTEMPERATURE
    -D USERMOD_DALLASTEMPERATURE_CELSIUS
    -D ESP32_MULTISTRIP
    -D NUM_STRIPS=2
    -D PIXEL_COUNTS="200, 108"
    -D DATA_PINS="16, 1"
  3. pio run -e quinled_dig_quad

Expected behavior Compiling firmware.

WLED version

Additional context Error during build:

``` wled on  HEAD (3a3948e) [?] is 📦 v0.11.0 via ⬢ v12.19.0 via 🐍 v3.7.9 (python-venv-3.7.9) took 4m9s ❯ rm -rf ~/.platformio .pio wled on  HEAD (3a3948e) [?] is 📦 v0.11.0 via ⬢ v12.19.0 via 🐍 v3.7.9 (python-venv-3.7.9) ❯ ls .pio ls: .pio: No such file or directory wled on  HEAD (3a3948e) [?] is 📦 v0.11.0 via ⬢ v12.19.0 via 🐍 v3.7.9 (python-venv-3.7.9) ❯ pio run -e quinled_dig_quad ****************************************************************************************************************************************************** If you like PlatformIO, please: - follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org - star it on GitHub > https://github.com/platformio/platformio - try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide ****************************************************************************************************************************************************** Processing quinled_dig_quad (board: esp32dev; platform: espressif32@2.0; framework: arduino) ------------------------------------------------------------------------------------------------------------------------------------------------------ Platform Manager: Installing espressif32 @ 2.0 Platform Manager: espressif32 @ 2.0.0 has been installed! The platform 'espressif32@2.0' has been successfully installed! The rest of the packages will be installed later depending on your build environment. Tool Manager: Installing platformio/toolchain-xtensa32 @ ~2.50200.0 Unpacking [####################################] 100% Tool Manager: toolchain-xtensa32 @ 2.50200.80 has been installed! Tool Manager: Installing platformio/framework-arduinoespressif32 @ ~3.10004.191002 Unpacking [####################################] 100% Tool Manager: framework-arduinoespressif32 @ 3.10004.201016 has been installed! Tool Manager: Installing platformio/tool-esptoolpy @ ~1.20600.0 Tool Manager: tool-esptoolpy @ 1.20600.0 has been installed! Tool Manager: Installing platformio/tool-scons @ ~4.40001.0 Tool Manager: tool-scons @ 4.40001.0 has been installed! Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html PLATFORM: Espressif 32 (2.0.0) > Espressif ESP32 Dev Module HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 3.10004.201016 (1.0.4) - tool-esptoolpy 1.20600.0 (2.6.0) - toolchain-xtensa32 2.50200.80 (5.2.0) Converting wled00.ino LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ strict Library Manager: Installing FastLED @ 3.3.2 Library Manager: Warning! More than one package has been found by FastLED @ 3.3.2 requirements: - fastled/FastLED @ 3.3.3 - etidbury/FastLED @ 3.3.3 Library Manager: Please specify detailed REQUIREMENTS using package owner and version (showed above) to avoid name conflicts Library Manager: FastLED @ 3.3.2 has been installed! Library Manager: Installing NeoPixelBus @ 2.6.0 Library Manager: NeoPixelBus @ 2.6.0 has been installed! Library Manager: Installing ESPAsyncTCP @ 1.2.0 Library Manager: ESPAsyncTCP @ 1.2.0 has been installed! Library Manager: Installing ESPAsyncUDP Library Manager: ESPAsyncUDP @ 0.0.0-alpha+sha.697c75a025 has been installed! Library Manager: Installing AsyncTCP @ 1.0.3 Library Manager: AsyncTCP @ 1.0.3 has been installed! Library Manager: Installing IRremoteESP8266 @ 2.7.3 Library Manager: IRremoteESP8266 @ 2.7.3 has been installed! Library Manager: Installing git+https://github.com/lorol/LITTLEFS.git git version 2.24.3 (Apple Git-128) Cloning into '/Users/andy/.platformio/.cache/tmp/pkg-installing-63zz5a08'... Library Manager: LittleFS_esp32 @ 1.0.5+sha.b941415 has been installed! Library Manager: Installing git+https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.0 git version 2.24.3 (Apple Git-128) Cloning into '/Users/andy/.platformio/.cache/tmp/pkg-installing-k9lfy6bs'... Library Manager: ESP Async WebServer @ 2.0.0+sha.3336275 has been installed! Library Manager: Installing dependencies... Library Manager: ESPAsyncTCP @ 1.2.0 is already installed Library Manager: AsyncTCP @ 1.0.3 is already installed Library Manager: Installing milesburton/DallasTemperature @ ^3.9.0 Library Manager: DallasTemperature @ 3.9.1 has been installed! Library Manager: Installing dependencies... Library Manager: Installing paulstoffregen/OneWire @ ^2.3.5 Library Manager: OneWire @ 2.3.5 has been installed! Library Manager: OneWire @ 2.3.5 is already installed Found 34 compatible libraries Scanning dependencies... Dependency Graph |-- 3.3.2 | |-- 1.0 |-- 2.6.0 | |-- 1.0 |-- 1.0.3 |-- 2.7.3 |-- 1.0.5+sha.b941415 | |-- 1.0 |-- 2.0.0+sha.3336275 | |-- 1.0.3 | |-- 1.0 | |-- 1.0 |-- 3.9.1 | |-- 2.3.5 |-- 2.3.5 |-- 1.0 |-- 1.0.0 |-- 1.0 | |-- 1.0 | |-- 1.0 |-- 1.0 | |-- 1.0 | |-- 1.0 | |-- 1.0 | | |-- 1.0 |-- 1.1.0 | |-- 1.0 |-- 1.0.3 |-- 1.0 | |-- 1.0 Building in release mode *** use existing my_config.h *** Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/bitswap.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/FastLED.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/colorpalettes.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/colorutils.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/hsv2rgb.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/lib8tion.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/noise.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/platforms.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/power_mgt.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/lib886/FastLED/wiring.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/FX.cpp.o' from cache Compiling .pio/build/quinled_dig_quad/src/FX_fcn.cpp.o Retrieved `.pio/build/quinled_dig_quad/src/alexa.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/blynk.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/button.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/cfg.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/colors.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/dmx.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/e131.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/file.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/hue.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/ir.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/json.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/led.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/lx_parser.cpp.o' from cache wled00/FX_fcn.cpp: In member function 'void WS2812FX::show()': wled00/FX_fcn.cpp:251:26: error: 'class NeoPixelWrapper' has no member named 'GetPixelColorRaw' RgbwColor c = bus->GetPixelColorRaw(i); ^ wled00/FX_fcn.cpp: In member function 'uint32_t WS2812FX::getPixelColor(uint16_t)': wled00/FX_fcn.cpp:460:34: error: cannot convert 'RgbwColor' to 'uint32_t {aka unsigned int}' in return return bus->GetPixelColorRgbw(i); ^ wled00/FX_fcn.cpp: In member function 'uint8_t WS2812FX::getColorOrder()': wled00/FX_fcn.cpp:481:15: error: 'class NeoPixelWrapper' has no member named 'GetColorOrder' return bus->GetColorOrder(); ^ wled00/FX_fcn.cpp: In member function 'void WS2812FX::setColorOrder(uint8_t)': wled00/FX_fcn.cpp:485:8: error: 'class NeoPixelWrapper' has no member named 'SetColorOrder' bus->SetColorOrder(co); ^ Retrieved `.pio/build/quinled_dig_quad/src/mqtt.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/ntp.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/overlay.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/pin_manager.cpp.o' from cache Retrieved `.pio/build/quinled_dig_quad/src/playlist.cpp.o' from cache *** [.pio/build/quinled_dig_quad/src/FX_fcn.cpp.o] Error 1 Retrieved `.pio/build/quinled_dig_quad/src/presets.cpp.o' from cache ============================================================ [FAILED] Took 31.30 seconds ============================================================ Environment Status Duration ---------------- -------- ------------ quinled_dig_quad FAILED 00:00:31.296 ======================================================= 1 failed, 0 succeeded in 00:00:31.296 ======================================================= ```

Thank you for your help!

huggy-d1 commented 3 years ago

Something is strange here. In your post, to reproduce it says to do steps 1/2/3. However, in the detailed compiler output, it shows compiling cached library data. First, get steps 1/2/3 working. That means Step 0: move existing libraries / files related to QuinLEDdigQuad somewhere else. Then integrate the QuinLED Dig Quad source into the compilation process.

andyshinn commented 3 years ago

Is there a cache other than ~/.platformio and .pio that I am missing? I was under the impression that those are not really cached but come from PlatformIO installing them at runtime. I've updated the output to show them being installed. The error is still the same.

andyshinn commented 3 years ago

Ah, I missed the original PR already had a mention of it: https://github.com/Aircoookie/WLED/pull/1362. I'll test out the updated branch to provide feedback.

andyshinn commented 3 years ago

Fixed in #1409!

poldim commented 3 years ago

Just adding a note here incase anyone else runs into this. I ran into the below error after following your steps. I took a guess and created the src folder and tried to compile and it all worked.

Building in release mode
*** use existing my_config.h ***
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/FastLED.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/bitswap.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/colorpalettes.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/colorutils.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/hsv2rgb.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/lib8tion.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/noise.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/platforms.cpp.o' from cache
Retrieved `.pio/build/esp32_multistrip/lib15b/FastLED/power_mgt.cpp.o' from cache
Compiling .pio/build/esp32_multistrip/lib15b/FastLED/wiring.cpp.o
Compiling .pio/build/esp32_multistrip/src/FX.cpp.o
Compiling .pio/build/esp32_multistrip/src/FX_fcn.cpp.o
Compiling .pio/build/esp32_multistrip/src/alexa.cpp.o
Compiling .pio/build/esp32_multistrip/src/blynk.cpp.o
Compiling .pio/build/esp32_multistrip/src/button.cpp.o
Compiling .pio/build/esp32_multistrip/src/cfg.cpp.o
Compiling .pio/build/esp32_multistrip/src/colors.cpp.o
Compiling .pio/build/esp32_multistrip/src/dmx.cpp.o
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/FX_fcn.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/FX_fcn.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/button.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/button.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/colors.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/colors.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/blynk.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/blynk.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/dmx.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/dmx.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/alexa.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/alexa.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/FX.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/FX.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_multistrip/src/cfg.cpp.o: No such file or directory
*** [.pio/build/esp32_multistrip/src/cfg.cpp.o] Error 1
FileNotFoundError: [Errno 2] No such file or directory: '/Users/poldim/Documents/Other/Projects/WLED/.pio/build/esp32_multistrip/.sconsign38.dblite':
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Script/Main.py", line 1391:
    _exec_main(parser, values)
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Script/Main.py", line 1355:
    _main(parser)
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Script/Main.py", line 1126:
    nodes = _build_targets(fs, options, targets, target_top)
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Script/Main.py", line 1329:
    jobs.run(postfunc = jobs_postfunc)
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Job.py", line 113:
    postfunc()
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/Script/Main.py", line 1326:
    SCons.SConsign.write()
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/SConsign.py", line 114:
    syncmethod()
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/dblite.py", line 144:
    self._os_unlink(self._file_name)
Exception ignored in: <function dblite.__del__ at 0x11085a550>
Traceback (most recent call last):
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/dblite.py", line 126, in __del__
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/dblite.py", line 123, in close
  File "/Users/poldim/.platformio/packages/tool-scons/scons-local-4.0.1/SCons/dblite.py", line 144, in sync
FileNotFoundError: [Errno 2] No such file or directory: '/Users/poldim/Documents/Other/Projects/WLED/.pio/build/esp32_multistrip/.sconsign38.dblite'
================================================================================= [FAILED] Took 13.52 seconds =================================================================================

Environment       Status    Duration
----------------  --------  ------------
esp32_multistrip  FAILED    00:00:13.523
============================================================================ 1 failed, 0 succeeded in 00:00:13.523 ============================================================================
The terminal process "pio 'run'" terminated with exit code: 1.
Aircoookie commented 3 years ago

@poldim thank you! that is a known issue, see: https://github.com/Aircoookie/WLED/wiki/Compiling-WLED#compilation-guide-platformio Just compiling again without changing anything makes it work. Not been able to figure out the cause of it yet...