Skip to content

Compiling does not include usermods #4597

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
1 task done
C0oL3r opened this issue Mar 16, 2025 · 30 comments · May be fixed by #4622 or #4669
Open
1 task done

Compiling does not include usermods #4597

C0oL3r opened this issue Mar 16, 2025 · 30 comments · May be fixed by #4622 or #4669

Comments

@C0oL3r
Copy link

C0oL3r commented Mar 16, 2025

What happened?

When i'm trying to compile WLED usermods are not included in the firmware.

To Reproduce Bug

If i clone the repository and try to build it like it is it will compile good with audioreactive. But if i add for example Temperature usermod and compile it again it will add Temperature usermod but it will not include audioreactive.
Then if i remove again Temperature it will not include any usermod anymore. I tried to delete .buildcache, .pio but no luck. Searching for string in the firmware file first compile it shows me about audioreactive, second about the Temperature and the third compile it will not find anything about any usermod.
Also even adding ${common.debug_flags} it will not change anything, the firmware will not be recompiled

Expected Behavior

It should add the usermods i set to custom_usermods in platformio.ini. And also recompile if anything changes in platformio.ini.

Install Method

Self-Compiled

What version of WLED?

Nightly Release 20250316 0.16.0

Which microcontroller/board are you seeing the problem on?

ESP32

Relevant log/trace output

Anything else?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
@C0oL3r C0oL3r added the bug label Mar 16, 2025
@blazoncek blazoncek removed the bug label Mar 16, 2025
@blazoncek
Copy link
Collaborator

None of the usermods (except Audioreactive) are automatically compiled with WLED.
If you want to include usermods in your compile, you need to modify platformio.ini (or better override) as specified in usermod's readme file.

@blazoncek blazoncek closed this as not planned Won't fix, can't repro, duplicate, stale Mar 16, 2025
@C0oL3r
Copy link
Author

C0oL3r commented Mar 16, 2025

i did say that i am adding them in platformio.ini, first compile works with audioreactive, second is with audioreactive and Temperature but only Temperature is added, after that none will be added.

@blazoncek
Copy link
Collaborator

Then perhaps @willmmiles may know more. Reopen if needed.

@willmmiles
Copy link
Member

I can't replicate this in my development environment; changes to platformio.ini are always picked up on the next build, and seem to build correctly with the specified usermods.

@C0oL3r , are you using an IDE or building with platformio at the command prompt? What platform is your build system (Linux, Windows, macOS, GitHub codespaces, etc.)?

@willmmiles
Copy link
Member

Actually, let me hazard another guess.

For this custom environment:

[env:my_esp32dev]
extends = env:esp32dev

you will get the default usermods with esp32dev (ie. audioreactive).

For this environment spec:

[env:my_esp32dev_v2]
extends = env:esp32dev
custom_usermods = Temperature

you will get only Temperature; the custom_usermods settings has been overridden with the new value specified there. The inherited value is lost.

For this environment spec:

[env:my_esp32dev_v3]
extends = env:esp32dev
custom_usermods = 

