Commit Graph

4277 Commits

Author SHA1 Message Date
Damian Schneider
8cc5d64819
Merge pull request #4853 from willmmiles/bootloop-platform-simplification
Bootloop detection platform factoring
2025-09-01 22:17:07 +02:00
netmindz
4c948cca13
Merge pull request #4860 from tarontop/main
support iotorero ethernet controller
2025-09-01 10:03:54 +01: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
netmindz
8fc87aa17d
Merge pull request #4844 from Arcitec/0_16-fix-sync
Fix broken Sync button after 0.15 refactor
2025-08-31 12:30:19 +01:00
Will Miles
19a49e83d1 Import RmtHI driver
Pull the RMT High-priority Interrupt driver in to a vendored local
library, pending inclusion in upstream NeoPixelBus.

Driver is enabled only for XTensa chips; there's some unresolved
issue with nested interrupts on RISCV.
2025-08-30 15:57:04 -04:00
Damian Schneider
d5d7fde30f
use video scaling instead of NPB luminance & new ABL (#4798)
* updated color scaling to preserve hue at low brightness resulting in much better colors
* replace NPBlg with NPB, moved brightness scaling to bus manager
* improved gamma table calculation: fixed mismatch in inverting gamma table calculation: inversion should now be as good as it gets
* code cleanup, fixed gamma being applied in unnecessary places

Improvements to ABL handling:
- removed strip level handling, ist now all done on bus level
- limiter now respects pixel mapping
- proper handling of white channel
- improved current estimation
- current is now always correctly reported to UI
- minimal FPS impact if the ABL is not limiting but slighly higher impact for global ABL limit due to double-scaling

- moved brightness scaling to BusDigital
- created new header file colors.h to be able to access color functions in bus-manager.
- updated colo_fade() with better video scaling to preserve hue's at low brightness
- added IRAM_ATTR to color_fade (negligible speed impact when compared to inline and benefits other functions)
- added IRAM_ATTR to color_blend as it is used a lot throughout the code, did not test speed impact but adding it to color_fade made it almost on-par with an inlined function

Additional changes:
- fixes for properly handling `scaledBri()` (by @blazoncek)
- also use bit-shift instead of division in blending for ESP8266
- improvements for faster "softlight" calculation in blending
- changed some variables to uint8_t to maybe let the compiler optimize better, uint8_t can be faster if read, store and set are all done in uint8_t, which is the case in the ones I changed
- various minor code formatting changes
2025-08-29 17:12:10 +02:00
Will Miles
6f914d79b1 Increase boot loop timeout
Any repeating crash that prevents a human from logging in and fixing
the config should be treated as a boot loop.  Increase the detection
timeout, so anything that's fast enough to preclude a user fix will
trigger the recovery behaviour.
2025-08-28 21:17:12 -04:00
Will Miles
dd13c2df47 Reset crash counter after long interval
Don't treat consecutive but infrequent crashes as bootloops.  The
bootloop recovery actions only make sense when there is no opportunity
for a user to reconfigure their system.

Suggested by @coderabbitai
2025-08-28 21:10:39 -04:00
Damian Schneider
8aeb9e1abe bugfix in PS pointer alignment
- bug was leading to crashes when heap is low
2025-08-28 18:57:11 +02:00
Damian Schneider
cfad0b8a52
bugfix to prevent "almost infinite" loops in palette blend (#4841)
this fixes a very long loop when an overflow was happening in palette blending.
- reset prevPaletteBlends to prevent overflow
- add safety check in case overflow should still happen in another combination (or in future changes)
2025-08-28 18:08:31 +02:00
Will Miles
5fa901c37c Fix operation of length 1 strips, such as PWM LEDs
This reverts commit e5ba97bbe2.
2025-08-27 22:28:24 -04:00
Will Miles
46f3bc0ced Bootloop: Include soft wdt on ESP8266 2025-08-26 21:00:54 -04:00
Arthur Suzuki
f8ce5980a1
removed tabs and replace by space 2025-08-25 22:45:01 +02:00
Arthur Suzuki
4b5c3a396d
applied suggestions from review 2025-08-25 22:22:51 +02:00
Arthur Suzuki
550b4d9dea
fix comments for usermod hooks "onUdpPacket" 2025-08-24 15:54:45 +02:00
netmindz
2082b01a3c
Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-21 08:53:11 +01:00
Aiden
8baa6a4616 support iotorero ethernet controller 2025-08-21 12:51:48 +08:00
Arthur Suzuki
4de6656bc4
new usermod hooks "onUdpPacket"
this new hooks will help you implement new and custom protocols in
usermods.
I've provided an example (see usermods/udp_name_sync).
The example will help you share the main segment name across different
WLED instances.
The segment name can be useful to sync with some effects like GIF
image or scrolling text.

If you define new packet format in your usermod, make sure it will
either not collide with already used version of wled udp packet :
- 0 is for udp sync
- 1 is for AudioReactive data
- 2 is for udp_name_sync :)

Also, the onUdpPacket will override "parseNotification" if it returns "true".
Have fun!
2025-08-21 01:00:22 +02:00
Will Miles
85d4db83ed Isolate platform differences in bootloop check
Separate the platform-specific code from the logic, so any future
changes can be made in fewer places.
2025-08-20 11:32:32 -04:00
Will Miles
5146926723 Use direct references to RTC RAM on ESP8266
ESP8266 RTC RAM requires 32-bit accesses, but there's no need to jump
through a bunch of functions for it.  Use references to simplify access
and harmonize the implementation with ESP32.
2025-08-20 10:22:42 -04:00
Will Miles
3b5c6ca284
Fix bootloop if config is reset (#4852)
* Fix bootloop if config missing/reset

Can't reset the config if there's nothing to reset!

* ESP8266: Commit ACTIONT_TRACKER

* Use consistent naming for backups and reset cfgs

Use 'rst.cfg.json' instead of 'cfg.json.rst.json' for configs that were
reset.

* Add a little more PSTR to bootloop handling
2025-08-20 07:37:14 +02: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
Arcitec
4ac7eb7eb2 Fix broken Sync button after 0.15 refactor
In the past, the "notify direct" flag controlled all network syncing, propagating all color changes to other devices on the network. Pressing the UI Sync button only toggled this flag, so "notify direct" was set to false by default.

In version 0.15, a separate "master" sync flag was introduced, and the UI Sync button now only activates this master flag. However, the rest of the flag defaults weren't configured to sync anything at all. As a result, users pressing Sync saw *no* syncing at all, leading to multiple bug reports.

Defaults are now user-friendly: Enabling Sync on a WLED device syncs all of *its* color changes, whether made via the UI, API or remote button, providing a consistent experience which matches the intended behavior from past WLED versions.

Philips Hue sync is now also disabled by default, making the stock defaults focused on WLED devices. Users with other RGB ecosystems can manually enable the Hue or Alexa syncing in the settings.
2025-08-17 18:12:22 +02:00
Damian Schneider
f4d89c4196 add IDF V3 support for bootloop detection 2025-08-16 08:45:41 +02:00
Damian Schneider
c9c442a933
Bootloop detection & recovery (#4793)
* added boot loop detection and config backup
* automatic OTA rollback if loading backup does not fix it
* added new file handling functions
* adding verification of json files, added config restore at bootup if broken
* added function to compare contents of two files for future use (currently not used)
2025-08-15 20:43:04 +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
Damian Schneider
e3653baf74
Segment fixes (#4811)
* Pulling in proper segment memory handling&fixes from @blazoncek dev branch
2025-08-07 21:11:10 +02:00
Blaž Kristan
93e011d403
Merge pull request #4769 from wled/fix-4671
Add mDNS support for MQTT server
2025-08-02 23:15:58 +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
Damian Schneider
b76ef231fc PS Bugfix: revert gamma correction for color, not brightness setting 2025-07-29 19:35:12 +02:00
netmindz
591dbe387c
Merge pull request #4780 from jasonsomers/main
Update settings_wifi.htm
2025-07-27 13:52:31 +01:00
Will Tatam
e5ba97bbe2 Prevent crash during blend if led init fails, https://github.com/wled/WLED/issues/4782 2025-07-27 13:15:42 +01:00
Damian Schneider
ab5b6f9b7d fix change that got lost 2025-07-24 18:30:51 +02:00
Damian Schneider
4fd1b393a8 Bugfix in Aurora FX and fixed compiler warning in PS Impact 2025-07-24 18:27:03 +02: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
Damian Schneider
71301ddc57
using segment buffer instead of local buffer for PS (#4776)
- using segment buffer instead of local buffer to save FX ram
- fix rendering if gamma correction is disabled
- some code cleanup
- Fix for low RAM: reduce number of particles dynamically
- updated add and scale color functions to not use references
- FPS is now more consistent and on average about 15% faster
2025-07-22 22:26:13 +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
Blaž Kristan
ecc3eae247 Revert status message change 2025-07-16 11:18:04 +02:00
Blaž Kristan
07e303bcc1 Remove anything behind .local and ignore case 2025-07-15 13:37:45 +02:00
Blaž Kristan
24f2306129 Strip .local from mDNS resolution 2025-07-15 10:33:09 +02:00
Blaž Kristan
79b3bc2573 Add mDNS support for MQTT server
- fixes wled#4671
- reduce some topic string parsing
- moves LWT into onConnect
2025-07-12 19:04:21 +02:00
Blaž Kristan
5c74f0fa21 Fix wled#4643 2025-07-12 18:49:03 +02: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
Damian Schneider
b7bfd6fc67
Copy Segment FX (#4124)
* Added FX to copy a segment in 1D or 2D

- copies the source segment
- brightness of segment is relative to source segment
- optionally shifts the color hue, saturation and brightness
- invert, transpose, mirror work
- if source or targets do not match in size, smallest size is copied
- unused pixels fade to black (allows overlapping segments)
- if invalid source ID is set, segment just fades to black
- added a rgb2hsv conversion function as the fastled variant is inaccurate and buggy
- 1D to 2D and vice versa are supported
2025-07-12 07:40:18 +02:00
Will Miles
9569ec7ccf bus_wrapper: Update comments to reflect RMT usage 2025-07-09 16:28:22 -04:00
Will Miles
61990189de bus_wrapper: Use parallel I2S first when enabled 2025-07-09 10:31:00 -04:00
Will Miles
c0875b36bb
Merge pull request #4712 from willmmiles/2d-expansion-fadeout-fix
Fix Segment::fade_out for 2d expansion
2025-07-09 09:11:27 -04:00
Blaž Kristan
929a5a8d80 Fix for wled#4759 2025-07-08 13:28:24 +02:00
Will Tatam
127c700a99 Define starting heap with lastHeap 2025-07-06 16:22:44 +01:00
Will Tatam
a67a2cbf5c Remove duplicate (de)allocateMultiplePins 2025-07-06 16:22:44 +01:00
Will Tatam
f9a6a3d36f Return if pinallocation fails 2025-07-06 16:22:44 +01:00
Blaž Kristan
9c38843747 Fix color conversion bug for parallel I2S output
- fixes wled#4719
2025-07-06 16:22:44 +01:00
Christian Dahmen
600603149e Fixed DNRGBW 2025-07-06 16:22:44 +01:00
Blaž Kristan
2b42049998 PICO-V3 detection
- requires V4 environment
2025-07-06 16:22:44 +01:00
Blaž Kristan
5f70fe57e3 Fix for #4752 2025-07-06 16:22:44 +01:00
Damian Schneider
6b6d26b8f0 enhancement & bugfixes in scrolling text (#4742)
* enhancement & bugfixes in scrolling text

- function now evaluates full string: allows custom text plus multiple tokens in any order
- fixed evaluation order to prevent early exit(s)
- fixed day strings (argument must be weekday() )
2025-07-06 16:22:44 +01:00
Blaž Kristan
62c87e206e Fix comment
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-06 16:22:44 +01:00
Blaz Kristan
4905cdd2e3 Optimise CCT buffer 2025-07-06 16:22:44 +01:00
Blaz Kristan
ce3f88428e Tackle CCT issue caused by segment blending
- wled#4734
2025-07-06 16:22:44 +01:00
Blaz Kristan
74644aa4a7 Fix #4747 2025-07-06 16:22:44 +01:00
Blaž Kristan
2ccb7312d0 Compile fix 2025-07-06 16:22:44 +01: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
ingDIY
ea86973548 WLED_DISABLE_2D does not compile (#4736)
the compilation fails with tons of errors if you try to compile using WLED_DISABLE_2D 
"message": "enclosing class of constexpr non-static member function 'bool Segment::is2D() const' is not a literal type",
"LineNumber": 766,
2025-07-06 16:22:44 +01:00
Damian Schneider
9eb0c3c8e5 Bugfix: convert cctBlend value back to "%" for UI (#4737)
* Bugfix: convert cctBlend value back to "%" for UI
2025-07-06 16:22:44 +01:00
Damian Schneider
f20b4c9e81 fix for https://github.com/wled/WLED/issues/4488 (#4692)
virtual strip index is added even if strip is 1D. this change fixes FX using virtual strips not working when WLED_DISABLE_2D is used.
2025-07-06 16:22:43 +01:00
Blaž Kristan
d7d1e929fe Fix color conversion bug for parallel I2S output
- fixes wled#4719
2025-07-05 22:32:44 +02:00
netmindz
2c1cf87e08
Merge pull request #4499 from Christanoid/main
Fixed UDP Realtime streaming in DNRGBW Mode
2025-07-03 00:30:27 +01:00
Blaž Kristan
e6716fe834 PICO-V3 detection
- requires V4 environment
2025-07-01 10:22:49 +02:00
Blaž Kristan
fc0d64ec78 Fix for #4752 2025-07-01 10:17:17 +02:00
Damian Schneider
cc81cc27b0
enhancement & bugfixes in scrolling text (#4742)
* enhancement & bugfixes in scrolling text

- function now evaluates full string: allows custom text plus multiple tokens in any order
- fixed evaluation order to prevent early exit(s)
- fixed day strings (argument must be weekday() )
2025-06-28 09:42:52 +02: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
Blaz Kristan
7973fd84f1 Revert disable OTA & optional Arduino OTA
- new compile flag WLED_ENABLE_AOTA
- modify WLED_CONNECTED macro
- bugfix in Network isConnected() when static IP is set
2025-06-25 11:23:13 +02:00
Blaž Kristan
66869f8341
Merge pull request #4744 from wled/CCT-fix
CCT fix
May require some additional optimisations in the future to reduce unnecessary memory allocations (i.e. mixed CCT and non CCT buses).
2025-06-24 11:15:16 +02:00
Blaž Kristan
10d1098403
Fix comment
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-24 11:08:10 +02:00
Blaz Kristan
a041fd1266 Fix #4747 2025-06-24 11:00:04 +02:00
Blaz Kristan
e2fd1559d2 Optimise CCT buffer 2025-06-20 20:53:41 +02:00
Blaz Kristan
9dbd5f89b6 Tackle CCT issue caused by segment blending
- wled#4734
2025-06-20 20:53:24 +02:00
Blaž Kristan
0f00c95aba
Merge pull request #4700 from wled/secure-ota
Securing OTA update
2025-06-20 20:05:11 +02:00
ingDIY
3f03cb4d2b
WLED_DISABLE_2D does not compile (#4736)
the compilation fails with tons of errors if you try to compile using WLED_DISABLE_2D 
"message": "enclosing class of constexpr non-static member function 'bool Segment::is2D() const' is not a literal type",
"LineNumber": 766,
2025-06-20 15:42:23 +02:00
Damian Schneider
05557ca790
Bugfix: convert cctBlend value back to "%" for UI (#4737)
* Bugfix: convert cctBlend value back to "%" for UI
2025-06-20 10:55:53 +02:00
Damian Schneider
a53baa9b42
fix for https://github.com/wled/WLED/issues/4488 (#4692)
virtual strip index is added even if strip is 1D. this change fixes FX using virtual strips not working when WLED_DISABLE_2D is used.
2025-06-19 16:56:52 +02:00
Will Tatam
3dc45b80ba Fix b pin for Default pins 2025-06-16 22:27:42 +01:00
Will Tatam
fb469d7b24 esp32S3_PSRAM_HUB75 2025-06-16 21:29:19 +01:00
Will Tatam
edf6cb146d Merge branch 'HUB75-AC' of github.com:netmindz/WLED into HUB75-AC 2025-06-16 20:08:23 +01:00
Will Tatam
009950e28f Update Hug75 to reflect changes in 0.16 2025-06-16 20:04:07 +01:00
Will Tatam
8ee12620f0 Merge branch 'main' into HUB75-AC 2025-06-16 20:03:34 +01:00
netmindz
65edc50563
Update wled.h 2025-06-16 17:37:42 +01:00
Will Miles
3a413a59ba
Merge pull request #4713 from willmmiles/parallel-i2s-ui-missing
Update crude parallel I2S detection
2025-06-14 15:25:18 -04:00
Will Miles
16a88775c3 Revert changes to blur()
No need to rely on a sufficiently smart compiler.
2025-06-14 15:21:12 -04:00
netmindz
728b1e8ad4
Merge pull request #4723 from DedeHai/Flow_Stripe_FX_fix
Fixed "Flow Stripe" FX and added palette support
2025-06-14 20:20:30 +01:00
Damian Schneider
05f0630b9c
add inverse gamma 32 function and fix colors in pride (#4722)
* add inverse gamma 32 function and fix for colors in pride
2025-06-11 08:30:25 +02:00
Damian Schneider
ea231cbea8 Fixed "Flow Stripe" FX and added palette support 2025-06-10 19:29:53 +02:00
Will Miles
94f226aadf Fix additional mapping expansion locations 2025-06-09 12:15:36 -04:00
Damian Schneider
00d1fcc5fb
bugfixes: grouping and missing libArchive (#4718) 2025-06-09 17:41:53 +02:00
Damian Schneider
caeda96fbd
PS bugfix: do not increase saturation of palette colors (#4715)
this fix prevents palette colors being saturated more if high (but not full) saturation value is set for a particle
2025-06-08 13:03:21 +02:00