Commit Graph

6583 Commits

Author SHA1 Message Date
Frank Möhle
fb8f8f0b08 Clarify 16_x branch description
Updated description of the 16_x branch for clarity.
We are not at "feature-freeze" yet
2026-03-30 02:34:43 +02:00
Frank Möhle
53fdf9a89c Update version numbers in copilot instructions 2026-03-30 01:39:44 +02:00
Frank Möhle
a1316034c1 Fix typo in version tag comment 2026-03-30 01:38:20 +02:00
Frank Möhle
75df4affa8 moving stuff around 2026-03-30 01:35:59 +02:00
Frank Möhle
820c841376 add tag scheme information for old/historical versions 2026-03-30 01:28:18 +02:00
Frank Möhle
34d50710b3 Update copilot-instructions with branch structure overview
Added basic project branch and release structure section to AI information
2026-03-30 01:18:19 +02:00
Frank Möhle
d0d62d9493 Clarify instructions to always use the correct source code branch
Updated instructions for providing references in analysis results.
2026-03-30 00:16:05 +02:00
Will Tatam
89b2bc2992 17.0.0-dev 2026-03-29 22:38:13 +01:00
Copilot
472fca7486 DDP input: reject packets with unsupported data type or non-display destination (#5390)
* Fix: reject invalid DDP packets with wrong destination or unsupported data type

Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>
2026-03-29 18:01:11 +02:00
Damian Schneider
42844e4fa8 Adding AR support for C3: use DSP FFT and integer math (#4750)
*  fixed problem on S3: turns out to be mem alignment
* fixed scaling for C3
* code cleanup, added arduinoFFT back in, added ifdefs & description

also added major peak and frequency bin calculation for DSP FFT

* moved ifdefs to correct place, separated sample filter & FFT filter application

post FFT band pass and IIR applied to samples are now separated: I found in testing that applying the sample filter helps with aliasing into base-bands, there is no need to hard-cut the lowest frequencies after FFT.

* changed sample low pass cutoff from 80Hz to 90Hz

better anti-aliasing at minimal loss of base frequency.

* code cleanup and minor speed improvement
- moved scaling of FFT values into fftAddAvg() to use ferwer operations
- added "using" for math types, removing some ifdefs and duplications
2026-03-29 13:18:26 +02:00
Benjam Welker
4a6ff64519 add more macro/timer slots (#5140)
* convert to vectors

* Update wled00/cfg.cpp

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* UI fixes

converted preset entry to select box for ease of use

* no eeprom compatibility

* tighten up code

* fix sunrise/sunset issue

* fix issue with sunrise/sunset/regular selector

* preset dropdowns

* sort before use

* delete timer when preset = 0

* truncate long names and add sort options

* html updates

* fix save bug

* make boxes a bit darker

* add fallback if localStorage is empty

* remove sort option

* code rabbit suggested fixes

* remove css

* restyling

* common

* dry preset loading

* revert missing const

* update deep sleep usermod with new timer struct

* tabs

* Revert "tabs"

This reverts commit fdc01f2f5d.

* remove unneeded clamp checks

* leave index alone

* remove useless check

* fix up await functions

* only fetch localstorage

* inline single line function

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-29 13:01:24 +02:00
Damian Schneider
f6a43f4dfa Extend scrolling text FX with custom fonts and international UTF-8 character support (#5372)
* new font format: *.wbf with a 12byte header, bit packed data and support for variable char width
* add support to load custom fonts from file system
* UTF-8 to unicode support functions
* support for any unicode offset in char 128-255 enables many international chars
* update built-in fonts with similar but nicer ones
* update pixelforge scrolling text tool with a preview and support for custom fonts
* accompanied by Font Factory tool (pixelforge) to easily create custom fonts from various formats
2026-03-29 12:10:23 +02:00
Damian Schneider
b7d2c3cd85 Full fastled replacement (#4615)
* removed fastled dependencies
- copied relevant functions
- optimized some of them for ESP32
* added perlin functions from PR, code cleanup. work in progress
* added hsv2rgb16rainbow function, some cleanup
- new rainbow function is faster and more accurate than original fastled function
* updated conversion functions (now faster), cleanup, optimizations
* code cleanup, moved (most) fastled functions into fastled_fcn.cpp
- resolves licensing issue
- moved PRNG into its own space
- prettified some code
* fixed prng: it now generates a full sequence of random numbers, thx @TripleWhy for pointing out the flaw
* rename to fastled_slim, add hsv2rgb() convenience aliases, fix FX usage
* improve ease8inOutCubic() accuracy
* fix background in twinklefox, minor optimization in PS (always use gamma LUT, no ifs)
* bugfixes in FX, adding white and cct transition to slow transition FX

Co-authored-by: Frank <91616163+softhack007@users.noreply.github.com>
2026-03-29 11:40:16 +02:00
Frank Möhle
20c021d9b8 Clarify instruction on gathering information when unsure 2026-03-28 10:04:40 +01:00
Frank Möhle
9c93cb8cf0 Update copilot instructions for clarity and guidance
Added instructions for handling uncertainty and providing references.
2026-03-28 10:00:31 +01:00
Will Tatam
ad5043f7e0 do not keep prompting if there was an error, e.g no wifi 2026-03-28 00:21:37 +00:00
Damian Schneider
5ac282f8b9 Add slow transition FX (over 4hours) (#5379) 2026-03-27 19:53:08 +01:00
Damian Schneider
e4351c8979 Increase maximum playlist duration (#5455)
* Add numerical input clamps
* increase playlist item limit to uint32_t: 4294967s (49.7 days)
2026-03-27 19:22:53 +01:00
Will Miles
6a16593be5 Merge pull request #5438 from willmmiles/ipv6-dns-fix
Fix DNS hangs on ESP32
2026-03-26 18:48:57 -04:00
Frank Möhle
78ecd3805e service cleanup after removing return FRAMETIME (#5443)
Clean-up and simplification of strip.service() after individual effect FRAMETIME was removed.
* Activation "_frametime" is now the same for all effects, so effects scheduling based on individual frametime is not needed any more
* Special handling for mode_static is obsolete, because the solid effect does not have a different timing any more
* Ensures a safe fallback segment after servicing to avoid stale state.
* Brightness changes use a capped refresh threshold to avoid excessive redraws.
2026-03-26 12:31:08 +01:00
Damian Schneider
4c7fa0303b load pixel forge tools from json file, improved tools list, bugfixes (#5404)
* load pixel forge tools from json file, bugfixes

- load available external tools from a json file instead of hard-coding them in
- add buttons to update or delete tools (instead of manually deleting files in /edit)
- fixed bug that file system memory was not updated after uploading or deleting files
- fixed a bug where gifs with a space would not display
- fixed bug of page not loading properly (out of sync access to tabSw() )
- remove pixelforge from ESP8266 1m builds (does not fit)
- add inline html page if pixelforge is not built in to avoid 404
2026-03-26 10:28:23 +01:00
Frank
d8cb20a9e7 bugfix: prevent _segment_index being misaligned w.r.t. segments vector
prevent that an inactive segment in the segments list causes misalignment between getSegmentID() and actual segments vector.
2026-03-24 15:21:31 +01:00
Frank
710f897a1d strip.service bugfix: avoid losing trigger events
* avoid losing "trigger" events if suspend requested during effect service
* clarify some misleading comments
2026-03-24 11:54:25 +01:00
Will Miles
abb4124ab4 Fix formatting 2026-03-22 08:54:41 -04:00
Will Miles
3c7fbabd23 Use correct fix for SHA256 hash string
@coderabbitai caught the problem, but its fix suggestion was out to
lunch on this one.  Passing an unsigned char to String.concat() appends
it as a number instead of appending the character.

Instead, mask the unneceeded bits.
2026-03-22 08:36:06 -04:00
Will Miles
bda74bafb8 Fix DNS hangs on ESP32
Discard IPv6 RA packets, which cause LwIP to overwrite the IPv4 DNS
servers, resulting in DNS queries hanging up because there are no
accessible servers.
2026-03-22 07:38:06 -04:00
Damian Schneider
9cf3a7d184 Add stencil blendingmode and minor speed optimisations (#4889)
* Optimisatins in blendSegment()
* adding new blend mode: "Stencil"
2026-03-22 11:29:16 +01:00
Frank
5cef850c47 prevent _usedSegmentData Counter Underflow During Mode Blending
In startTransition(), a copy of the old effect's data buffer is made using raw malloc() — it deliberately bypasses allocateData(). This buffer is never added to the _usedSegmentData static counter (only allocateData() does that). If the old effect then calls allocateData() it causes _usedSegmentData to underflow.

https://github.com/wled/WLED/issues/5427#issuecomment-4103228702
2026-03-22 02:33:25 +01:00
Frank Möhle
74763040ad Hostname creation cleanup, avoid that default DNS name ESP-xxxxx gets used (#5424)
Bug Fixes
* Improved hostname sanitization and buffer-size safeguards to prevent truncation and ensure DNS-compliant names.
* Hostname is now applied earlier during network setup and on reconnects (ESP32), improving connectivity and ensuring settings take effect.
* Solves the problem that ESP32 boards show as "ESP-xxxxxx" on the network, no matter if DNS name is defined or not
* (breaking fix) prevent hostnames with double ``WLED-`` prefix, like ``wled-WLED-kitchen``

New Features
* Added a length-aware hostname retrieval API with an mDNS-preference option and robust fallback behavior.
* Preserved legacy compatibility by providing a length-aware alias for legacy hostname preparation.

Open Ends
* mDNS name is not sanitized when registering the mDNS endpoint, to avoid breaking previous functionality
2026-03-21 17:31:42 +01:00
Damian Schneider
7a635c88d6 hotfix in color_fade() only round up in video mode, let it go to zero otherwise 2026-03-21 15:19:29 +01:00
Damian Schneider
dc5a7350d2 improved hue preservation in color fade, should also be faster (#5434) 2026-03-21 12:48:48 +01:00
Will Miles
81f251c125 Merge pull request #5332 from DedeHai/asyncDNS
implement async DNS lookup - no more stuck NTP requests
2026-03-20 13:20:07 -04:00
Damian Schneider
ff9067f10b remove debut print, remove whitespaces 2026-03-20 16:38:10 +01:00
Will Miles
144c0f9dd6 Ensure AsyncDNS safety
Make AsyncDNS queries return a future-like object backed by a smart
pointer.  This ensures that the client cannot release the backing
memory while the dns query callback is still holding a reference to it,
preventing any use-after-free cases.
2026-03-19 21:38:45 -04:00
Will Tatam
a721264205 Merge pull request #5407 from wled/copilot/allow-upgrade-to-esp32
Allow OTA upgrade between ESP32_V4 and ESP32 release names
2026-03-18 16:44:41 +00:00
Will Miles
f28cbea2c2 Metadata compatibility cleanup
- Remove unnecessary checks
- Remove unnecessary constructions
- Fix unsafe buffer-to-String
2026-03-16 18:20:41 -04:00
Will Miles
3b256eed1e Merge branch 'main' into copilot/allow-upgrade-to-esp32 2026-03-16 18:17:51 -04:00
Damian Schneider
610c80a0ae UI improvement: clearer tool icons and added text description (#5425)
* add two new icons (folder, hammer), add text to tool buttons
2026-03-16 06:56:59 +01:00
Frank Möhle
aa6cd883c2 Fix typo 2026-03-16 01:09:06 +01:00
Frank Möhle
7006285856 Update language guidelines in copilot instructions
Clarify language requirement for code comments and documentation.
2026-03-16 01:07:41 +01:00
Frank Möhle
7e490fcd28 ensure that targetFPS is set to default on a fresh install (fixes #5408) 2026-03-13 18:55:08 +01:00
Frank Möhle
6f030e540f OTA update page restyling, automatically set download URL based on info.repo (#5419)
* use same style as other settings pages
* Hide "back" button while update is in progress
* set "download latest binary" URL and badge based on info.repo; directly link to "latest" release
* correct bad name of "Security & Updates" page
* ensure that "update bootloader" section get hidden when not supported
2026-03-13 18:44:35 +01:00
Frank Möhle
a63a307c6e Update PR review instructions for generated html files
Clarified instructions for PR authors regarding generated files and updating Web UI files.
2026-03-13 18:40:42 +01:00
Frank Möhle
b57d51ef19 correction 2026-03-13 17:42:30 +01:00
Frank Möhle
34722aa371 Update instructions for editing html_*.h files
Clarified instructions regarding editing auto-generated HTML files.
2026-03-13 17:41:26 +01:00
Frank Möhle
19c178d0f9 Update development workflow instructions
Clarify development workflow instructions and emphasize that the changes apply to agent mode only.
2026-03-13 17:36:26 +01:00
Frank Möhle
3244d0f593 Clarify handling of generated html_*.h files
Updated instructions regarding generated html_*.h files to clarify that they should not be committed, and they don't need to be re-generated in any PR.
2026-03-13 17:29:07 +01:00
Frank
64f3aa96dd replace depricated ADC constant
according to espressif docs:
`ADC_ATTEN_DB_12` is deprecated, it behaves the same as `ADC_ATTEN_DB_12`
2026-03-12 16:01:43 +01:00
Frank
f816b5fa98 bugfix #5295 - change remaining references to strip.paletteBlend into paletteBlend
these were leftover after refactoring paletteBlend into a global variable.

see #5295 for details
2026-03-12 16:00:20 +01:00
Frank Möhle
e4cd730654 Info page: Total LEDs, GitHub repo, minor re-styling (#5418)
* Info page updates and minor re-styling
  * added GitHub repo (link)
  * added Total LEDs
  *  removed lwip major version on esp32
  * two horizontal lines for better readability

* add rel="noopener noreferrer" for improved security
  * When using target="_blank", it's a security best practice to include rel="noopener noreferrer" to prevent the new page from accessing window.opener.
2026-03-11 18:07:19 +01:00