Commit Graph

1432 Commits

Author SHA1 Message Date
Will Tatam
00904d8862 Merge branch 'copilot/fix-d4f5fc55-f916-458a-9155-deb9bbff6662' of https://github.com/wled/WLED into copilot/fix-d4f5fc55-f916-458a-9155-deb9bbff6662 2025-11-09 09:18:00 +00:00
Will Tatam
00ca694eea Fix: Move bootloader JavaScript to separate script block to avoid GetV() injection removal
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-11-09 09:16:59 +00:00
Will Tatam
013ecfb189 Add ESP32 bootloader upgrade functionality with JSON API support
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-11-09 09:15:23 +00:00
Damian Schneider
f0f12e77ad New file editor (#4956)
- no mendatory external JS dependency, works in offline mode
- optional external dependency is used for highlighting JSON, plain text edit is used if not available
- WLED styling (dark mode only)
- JSON files are displayed "prettyfied" and saved "minified"
- JSON color highlighting (if available)
- JSON verification during edit and on saving both in online and offline mode
- special treatment for ledmap files: displayed in aligned columns (2D) or as lines (1D), saved as minified json: no more white-space problems
- displays file size and total flash usage
2025-11-09 08:32:45 +01:00
Will Miles
46125773d9 Merge pull request #4998 from willmmiles/fix-4929-sq
Add OTA metadata validation v2
2025-11-08 17:41:42 -05:00
Damian Schneider
4973fd5a39 Adding DDP over WS, moving duplicate WS-connection to common.js (#4997)
- Enabling DDP over WebSocket: this allows for UI or html tools to stream data to the LEDs much faster than through the JSON API.
- first byte of data array is used to determine protocol for future use
- Moved the duplicate function to establish a WS connection from the live-view htm files to common.js
- add better safety check for DDP: prevent OOB reads of buffer
2025-11-08 19:03:17 +00:00
Damian Schneider
c4850aed08 Adding DDP over WS, moving duplicate WS-connection to common.js (#4997)
- Enabling DDP over WebSocket: this allows for UI or html tools to stream data to the LEDs much faster than through the JSON API.
- first byte of data array is used to determine protocol for future use
- Moved the duplicate function to establish a WS connection from the live-view htm files to common.js
- add better safety check for DDP: prevent OOB reads of buffer
2025-10-21 19:41:57 +02:00
copilot-swe-agent[bot]
a073bf32e4 Implement OTA release compatibility checking system
Implement a comprehensive solution for validating a firmware before an
OTA updated is committed.  WLED metadata such as version and release
is moved to a data structure located at near the start of the firmware
binary, where it can be identified and validated.

Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-10-06 21:50:23 -04:00
copilot-swe-agent[bot]
d79b02379e Fix: Move bootloader JavaScript to separate script block to avoid GetV() injection removal
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-10-05 15:39:43 +00:00
copilot-swe-agent[bot]
93908e758f Add ESP32 bootloader upgrade functionality with JSON API support
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-10-05 14:17:51 +00:00
Mathijs Groothuis
f096320e63 Fix typo changable > changeable
Fix typo that I discovered while tinkering in Wled.
2025-09-28 16:55:03 +02:00
Damian Schneider
e23751bd1d Bugfix in custom palette color picker, fixes #4963 2025-09-27 13:23:36 +02:00
Damian Schneider
8b3975752c speed optimisations, fix for restoreColorLossy, code cleanup (#4895)
- speed optimization in color_add, PS fast_color_add and blur functions
- applying more bit and shift manipulation tricks to squeeze out just a bit more speed on color manipulation functions.
- Optimization on blur is based on work by @blazoncek
- Renamed PS fast_color_add() to fast_color_scaleAdd()
2025-09-23 20:15:42 +02:00
Damian Schneider
529edfc39b "unrestricted" number of custom palettes (#4932)
- allow more than 10 custom palettes
- move palettes into CPP file
- Fix for minimizing cpal.htm (saves 2k of flash)
- shortened names in cpal, saves about 400 bytes of Flash after packing
- removed async from common.js loading to prevent errors on page loads if the file is not cached
- restricted nubmer of user palettes on ESP8266 to 10
- unrestricted number of user palettes on all other platforms (total max palettes: 256)
- added a warning when adding more than 10 palettes to let the user decide to risk it
- Bugfixes in palette enumeration, fixed AR palette adding
- AR palettes are now also added if there are more than 10 custom palettes

Co-authored-by: Blaž Kristan <blaz@kristan-sp.si>
2025-09-22 20:09:54 +02:00
Damian Schneider
4d39dd0a5e Fix LED buffer size calculation (#4928)
* Attempt at better bus memory calculation and estimation
* Remov double buffer count for ESP8266 (thanks @dedehai)
* improve UI calculation
* adding mendatory LED buffers to UI memory calculation
* adding buffer for transitions to memory calculation, change "error" to "warning"
* bugfixes in settings_leds.htm
* fix getDataSize() forESP8266, ESP8266 does not use double buffering.
* update led settings: fix parsing by @blazoncek
* new warnings for LED buffer use, deny adding a bus if it exceeds limits
* adds recommendations for users (reboot, disable transitions)

Co-authored-by: Blaž Kristan <blaz@kristan-sp.si>
2025-09-21 22:48:09 +02:00
Will Tatam
3a7de8275f Merge pull request #3777 from netmindz/HUB75-AC
Add HUB75 support
2025-09-20 13:05:48 +01:00
Damian Schneider
76cb2e9988 Improvements to heap-memory and PSRAM handling (#4791)
* Improved heap and PSRAM handling

- Segment `allocateData()` uses more elaborate DRAM checking to reduce fragmentation and allow for larger setups to run on low heap
- Segment data allocation fails if minimum contiguous block size runs low to keep the UI working
- Increased `MAX_SEGMENT_DATA` to account for better segment data handling
- Memory allocation functions try to keep enough DRAM for segment data
- Added constant `PSRAM_THRESHOLD` to improve PSARM usage
- Increase MIN_HEAP_SIZE to reduce risk of breaking UI due to low memory for JSON response
- ESP32 makes use of IRAM (no 8bit access) for pixeluffers, freeing up to 50kB of RAM
- Fix to properly get available heap on all platforms: added function `getFreeHeapSize()`
- Bugfix for effects that divide by SEGLEN: don't run FX in service() if segment is not active
-Syntax fix in AR: calloc() uses (numelements, size) as arguments

* Added new functions for allocation and heap checking

- added `allocate_buffer()` function that can be used to allocate large buffers: takes parameters to set preferred ram location, including 32bit accessible RAM on ESP32. Returns null if heap runs low or switches to PSRAM
- getFreeHeapSize() and getContiguousFreeHeap() helper functions for all platforms to correctly report free useable heap
- updated some constants
- updated segment data allocation to free the data if it is large

- replaced "psramsafe" variable with it's #ifdef: BOARD_HAS_PSRAM and made accomodating changes
- added some compile-time checks to handle invalid env. definitions
- updated all allocation functions and some of the logic behind them
- added use of fast RTC-Memory where available
- increased MIN_HEAP_SIZE for all systems (improved stability in tests)
- updated memory calculation in web-UI to account for required segment buffer
- added UI alerts if buffer allocation fails
- made getUsedSegmentData() non-private (used in buffer alloc function)
- changed MAX_SEGMENT_DATA
- added more detailed memory log to DEBUG output
- added debug output to buffer alloc function
2025-09-16 19:46:16 +02:00
copilot-swe-agent[bot]
72ad39d6a7 Fix 2D matrix generator preview update issue
Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>
2025-09-03 17:51:00 +00:00
Aiden
5cb8dc3978 Delete the same define 2025-09-01 11:05:31 +08:00
Will Tatam
199bc45ae2 Merge branch 'main' into HUB75-AC 2025-08-31 12:53:25 +01:00
Aiden
8baa6a4616 support iotorero ethernet controller 2025-08-21 12:51:48 +08:00
Arcitec
7865985eeb Make version information consistent across update interfaces
The duplication of logic and the formatting differences between the "OTA Updates" and "Security & Updates" pages made it very difficult to find the exact version details.

With this change, both update-pages now share the same consistent and detailed formatting, making it easy for users to identify which exact version and binary of WLED they've installed.

The version format has also been improved to make it much easier to understand.
2025-08-17 22:45:20 +02:00
TripleWhy
b8b59b2bb1 Make rainbow effects more colorful (#3681)
* Make color_wheel rotate in HSV sapce instead of linearly interpolating R->G->B
* Remove the rainbow wheel option, as that is the same as the rainbow palette
* Use hsv2rgb for color_wheel

This is the current result of the discussion in https://github.com/wled/WLED/pull/3681
2025-08-15 20:19:18 +02:00
Blaž Kristan
374d90629d Merge pull request #4768 from wled/fix-4268
Add mDNS resolution for network bus
2025-08-02 23:12:23 +02:00
Blaž Kristan
bfe5cd52e7 Merge pull request #4748 from wled/aOTA
Revert disable OTA logic & optional Arduino OTA
2025-08-02 23:11:37 +02:00
netmindz
591dbe387c Merge pull request #4780 from jasonsomers/main
Update settings_wifi.htm
2025-07-27 13:52:31 +01:00
Damian Schneider
e2f5becdd0 Bugfixes in FX data allocation (#4783)
- Bugfixes in FX data allocation: realloc was not handled properly.
- Added *intermediate* fix for waitForIt(), see https://github.com/wled/WLED/issues/4779
- Bugfix in 1D->2D expansions: corner-expansion MUST be boundary checked as it blindly writes the max dimension
- removed some realloc(), improving fragmentation on large setups
- increased min heap constant
- ESP32 C3 has no PSRAM, it now uses default alloc functions
- also added missing UI info for "Error 7"
2025-07-23 06:42:06 +02:00
Blaž Kristan
c30c7e1da5 Merge pull request #4763 from wled/fix-parallel-i2s-selection
Prevent parallel I2S use if different LED types are used.
2025-07-22 11:14:55 +02:00
Jason Somers
806163f1ed Merge branch 'wled:main' into main 2025-07-17 22:13:01 -04:00
Blaz Kristan
e7157e542a Add mDNS resolution for network bus 2025-07-12 18:44:38 +02:00
Blaž Kristan
a24420ae70 Fix #4268 2025-07-12 18:18:49 +02:00
Blaž Kristan
bd7735af3d Securing OTA update
- prevent settings change if not using private IP address or same subnet
- prevent OTA from differnet subnet if PIN is not set
- ability to revert firmware
2025-07-06 16:22:44 +01:00
Blaz Kristan
6a5dcb3a76 More OTA UI tweaks 2025-06-26 15:46:23 +02:00
Blaz Kristan
796494e925 Tweaks in OTA UI
- added OTA section toggle
- added ignore upload
- fix for missing "NoXXX" ID
- rely on 404 for /dmxmap
2025-06-26 11:41:03 +02:00
Blaž Kristan
0f00c95aba Merge pull request #4700 from wled/secure-ota
Securing OTA update
2025-06-20 20:05:11 +02:00
Will Tatam
8ee12620f0 Merge branch 'main' into HUB75-AC 2025-06-16 20:03:34 +01:00
Will Miles
ab28b6d58f Update crude parallel I2S detection
My ESP32s are now reporting a maximum of 32 buses.
2025-06-07 12:03:48 -04:00
Blaž Kristan
23a51e0982 Merge pull request #4658 from wled/layers
Segment layers and better effect transitions (blending)
2025-06-01 12:28:11 +02:00
Blaž Kristan
dcd3e07273 Securing OTA update
- prevent settings change if not using private IP address or same subnet
- prevent OTA from differnet subnet if PIN is not set
- ability to revert firmware
2025-05-26 18:00:45 +02:00
Blaž Kristan
aa28769e71 Merge pull request #4652 from wled/disable-ota
Only disable Arduino OTA when using -D WLED_DISABLE_OTA
2025-05-24 21:27:08 +02:00
Damian Schneider
66ad27ad3a add support for up to 10 ESPNow remotes (#4654)
* add support for up to 10 ESPNow remotes

* removed debug line

* changed todo comment

* fixed some issues, shortened html/java code

- reverting name to `linked_remote`
- ESPNow remote list is now hidden if unchecked
- shortened java script function names and variables to save flash
- removed now obsolete settings in xml.cpp
- correct checking of valid hex string for remote list in java script

* fixed indentation, using emplace_back instead of push_back, using JsonVariant, replaced buttons with +/-

* shortened java code

* updated java code, fixed bug

- element is now properly removed
- `+` button is hidden if list is full
- user needs to remove a remote, then reload the page to add it (workaround for edge case that needs more code to handle otherwise)

* add limit

* clearer usage description
2025-05-19 20:34:27 +02:00
Blaž Kristan
ee9ac947a1 Segment layering & effect blending improvements
- Photoshop-style segment/layer blending
- return of strip ABL
- remove global LED buffer in favour of segment-local buffer
- new effect blending modes/transitions
- custom palettes moved out of WS2812FX class
- increased limits (matrix size, LED RAM)
- added "rainbow"-mode colorwheel
- replaced palettes with gamma unmodified ones
- move gamma adjustment to last step before sending to LEDs
- Segment & WS2812FX class reorganisation (mutable members, reordered members, protected members)
2025-04-22 22:37:18 +02:00
Blaž Kristan
8baf0fdef7 Add UI logic to hide ArduinoOTA checkbox and remove configuration items 2025-04-20 11:44:26 +02:00
Blaž Kristan
c661d8f5b7 Merge pull request #4627 from blazoncek/overlay-fix
Allow clock overlay to use LED beyond 255
2025-04-20 11:05:35 +02:00
Blaž Kristan
b941654a68 Allow clock overlay to use LED beyond 255 2025-03-29 23:39:47 +01:00
Jason Somers
cf391034da Update settings_wifi.htm
Several of our controllers support the Ethernet module, so we figured it best to leave it as simply "RGB2Go" in the menu, as opposed to "RBG2Go" Tetra.
2025-03-25 13:54:06 -04:00
Will Miles
36cb1cad36 settings_um: Use live config
Use json/cfg for the usermod settings page.  Should fix issues
with outdated content when a new firmware is loaded.
2025-03-23 15:20:16 -04:00
netmindz
8bee304e4d Merge pull request #4577 from DevJogger/main
Add apple-touch-icon Link Tag
2025-03-11 22:19:38 +00:00
Blaž Kristan
2b666ab9f7 Merge branch 'master' into multifix 2025-03-08 12:59:15 +01:00
DevJogger
c9b8789ea9 Reduce apple-touch-icon image size 2025-02-28 18:47:32 +00:00