WLED build with ALL usermods integrated & selectable

Imagine if you will, you are a hardware person.

You cringe at the thought of following the required instructions to install & configure git, VS Code & Platform IO IDE, then retrieve WLED project.

That gets you no further to your goals of testing some user mods out with some hardware you are trying out that simply installing the pre-built firmware.

So, you then have to follow even more cringe-worthy instructions to integrate multiple usermods, compiling (and cringing again while dealing with the Platform IO fail-the-first-time-and-just-compile-again thing).

Now that you understand the motivation - supporting the non-software hardware hackers among us, here’s the request:

Develop a WLED build that automatically builds an ESP32 (only) firmware which includes every usermod in the usermod folder, adds a configuration menu button for “USERMODS”.

When the “USERMODS” button is selected, the user is presented with a list of usermods, (mutually exclusive) radio button, first ~80 characters of the usermod’s readme.md, and once the radio button is pressed, a button appears below the usermod to enable.

The enable button once pressed integrates that usermod as if someone had done the manual integration and custom firmware build for that usermod, then saves state (including the currently selected usermod so that Usermod’s radio button can display as already selected), then restarts.

(o) Animated_Staircase: This usermod makes your staircase look cool by switching it on with an animation
( ) Artemis_reciever: Usermod to allow WLED to receive via UDP port from RGB.NET (and therefore add as
… and so on …

This is obviously a long-term project, but I could be quite valuable to many people, particularly if this build variant were automatically built right along with the default ESP32 build

Would you still be able to do ota upgrades?

Good idea!
I doubt that we could include ALL THE MODS, as that will most likely surpass the flash capacity of the ESP32 (we are already at 96% without any mods with the current partition layout), but having the capability to switch usermods on and off in UI would definitely be nice and could enable including some of them by default.

@Aircoookie how about “ModBuild 1”, “ModBuild 2”, “ModBuild 3”, where the usermods in each build # are somehow related. Like Hallway / Stairway usermods definitely get their own “ModBuild”. Sensor related usermods probably get another. Output devices, like OLED displays, get their own build group.

The idea being these get built with #DEFINEs so they can be automatically built during your automated firmware build processing.

The reason for the automated build is to allow OTA upgrades so people can try out usermods pre-built and see what might fit their needs.

To go along with that, the usermod UI should also allow for run-time pin definitions, so if a PIR sensor is on pin 4 and pin 5 for a given usermod, the usermod UI page puts the PIR sensor text and pin # (-1 - undefined), only presenting unused and available pins in the drop-down.

Yeah, I know it’s a big ask, but I know around October / December, it will become increasing valuable when people want to try something out “real quick” and swarm to this discourse group / wled discord server / wled issues page with help building specific .bin’s.

And to @Artacus, my idea is that yes, it would allow for OTA upgrades as long as the ESP32 used has enough capacity (which I think most do).

I doubt this enhancement request would squeeze into an ESP8266 without sacrifices - and custom builds. Maybe if certain sections of WLED “base” code were incompatible with a chosen set of usermods, it could be excluded during compile if a certain #DEFINE were used during the build - saving some code space to be filled by usermod code.

To help even further, I do wonder if the usermod subsystem could be amended / upgraded to allow exact code changes scripted by platform_io_override.ini commands so a build could be automated and made available during regular wled release builds.

I wonder how close some of the v2 usermods are now to allow automated builds.

Guess I’m looking ahead at v3 usermods that can automatically build when coupled with usermod related changes to WLED code / UI - v0.14α maybe.

would it be possible to load the effects optional?
I can imagine that not all effects are really needed by each user.
So if usermods and effects could be loaded first, the user could decide which ones he wants to have and keep.
I can’t program and therefore can’t judge if this would save memory, if so, could it possibly lead to the goal?
Please excuse the bad english, it is translated by Deepl :slight_smile: