Commit Graph

4160 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
bf88f29ed8 Fix bootloader version detection to read actual flash memory
- Replace ESP-IDF version heuristics with direct flash memory reading
- Read bootloader binary from standard location (0x1000) on ESP32
- Use esp_flash_read() to access actual bootloader data from flash
- Still maintain fallback to ESP-IDF heuristics if flash read fails
- Add proper error handling and debug logging
- Addresses feedback that previous implementation only checked platform capabilities

Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-09-03 18:54:59 +00:00
copilot-swe-agent[bot]
64d0fabdd4 Add bootloader info endpoint, documentation, and improve error messages
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-09-02 08:14:24 +00:00
copilot-swe-agent[bot]
6e4db40382 Implement bootloader version checking for OTA updates
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
2025-09-02 08:09:20 +00:00
Damian Schneider
a037d99469 added debug output on crash, removed whitespaces 2025-09-01 22:22:16 +02:00
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
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
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
Aiden
8baa6a4616 support iotorero ethernet controller 2025-08-21 12:51:48 +08: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
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
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