Wykres commitów

45 Commity (main)

Autor SHA1 Wiadomość Data
Will Miles 368351bbdd Remove nonfunctional usermod validation
Non-platform-safe usermods are filtered out before validation runs;
so this check is no longer functional.
2025-06-18 12:10:00 -04:00
Will Miles f9bfcce65d Fix disabled usermod presence validation
PlatformIO doesn't clean out the libdir when usermods are disabled, so
they still appear in the LibBuilders() set.  Ensure that we validate
only usermods that were actually deps for the build.
2025-06-18 12:08:57 -04:00
Will Miles f3623158d7 Usermod script cleanup
Fix whitespace and remove unused imports
2025-05-25 08:33:27 -04:00
Will Miles 309c8d67f3 Generalize module link validation
Perform validation for external modules, too.
2025-05-24 23:14:22 -04:00
Will Miles 0a7d3a9d9b load_usermods: Simplify load code
Remove all the unnecessary bits.
2025-05-24 22:16:01 -04:00
Will Miles 75cd411073 Improve all-usermod handling
Use a magic custom_usermods string instead of a magic environment
name; and disable the validation script as it triggers on the non-
platform-compatible mods.
2025-05-24 14:13:08 -04:00
Will Miles 792a7aa081 load_usermods: Resolve folder paths
Ensure all paths used in usermod symlinks are fully resolved, including
any case correctness issues on Windows.  Apparently PlatformIO does
not handle symlink files correctly on Windows if there are case
differences between cwd and the resolved path.
2025-05-22 09:13:54 -04:00
Will Miles 7ea510e75b validate_usermods: Improve message 2025-05-22 08:44:05 -04:00
Will Miles 242df4b049 validate_usermods: Fix old ESP32 platform
The modern linker used with new platforms (ESP8266, ESP32 >v4) always
produces paths in the map file with slash; however the old linker for
the old ESP32 platform instead produces paths with backslash when
building on Windows.  Match both types as a path separator when
scanning linked symbols.
2025-05-22 08:43:52 -04:00
Will Miles 358e38e056 validate_usermods: Ensure map file is created
Not all of our platforms create one by default; ensure it's produced.
2025-05-22 08:41:59 -04:00
Will Miles ac61eb4b1b validate_usermods: Fix inverted check
Difference direction was inverted.  It's tough to test when it always
works correctly on your local machine!

H/t @coderabbitai
2025-05-19 17:41:11 -04:00
Will Miles 999637f8ad Validate usermods at link time
Add additional validation of the linker .map output to confirm that the
correct usermods were added.
2025-05-19 17:30:22 -04:00
Will Miles ee3864175d load_usermods: Make missing libArchive an error
Rather than try and fail to add this property, abort if it's missing
from any requested usermod.
2025-05-06 22:39:10 -04:00
Will Miles 6464c620c7 load_usermods: Enforce CPPPATH type
Ensure that entries put in CPPPATH are always strings so SCons can
correctlly deduplicate.
2025-04-30 21:56:56 -04:00
Will Miles 7998650e60 Fix up usermod libArchive settings
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 #4597
2025-04-30 21:18:05 -04:00
Will Miles e00789f838 Merge remote-tracking branch 'upstream/main' into usermod-libs 2025-03-01 20:32:12 +00:00
netmindz fa2949af7d
use npm ci 2025-02-22 17:39:00 +00:00
Will Tatam 1dc7647bb9 Merge branch 'main' into usermod-libs 2025-02-16 10:40:30 +00:00
SpiroC 778cecb512 Check if Node.js is installed and present in PATH 2025-02-15 14:43:08 +11:00
Will Miles 2431f2058b load_usermods: Split on any whitespace
This allows the common newline syntax in platformio
2025-02-06 22:23:12 -05:00
Will Miles 51db63dff7 load_usermods: Also search for mod_v2 2025-01-31 03:39:05 +00:00
Will Miles 4bc3408410 load_usermods: Don't cross usermod includes
Only include paths for the base system deps, not those of other
usermods.
2025-01-31 01:35:58 +00:00
Will Miles 5d392d89ce load_usermods: Improve include path assembly
Don't blast the path of any mentioned library - parse only the tree of
the actual build deps.
2025-01-31 01:33:34 +00:00
Will Miles 15edfcd088 Fix usermod platformio integration
Should now work for new *and* old versions of PlatformIO!
2025-01-16 01:05:12 +00:00
Will Miles 8fd905215f Integrate usermods environment
Move the "all usermods" logic in to the platformio script, so the
'usermods' environment can be built in any checkout without extra setup
commands.
2025-01-14 22:21:26 +00:00
Will Miles 270d75afe2 Update usermod deps earlier
When processing usermods, update their include path properties before
the LDF runs, so it can see through wled.h.
2025-01-14 22:16:55 +00:00
Will Miles 0b8721c25e Fix usermod libArchive setting
Monkey-patch PlatformIO to intercept the build process after library
dependencies are loaded, but before the build is fully analyzed.  This
lets us enforce libArchive=False for usermods without making that
setting global across all libraries.

The rest of the fixup code is integrated at the same call site for
simplicity.
2025-01-14 02:48:00 +00:00
Will Miles cc9e9b109c Fix usermod library builds
Manage include folders via a second platformio script, fixing builds and
removing all the extra boilerplate from usermod library.json files.
2025-01-12 17:07:36 +00:00
Will Miles 4d5e0ca7a3 load_usermods: Expand name search
Look for 'usermod_v2_x' as well.  This could be removed later if we
clean up the folder names.
2025-01-11 13:31:20 -05:00
Will Miles b8685f2c39 Convert usermods to static libraries
Redesign the usermod system so that usermods are implemented as
PlatformIO libraries instead of headers.  This permits them to call for
dependencies, and eliminates the compiler flags for enabling each one,
allowing the build cache to behave better.

The usermod list is built using some linker magic to construct a static
list in ROM memory.  This eliminates the need for wasting SRAM on
something fixed at build time.
2025-01-11 12:08:29 -05:00
Will Tatam 0c77dbb7ea cleanup WLED_RELEASE_NAME only if present 2024-11-24 13:55:23 +00:00
Will Tatam 0be1df7ee8 Stip \" from WLED_RELEASE_NAME 2024-11-23 16:46:41 +00:00
Frank 2607c44fbb make objdump work
Script update based on latest version from Tasmota
* add support for all esp32 variants
* add "-C" : Decode (demangle) low-level symbol names into user-level C++ names.
2024-05-06 11:00:41 +02:00
Frank a6e536189c output_bin.py : fix for mapfile copy
The build script was not looking into the right place, so there was never a .map file dropped into build_output/map/

Builds with the newer arduino-esp32 v2.0.x framework actually generate a .map file that is placed directly next to firmware.bin
2024-05-05 21:56:01 +02:00
Blaz Kristan 24c5935661 Fix for missing firmware build
updated changelog (missing credit)
2024-04-03 18:31:17 +02:00
Woody 6f6356e617
fix print output for bin.gz file 2024-03-27 21:34:51 +01:00
Woody 5d152baac0
Do not create release_gz folder 2024-03-27 21:19:03 +01:00
Woody d6e73fde50
only create bin.gz files for esp8266 2024-03-26 17:34:01 +01:00
Woody 7ee4b54154
optimize output_bins.py 2024-03-19 20:06:09 +01:00
Woody 1eaac0072d
Add a separate folder for .gz release files 2024-02-03 00:44:38 +01:00
Woody c41c71c8c1
add bin.gz firmware for ESP02 to artifacs (#4) 2024-01-24 21:22:54 +01:00
Woody e778b02c0c
Automatically build UI before compiling 2024-01-07 01:06:52 +01:00
cschwinne 6a8ed1192f Accept hex color strings in individual LED API
Version bump to 0.13.0-b2 "Toki"
Fixed transition property not applying unless power/bri/color changed next
Moved transition field below segments (temporarily)
2021-07-10 16:14:17 +02:00
Andy Shinn 0f82730a78
Release engineering improvements (#1844)
* version set from package.json and release bin names

* support direnv virtualenv

* versioned PlatformIO environment

* matrix support for parralel CI

* gather artifacts

* release on tagging

* minor scripts formatting
2021-04-22 00:41:36 +02:00
Rolf 746a8badac
Animated Staircase Usermod (#1763)
* Initial version of the PIR Staircase wipe up/down.

* Add pulldown reminder

* Workaround for missing D6 and D7 definitions on esp32dev

* Add pinouts for d1 mini (esp8266 and esp32) and NodeMCU (and Arduino)

* These IO pins on all these boards... NodeMCU and d1_mini esp32 supported. The others? Fingers crossed.

* Changed to not collide with led strip pins

* PIR on GPIO 15 and 16 on esp32 d1 mini

* Removed PIN number ifdefs, it is impossible to match all boards

* Settings in flash, info and API

* Update README.md

* Small doc changes

* Improved README

* Fixed error in reading configuration

* Add API documentation

* Documentation and code cleanup

* Add enable/disable to API settings

* Restore segment state when disabling plugin

* Add debounce

* Set segments in animation mode

* Set segments in animation mode

* Add support for HR04 sensors

* Add preliminary description for  using an HR04 sensor

* Fixed typenumber and linked to datasheet

* Moved config away from defines to prevent user error

* Trigger Sensors through API

* Rename scripts folder so that it's name doesn't clash with the `pio` command (prevents platformIO in VSCode to work properly on Mac)

* Bugfix for detection problems

* Separated config from code

* Renamed Signal to Trigger pin

* Filename adjusted

* Clarifications and additions to README

* Fixed references to pio scripts

* Fixed API trigger bug

* Adjustments to README.md

* More efficient use of flash cycles, better naming

* Bugfix: bottom sensor was not read properly

* Renamed to Animated_Staircase

* Add note on ultrasonic sensor and esp32

* Better naming of defines

* Bugfix: Swipe down started with two steps.

* Removed upload port in nodemcuv2 section

Co-authored-by: Rolf <rolf@phobos.local>
Co-authored-by: Rolf <>
2021-02-25 09:52:48 +01:00