you will get no usermods at all (it's being overriden with the empty string).

I think maybe you want:

[env:my_esp32dev_dwiw]
extends = env:esp32dev
custom_usermods = ${env:esp32dev.usermods} Temperature

...where it keeps the inherited value (as it is explicitly referenced), plus adds the extra module you want.

@DedeHai
Copy link
Collaborator

DedeHai commented Mar 17, 2025

@willmmiles can confirm that building different configurations of usermods using VScode can lead to some or all of them not being added properly: after changing usermod configuration, a full clean must be executed prior to building, otherwise the usermods don't get pulled in properly. Can you confirm?

@C0oL3r
Copy link
Author

C0oL3r commented Mar 17, 2025

@willmmiles i am building it in VS Code with platformio, and i am using windows.
And yes i understand that creating a new environment and not setting the usermods from the original esp32dev will not include audioreactive, but i’m not using an override, i just add or delete usermods from the esp32dev environment. As @DedeHai said it’s very unstable.
If he confirms that even adding or removing flags in the configuration will not rebuild it correctly

@DedeHai
Copy link
Collaborator

DedeHai commented Mar 17, 2025

It is not unstable, if you do a full clean it works just fine. The question is just: is that expected or not.

@C0oL3r
Copy link
Author

C0oL3r commented Mar 17, 2025

It works only for the first compile, after that things starts to get weird. Maybe it’s a problem with the platform on Windows

@C0oL3r
Copy link
Author

C0oL3r commented Mar 17, 2025

I can confirm that compiling it in a Docker container works well, compiling is done everytime with success and everything is added.

@willmmiles
Copy link
Member

It's meant to work correctly every build with up-to-date PlatformIO; I do know there's some bugs with older releases that cause problems with library building.

I'll retest some cases -- I do recall seeing an issue with removed modules not actually being removed, but I thought it'd been resolved with a PlatformIO update. Could be there's still something lurking there.

@willmmiles
Copy link
Member

I couldn't reproduce this on my build system (Win11, VSCode 1.98.2, PlatformIO 6.1.18). I ran a series of verbose builds of a test environment:

custom_usermods = audioreactive
custom_usermods = audioreactive Temperature
custom_usermods = Temperature
custom_usermods = audioreactive
custom_usermods = animartrix

For each build the linker invocation included the correct files and only those for the specified usermods.

@C0oL3r could you please check your PlatformIO version on your windows machine? pio --version? If we can confirm there's an issue with a specific version, I can add a validation to the usermod inclusion script.

@DedeHai DedeHai reopened this Mar 19, 2025
@DedeHai
Copy link
Collaborator

DedeHai commented Mar 19, 2025

I ran a few tests, there is definitely something weird going on.
Here is my setup:
Win10, VSCode 1.98.2, PlatformIO 6.1.18 compiling and direct uploading to ESP32 C3

this is the sequence I ran as a test with comments what I observed:

;-> full clean
;custom_usermods = deep_sleep ; -> not added
;custom_usermods = deep_sleep Battery; -> battery is added correctly, deep_sleep is not
;custom_usermods = audioreactive Temperature deep_sleep Internal_Temperature_v2 Battery -> all but deep_sleep work
;custom_usermods = deep_sleep Battery ;-> no usermods are available (also LED config changed to 30 LEDs...)
;custom_usermods = audioreactive Temperature deep_sleep Internal_Temperature_v2 Battery -> no usermods available
;custom_usermods = audioreactive; -> not available
;custom_usermods = PWM_fan ;-> error as temperatur UM is missing
;custom_usermods = PWM_fan Temperature; -> compiles, no usermod config available though
;-> full clean
;custom_usermods = PWM_fan Temperature -> not seeing any usermod config
;custom_usermods = audioreactive -> added correctly
;custom_usermods = audioreactive Temperature Internal_Temperature_v2 -> LED numbers are reset again... also temperature and internal temperature are shown, AR is missing in config
;custom_usermods = deep_sleep; -> is added correctly
;custom_usermods = audioreactive; -> AR is not added but I still see deep sleep in UM config, it is not working though

what I checked was the UM config menu, always with full browser refresh (ctrl+F5), in the last instance where deep_sleep showed up but was not actually added, I checked if it was still working and it was not, just the menu showed up (where the menu should have shown AR)

@blazoncek
Copy link
Collaborator

FYI sometimes you need to save usermod configuration for it to appear. This is due to the fact that usermods settings page reads cfg.json file directly and if there is no configuration saved for a usermod then it will not be present in UI.

@DedeHai
Copy link
Collaborator

DedeHai commented Mar 19, 2025

thanks for that info. I checked again:

  • the issue is still the same, saving UM config does remove "deep_sleep" if it is shown but was actually removed, still does not show the other.

continuing the sequence from above:
custom_usermods = audioreactive ; -> AR is not added but I still see deep sleep in UM config -> saving UM settings removes deep sleep settings but still does not show AR
custom_usermods = audioreactive Temperature Internal_Temperature_v2 ; -> AR is not showing up, temperature and internal temperature are shown
custom_usermods = audioreactive deep_sleep Temperature Internal_Temperature_v2 ; -> only deep_sleep is showing

@blazoncek
Copy link
Collaborator

That would mean they are not linked in.

@DedeHai
Copy link
Collaborator

DedeHai commented Mar 19, 2025

correct, which is what this issue is about.
when cleaning and adding a UM for the first time after that, I see it getting pulled in in the compile log. When then compiling again, its a hit and miss, as my log shows.

@netmindz
Copy link
Member

Thanks for the bug report @C0oL3r

Can I confirm, were you waiting to try out the "bleeding edge" unreleased version of WLED or just wanting to do a regular build with certain usermods enabled. If it's the latter, please checkout a release tag or the 0_15 stable release branch

@willmmiles
Copy link
Member

I instrumented UsermodManager::setup process and I always see the correct module list being loaded for each build. I can reproduce some settings page jankiness, but I haven't been able to reproduce linker issues. The settings pages do seem more reliable for me than others are reporting. I'm using an ESP32-WROVER with debug output enabled, so it boots twice for each debug build: once after upload, and again when the serial monitor connects, and it looks like cfg.json is getting rewritten with the updated usermod settings somewhere in between before I can get to the settings page.

@DedeHai , when you say "full clean", are you removing ~/.buildcache or just WLED/.pio? I'm wondering if the global build cache could have been poisoned somehow, so that it's using bad cached linker output. If you haven't been clearing ~/.buildcache, and you want to try that, please back up your old one first -- if this does turn out to be a cache poisoning issue, it'd be good to have one to debug from.

I'm going to see about fixing the settings page to always use the live state instead, so we can test cleanly without all the jankiness from outdated configurations.

@DedeHai
Copy link
Collaborator

DedeHai commented Mar 22, 2025

I did not manually delete folders for the test, just the button 'full clean' in pio

@willmmiles
Copy link
Member

Thanks. I've found the 'full clean' button does basically nothing, since the "real" storage is ~/.buildcache. Everything just gets re-copied from the cache instead of actually being rebuilt if platformio thinks nothing has changed since the last build.

@willmmiles
Copy link
Member

Live cfg fix currently pushed to #4601. I'll break it out to a separate PR later I think.

@C0oL3r
Copy link
Author

C0oL3r commented Mar 24, 2025

When i was testing i tried to delete .pio, .buildcache, even reinstalled platformio entirely, the compiling was fixed only for a new clone of the repository, i didn’t tried anymore as i used docker to compile it but when i will have some time i will send you the versions (it should be the latest platformio as i reinstalled it).
I also tried to save the usermods page as @blazoncek told, that is why i have come to the conclusion that platformio is not including the usermods.

Even in my docker environment there are some sketchy things happening as sometimes i need to remove .buildcache in order for the compiler to rebuild my firmware file, especially when i modify only some defines in platformio.ini

@C0oL3r C0oL3r closed this as completed Mar 24, 2025
@C0oL3r C0oL3r reopened this Mar 24, 2025
@C0oL3r C0oL3r closed this as completed Mar 24, 2025
@C0oL3r C0oL3r reopened this Mar 24, 2025
willmmiles added a commit to willmmiles/WLED that referenced this issue Mar 29, 2025
Write the current usermod list to a file, and add it as a dependency to
the linked output file.  This should hopefully overcome potential
poisoning of SCons' build cache with incorrect matches.

Meant to fix wled#4597
willmmiles added a commit to willmmiles/WLED that referenced this issue Mar 29, 2025
Write the current usermod list to a file, and add it as a dependency to
the linked output file.  This should hopefully overcome potential
poisoning of SCons' build cache with incorrect matches.

Meant to fix wled#4597
@willmmiles willmmiles linked a pull request Mar 29, 2025 that will close this issue
@KrX3D
Copy link

KrX3D commented Apr 14, 2025

Hi, im getting also this problem.

I tried it first on my normal PC where im able to compile v0.15 without problems and the usermods are present, but just downloading the newest source from git (today) and just i.e. enabling

custom_usermods = auto_save

doesnt include the usermod.

My Pc used Windows 10 btw. I also tested it on a fresh installed notebook with windows 10 where i installed VS Code today the first time and i also get the same with the same wled folder i used on my pc.
After that i installed on a server with docker a container with VS Code and i used again the same wled folder, and there it works.

I tried it with a couple of usermods and the bin file is always smaller on my windows 10 machines.

@willmmiles
Copy link
Member

@KrX3D Could you please try the patch in #4622 and let me know if it improves anything? I haven't been able to reproduce this reliably enough to validate a fix.

@KrX3D
Copy link

KrX3D commented Apr 15, 2025

@willmmiles

i added it but that didnt solve it. i also removed the .pio folder and still no usermod available.

i tried
custom_usermods = auto_save

in the .pio/libdeps/lolin_s2_mini folder i see a auto_save.pio-link which has the content:

{"cwd": "c:\\Users\\USERNAME\\Desktop\\WLED", "spec": {"owner": null, "id": null, "name": "auto_save", "requirements": null, "uri": "symlink://c:\\Users\\USERNAME\\Desktop\\WLED\\usermods\\usermod_v2_auto_save"}}

and usermod_list.txt:
auto_save

im not sure if this helps but under WLED\build_output\map\lolin_s2_mini.map AND WLED.pio\build\lolin_s2_mini\firmware.map

in the working inside docker i get like 100 of those lines, and they are missing in the folder on windows:

.group 0x0000000000000000 0x24 .pio/build/lolin_s2_mini_EleksTube/libd14/usermod_v2_auto_save/usermod_v2_auto_save.cpp.o

WLED.pio\build\lolin_s2_mini\idedata.json -> docker has got 6 times the path to the auto_save usermod folder and on windows only once

@willmmiles
Copy link
Member

As far as I could tell, the underlying problem seems to be something with SCons caching. PlatformIO always sets up the library links correctly, but - depending on the build history - it sometimes seems to think that it doesn't need to re-link the final output with the newly added libraries, and instead pulls an old build from ~/.buildcache. The patch in #4622 attempts to augment the caching metadata with an additional qualification on the usermod list, which seemed to work on my system, but I guess it isn't able to recover an already poisoned cache.

As you've noted, non-Windows systems seem less prone to this cache poisoning. I speculate this is due to some difference in filesystem metadata, but I don't know what it would be.

You can likely "unstick" your windows build system by deleting C:\users\username\.buildcache. #4622 should keep it from getting confused again. I'll need to see if I can deliberately engineer a poisoned cache so I can test recovery.

@blazoncek
Copy link
Collaborator

.buildcache is usually the issue if PIO fails to build properly. Removing entire content (or updating core .h files) is the only remedy.

@KrX3D
Copy link

KrX3D commented Apr 16, 2025

hi,

removing C:\users\username.buildcache didnt solve it.

but i kinda found a way to make it work, maybe this helps you to find out what the problem is.

i still got the fix #4622 in my wled folder and didn test it without it.

how i can make it work;

  • open a powershell 7 window and cd to the wled folder
  • remove the .pio folder
  • execute in powershell
    & "$env:USERPROFILE\.platformio\penv\Scripts\pio.exe" run -e lolin_s2_min_EleksTube
  • this will make an .bin file WHICH IS BROKEN 1025KB big
  • execute the command again and now the bin file gets replaced by another 1062KB big which IS WORKING

When i dont remove the .pio folder which was created by VS Code and just use the command in powershell, it doesnt matter how many times i compile it doesnt work.

Also when i just remove .pio\build i need to compile it once. Before the .pio folder was created by the command not VS Code.

But i cant get it ever working with VS Code, removing the .pio folder creates the broken bin file and compiling again creates each time the broken bin file. also lleaving the working bin file from the command and using VS Code just creates the broken bin file

here is the powershell output for both times (1st broken, 2nd working bin file):

Processing lolin_s2_mini_EleksTube (platform: https://github.com/tasmota/platform-espressif32/releases/download/2023.06.02/platform-espressif32.zip; board: lolin_s2_mini; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Library Manager: Installing willmmiles/AsyncTCP @ 1.3.1
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
Library Manager: Installing bitbank2/AnimatedGIF @ ^1.4.7
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
Library Manager: Installing git+https://github.com/Aircoookie/GifDecoder#bc3af18
git version 2.49.0.windows.1
Cloning into 'C:\Users\KrX\.platformio\.cache\tmp\pkg-installing-fb2cirn6'...
remote: Enumerating objects: 720, done.
remote: Counting objects: 100% (85/85), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 720 (delta 74), reused 62 (delta 60), pack-reused 635 (from 1)
Receiving objects: 100% (720/720), 861.98 KiB | 11.65 MiB/s, done.
Resolving deltas: 100% (454/454), done.
HEAD is now at bc3af18 separate alloc methods
Library Manager: [email protected]+sha.bc3af18 has been installed!
Library Manager: Installing fastled/FastLED @ 3.6.0
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
Library Manager: Installing makuna/NeoPixelBus @ 2.8.3
Unpacking  [####################################]  100%
Library Manager: [email protected] has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing git+https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.4.0
git version 2.49.0.windows.1
Cloning into 'C:\Users\KrX\.platformio\.cache\tmp\pkg-installing-2pxzfkdb'...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (61/61), done.
remote: Total 69 (delta 4), reused 38 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (69/69), 284.05 KiB | 10.14 MiB/s, done.
Resolving deltas: 100% (4/4), done.
warning: refs/tags/v2.4.0 154df45f680c1eeb70e1dec8ac3d95c3e0a1ac14 is not a commit!
Note: switching to '2d3af2c32b1dd1a8fd9fb01d7b51fa3653221a89'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Library Manager: [email protected]+sha.2d3af2c has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing git+https://github.com/blazoncek/QuickESPNow.git#optional-debug
git version 2.49.0.windows.1
Cloning into 'C:\Users\KrX\.platformio\.cache\tmp\pkg-installing-ygt3vemv'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 32 (delta 5), reused 11 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (32/32), 30.33 KiB | 2.76 MiB/s, done.
Resolving deltas: 100% (5/5), done.
Library Manager: [email protected]+sha.193e991 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
*** use existing my_config.h ***
Library Manager: Installing symlink://C:\Users\KrX\Desktop\WLED-usermod_SSDR\usermods\seven_segment_display_reloaded_v2
Library Manager: [email protected]+20250416172818 has been installed!
Library Manager: Installing symlink://C:\Users\KrX\Desktop\WLED-usermod_SSDR\usermods\usermod_v2_auto_save
Library Manager: [email protected]+20250416172818 has been installed!
Library Manager: Installing symlink://C:\Users\KrX\Desktop\WLED-usermod_SSDR\usermods\INA219_v2
Library Manager: [email protected]+20250416172818 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing wollewald/INA219_WE @ ~1.3.8
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Library Manager: [email protected] has been installed!
Library Manager: Installing symlink://C:\Users\KrX\Desktop\WLED-usermod_SSDR\usermods\hour_effect_v2
Library Manager: [email protected]+20250416172818 has been installed!
Installing node packages
npm ci

added 67 packages, and audited 68 packages in 615ms

13 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm run build

> [email protected] build
> node tools/cdata.js


          ##  ##      ##        ######    ######
        ##      ##    ##      ##        ##  ##  ##
        ##  ##  ##  ##        ######        ##  ##
        ##  ##  ##  ##        ##            ##  ##
          ##  ##      ######    ######    ######
                 build script for web UI

Web UI is already built
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/lolin_s2_mini.html
PLATFORM: Espressif 32 (2023.6.2) > WEMOS LOLIN S2 Mini
HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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 @ 2.0.9
 - tool-esptoolpy @ 1.40602.0 (4.6.2)
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ strict
Library Manager: Installing IRremoteESP8266 @ 2.8.2
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Library Manager: [email protected] has been installed!
Found 45 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AsyncTCP @ 1.3.1
|-- AnimatedGIF @ 1.4.7
|-- GifDecoder @ 1.1.0+sha.bc3af18
|-- FastLED @ 3.6.0
|-- IRremoteESP8266 @ 2.8.2
|-- NeoPixelBus @ 2.8.3
|-- ESPAsyncWebServerWLED @ 2.4.0+sha.2d3af2c
|-- QuickEspNow @ 0.8.1+sha.193e991
|-- seven_segment_display_reloaded_v2
|-- auto_save
|-- INA219_v2
|-- hour_effect_v2
|-- Wire @ 2.0.0
|-- EEPROM @ 2.0.0
|-- ArduinoOTA @ 2.0.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- Ethernet @ 2.0.0
|-- LittleFS @ 2.0.0
|-- SPI @ 2.0.0
|-- WiFi @ 2.0.0
|-- ESP32 Async UDP @ 2.0.0
|-- WebServer @ 2.0.0
Building in release mode
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\FastLED.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\bitswap.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\colorpalettes.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\colorutils.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\hsv2rgb.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\lib8tion.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\noise.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\platforms.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\platforms\esp\32\clockless_rmt_esp32.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\power_mgt.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libc12\FastLED\wiring.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\FX.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\FX_2Dfcn.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\FX_fcn.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\FXparticleSystem.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\alexa.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\bus_manager.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\button.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\cfg.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\colors.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\dmx_input.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\dmx_output.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\e131.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\file.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\hue.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\image_loader.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\improv.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\ir.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\json.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\led.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\lx_parser.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\mqtt.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\net_debug.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\network.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\ntp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\overlay.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\pin_manager.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\playlist.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\presets.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\remote.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\set.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\ConnAckPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PingRespPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PubAckPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PubCompPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PubRecPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PubRelPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\PublishPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\SubAckPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\async-mqtt-client\AsyncMqttClient\Packets\UnsubAckPacket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\dmx\ESPDMX.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\dmx\SparkFunDMX.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\e131\ESPAsyncE131.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\espalexa\EspalexaDevice.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\network\Network.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\time\DS1307RTC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\time\DateStrings.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\time\Time.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\src\dependencies\timezone\Timezone.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\syslog.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\udp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\um_manager.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\usermod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\util.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled_eeprom.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled_main.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled_math.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled_serial.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\wled_server.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\ws.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\src\xml.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\bootloader.bin' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\partitions.bin' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libd58\AsyncTCP\AsyncTCP.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib8d1\AnimatedGIF\AnimatedGIF.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libd58\libAsyncTCP.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib8d1\libAnimatedGIF.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libd08\SPI\SPI.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRac.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libd08\libSPI.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRrecv.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRsend.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRtext.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRtimer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\IRutils.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Airton.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Airwell.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Aiwa.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Amcor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Argo.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Arris.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Bose.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Carrier.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Coolix.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Corona.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Daikin.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Delonghi.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Denon.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Dish.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Doshisha.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Ecoclim.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Electra.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_EliteScreens.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Epson.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Fujitsu.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_GICable.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_GlobalCache.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Goodweather.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Gree.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Haier.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Hitachi.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Inax.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_JVC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Kelon.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Kelvinator.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_LG.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Lasertag.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Lego.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Lutron.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_MWM.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Magiquest.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Metz.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Midea.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_MilesTag2.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Mirage.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Mitsubishi.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_MitsubishiHeavy.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Multibrackets.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_NEC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Neoclima.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Nikai.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Panasonic.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Pioneer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Pronto.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_RC5_RC6.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_RCMM.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Rhoss.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Samsung.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Sanyo.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Sharp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Sherwood.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Sony.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Symphony.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Tcl.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Technibel.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Teco.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Teknopoint.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Toshiba.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Transcold.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Trotec.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Truma.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Vestel.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Voltas.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Whirlpool.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Whynter.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Xmp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\IRremoteESP8266\ir_Zepeal.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib04c\I2S\I2S.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib057\libIRremoteESP8266.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\animations\NeoPixelAnimator.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib04c\libI2S.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HsbColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HslColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HtmlColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HtmlColorNameStrings.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HtmlColorNames.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\HtmlColorShortNames.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\NeoGammaDynamicTableMethod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\NeoGammaTableMethod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\Rgb48Color.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\RgbColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\RgbColorBase.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\Rgbw64Color.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\RgbwColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\Rgbww80Color.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\RgbwwColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\RgbwwwColor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\colors\SegmentDigit.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\Esp32_i2s.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\FractionClk.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\NeoEsp32RmtMethod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\NeoEsp8266I2sMethodCore.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\NeoEsp8266UartMethod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\NeoEspBitBangMethod.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\NeoPixelAvr.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\NeoPixelBus\internal\methods\Rp2040\NeoRp2040PioMonoProgram.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib96d\FS\FS.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe3f\libNeoPixelBus.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib96d\FS\vfs_api.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib06c\LittleFS\LittleFS.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib96d\libFS.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFi.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib06c\libLittleFS.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiAP.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiClient.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiGeneric.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiMulti.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiSTA.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiScan.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiServer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\WiFi\WiFiUdp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\AsyncEventSource.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libe5a\libWiFi.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\AsyncWebSocket.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\ContentTypes.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\DynamicBuffer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\SPIFFSEditor.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\WebAuthentication.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\WebHandlers.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\WebRequest.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\WebResponses.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\ESPAsyncWebServerWLED\WebServer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib718\QuickEspNow\QuickEspNow_esp32.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libacd\libESPAsyncWebServerWLED.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib718\QuickEspNow\QuickEspNow_esp8266.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib443\seven_segment_display_reloaded_v2\seven_segment_display_reloaded_v2.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib718\libQuickEspNow.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib443\libseven_segment_display_reloaded_v2.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib33b\usermod_v2_auto_save\usermod_v2_auto_save.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9b0\Wire\Wire.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib33b\libusermod_v2_auto_save.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9b0\libWire.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libbdb\INA219_WE\INA219_WE.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib0cc\INA219_v2\INA219_v2.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libbdb\libINA219_WE.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib528\hour_effect_v2\hour_effect_v2.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib0cc\libINA219_v2.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib528\libhour_effect_v2.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib8a8\EEPROM\EEPROM.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9f3\Update\HttpsOTAUpdate.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib8a8\libEEPROM.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9f3\Update\Updater.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9be\ESPmDNS\ESPmDNS.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9f3\libUpdate.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libb0e\ArduinoOTA\ArduinoOTA.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib9be\libESPmDNS.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libb0e\libArduinoOTA.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib10e\DNSServer\DNSServer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib700\Ethernet\ETH.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib10e\libDNSServer.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libcc9\AsyncUDP\AsyncUDP.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib700\libEthernet.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libcc9\libAsyncUDP.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib198\WebServer\Parsing.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib198\WebServer\WebServer.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib198\WebServer\detail\mimetable.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\Esp.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\lib198\libWebServer.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\FirmwareMSC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\FunctionalInterrupt.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\HWCDC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\HardwareSerial.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\IPAddress.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\IPv6Address.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\MD5Builder.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\Print.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\Stream.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\StreamString.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\Tone.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\USB.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\USBCDC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\USBMSC.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\WMath.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\WString.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\base64.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\cbuf.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-adc.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-bt.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-cpu.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-dac.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-gpio.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-i2c-slave.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-i2c.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-ledc.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-matrix.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-misc.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-psram.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-rgb-led.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-rmt.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-sigmadelta.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-spi.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-time.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-timer.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-tinyusb.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-touch.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\esp32-hal-uart.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\firmware_msc_fat.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\libb64\cdecode.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\libb64\cencode.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\main.cpp.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\stdlib_noniso.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\wiring_pulse.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\FrameworkArduino\wiring_shift.c.o' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\libFrameworkArduino.a' from cache
Retrieved `.pio\build\lolin_s2_mini_EleksTube\firmware.elf' from cache
Retrieving maximum program size .pio\build\lolin_s2_mini_EleksTube\firmware.elf
Checking size .pio\build\lolin_s2_mini_EleksTube\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  15.8% (used 51784 bytes from 327680 bytes)
Flash: [=======   ]  66.7% (used 1048582 bytes from 1572864 bytes)
Retrieved `.pio\build\lolin_s2_mini_EleksTube\firmware.bin' from cache
============================================= [SUCCESS] Took 14.93 seconds =============================================

Environment              Status    Duration
-----------------------  --------  ------------
lolin_s2_mini_EleksTube  SUCCESS   00:00:14.934
============================================= 1 succeeded in 00:00:14.934 =============================================
PS C:\Users\KrX\Desktop\WLED-usermod_SSDR> & "$env:USERPROFILE\.platformio\penv\Scripts\pio.exe" run -e lolin_s2_mini_EleksTube
Processing lolin_s2_mini_EleksTube (platform: https://github.com/tasmota/platform-espressif32/releases/download/2023.06.02/platform-espressif32.zip; board: lolin_s2_mini; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
*** use existing my_config.h ***
Installing node packages
npm ci

added 67 packages, and audited 68 packages in 642ms

13 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm run build

> [email protected] build
> node tools/cdata.js


        [34m  ##  ##      ##        ######    ######
        ##      ##    ##      ##        ##  ##  ##
        [34m##  ##  ##  ##        ######        ##  ##
        ##  ##  ##  ##        ##            ##  ##
        [34m  ##  ##      ######    ######    ######
                 build script for web UI

Web UI is already built
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/lolin_s2_mini.html
PLATFORM: Espressif 32 (2023.6.2) > WEMOS LOLIN S2 Mini
HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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 @ 2.0.9
 - tool-esptoolpy @ 1.40602.0 (4.6.2)
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ strict
Found 45 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AsyncTCP @ 1.3.1
|-- AnimatedGIF @ 1.4.7
|-- GifDecoder @ 1.1.0+sha.bc3af18
|-- FastLED @ 3.6.0
|-- IRremoteESP8266 @ 2.8.2
|-- NeoPixelBus @ 2.8.3
|-- ESPAsyncWebServerWLED @ 2.4.0+sha.2d3af2c
|-- QuickEspNow @ 0.8.1+sha.193e991
|-- seven_segment_display_reloaded_v2
|-- auto_save
|-- INA219_v2
|-- hour_effect_v2
|-- Wire @ 2.0.0
|-- EEPROM @ 2.0.0
|-- ArduinoOTA @ 2.0.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- Ethernet @ 2.0.0
|-- LittleFS @ 2.0.0
|-- SPI @ 2.0.0
|-- WiFi @ 2.0.0
|-- ESP32 Async UDP @ 2.0.0
|-- WebServer @ 2.0.0
Building in release mode
Retrieved `.pio\build\lolin_s2_mini_EleksTube\firmware.elf' from cache
Retrieving maximum program size .pio\build\lolin_s2_mini_EleksTube\firmware.elf
Checking size .pio\build\lolin_s2_mini_EleksTube\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  16.0% (used 52400 bytes from 327680 bytes)
Flash: [=======   ]  69.1% (used 1086918 bytes from 1572864 bytes)
Retrieved `.pio\build\lolin_s2_mini_EleksTube\firmware.bin' from cache
============================================= [SUCCESS] Took 8.46 seconds =============================================

Environment              Status    Duration
-----------------------  --------  ------------
lolin_s2_mini_EleksTube  SUCCESS   00:00:08.465
============================================= 1 succeeded in 00:00:08.465 =============================================`

EDIT:

ok the fix https://github.com/wled/WLED/pull/4622 isnt needed for it to work this way

@willmmiles
Copy link
Member

@KrX3D Thank you very much! I've been able to replicate this locally with your instructions. Hopefully a fix will follow soon...

willmmiles added a commit to willmmiles/WLED that referenced this issue May 1, 2025
The ConfigureProjectLibBuilder process will flush and reload the library
settings from the on-disk manifests, reverting the libArchive setting
change performoed prior to that call.  Apply the setting afterwards,
instead.

Fixes wled#4597
willmmiles added a commit to willmmiles/WLED that referenced this issue May 1, 2025
The ConfigureProjectLibBuilder process will flush and reload the library
settings from the on-disk manifests if any new library is installed at
that stage.  This has the side effect of reverting the libArchive setting
applied to usermods which was performed prior to that call.
Apply the setting afterwards, instead.

Fixes wled#4597
@willmmiles willmmiles linked a pull request May 1, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants