Commit Graph

6249 Commits

Author SHA1 Message Date
Frank
af8eba6dfa use critical section in exitRealtime
the critical section ensures that cache clearing is performed as an atomic operation without task switch
2025-12-22 00:20:34 +01:00
Frank
50cc6f4c28 comment correction 2025-12-22 00:07:27 +01:00
Frank
73c54d7a57 replace potentially infinite wait with 2100ms max
better to end with an inconsistent state, than risk a lock-up until reset
2025-12-22 00:05:54 +01:00
Frank
30fcd6efad segment & bus.show mutex redesign
* separate mutexes for improved performance:
  - busses.show and effect drawing
  - critical changes to segment vector
  - block out critical segment changes while strip.service() loops over segments
* UDP realtime acquires mutex before drawing
  - prevents corrupted outputs, caused by parallel tasks updating pixels while busses.show() runs
2025-12-21 23:56:09 +01:00
Frank
c520d75729 prevent race conditions in realtimeLock / exitRealtime 2025-12-21 23:48:19 +01:00
Frank
21a452333e setRealtimePixel speedup
cache strip.getMainSegment(),  strip.getLengthTotal()), seg.length() instead of re-calculating them for each pixel
2025-12-21 23:11:15 +01:00
Frank
577d80d2ef segment drawing robustness improvements
* segment::fill() is also called outside the service loop - make sure that size is always calculated correctly
* leave _currentSeg in a meaningful state after strip.service()
2025-12-21 23:08:50 +01:00
Frank
b9e7621cd6 platformio.ini updates to include PixelForge
unrelated: enable some features that still fit into flash
2025-12-21 01:11:18 +01:00
Frank
ab4ae9a6b8 Merge branch 'mdev' into pixelforge_backport 2025-12-21 00:31:54 +01:00
Frank
62d938d8ba Add build info display for github builds
Added checks for release build environment and updated build info display.
2025-12-21 00:29:52 +01:00
Frank
37764ec3b9 UX improvements
- add buttons for PixelForge and PixelArt (settings page, below "file system" button
- abort build when PixelForge requested but GIF support missing
- "support" PixelMagic with error message - known issues with bigger images
2025-12-20 23:55:59 +01:00
Frank
855e6737be minor html and JS fixes
* avoid implicit creation of global vars
* removed stray </small>
* fix assignment with undefined variables
2025-12-20 21:19:55 +01:00
Frank
7df63db744 and mutex for all
revised mutex and critical section handling for segment drawing
- simplified code with macros (no more #if ESP32 ... #endif)
- remove some critical sections (prevents interrupt stalling)
- added mutex to functions that change the list of segments
- added mutexes to all (potential) background drawing code
- use recursive mutexes to prevent accidental self-locking of tasks
2025-12-20 17:13:52 +01:00
Frank
e5a3942610 fix for "giving a semaphore never taken" 2025-12-20 01:14:13 +01:00
Frank
0d24bb3b73 E1.31 kill switch
unchecking "Receive UDP realtime" in Sync settings will immediately end realtime display, also over webSockets.
2025-12-20 00:31:43 +01:00
Frank
c25f082231 improve stability of DDP via tcp_task (websockets)
* protect pixel buffer changes with critical section
* protect segment list modification with critical section
* make _isServicing and _triggered atomic (move out of packed bitarray)
* allow custom timeout for waitUntilIdle - DDP needs a longer timeout
* protect strip.show() and effect drawing functions with mutex, to prevent crashes
2025-12-19 18:13:20 +01:00
Frank
10c20b7a4b serve common.js via serveSettingsJS
this got lost while backporting upstream code
2025-12-19 13:25:15 +01:00
Frank
eeb4973a2e support common.js (future support for VideoLab tool) 2025-12-19 00:51:39 +01:00
Frank
45b97e8028 PixelForge adaptations for version 14.x
* different call for listing images
* different call for deleting images
* minor cleanups
2025-12-18 23:51:48 +01:00
Damian Schneider
0f5c1d5a0f "WLEDPixelForge": new image & scrolling text interface (#4982)
replaces the pixel magic tool with a much more feature-rich tool for handling gif images. Also adds a scrolling text interface and the possibility to add more tools with a single button click like the classic pixel magic tool and the pixel-painter tool.
2025-12-18 23:44:01 +01:00
Frank
114bdb416f upgrade HTML data build system - use same tools as in upstream WLED
align with tools/cdata.js from upstream WLED

--> prerequisite for pixelforge tool !
2025-12-18 23:40:23 +01:00
Copilot
5deaf92373 Fix TypeError when loading UI with custom palette selected (#5205)
* Add null check to fix circular dependency with custom palettes

Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>

* Refactor: move null check earlier for better efficiency

Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>
2025-12-18 23:22:03 +01:00
Frank
bc7cf062e8 effect math sppedup - up to 3x faster
-> distortion waves 3x speedup
-> hiphotic 2x speedup
-> waving cell 1.5x speedup

* replace sin8_t by lookup-table with pre-computed values
* moved integer sin and cos to fcn_declare.h (inlined by the compiler)
* moved gamma32 to fcn_declare.h (inlined by the compiler)
* a few other small tweaks
2025-12-17 21:59:22 +01:00
Frank
49e6de33c7 soap effect speedup (MM specific)
* postpone LEDs pixel drawing to the end of effect -> up to 30% faster
* some minor optimizations: reduce heap fragmentation, use "fast" types
2025-12-17 16:55:09 +01:00
Frank
4ec939cb4c build 2512171 2025-12-17 01:21:17 +01:00
Frank
5849e02e23 no effect data limits for PSRAM boards (upstream backport) 2025-12-17 01:19:24 +01:00
Frank
87fc226213 more segment data for PSRAM boards 2025-12-17 01:10:05 +01:00
Frank
6138def82f use WLED-MM error effect instead of plain orange 2025-12-17 01:09:29 +01:00
Frank
02d23b3316 fixing some compiler warnings
signed vs. unsigned, deprecated functions, printf parameter size mismatch
2025-12-17 00:03:18 +01:00
Frank
f4fd244808 comment updated 2025-12-16 23:26:26 +01:00
Frank
1ba2749343 more renaming
to avoid name clashes with vLength()
2025-12-16 23:26:02 +01:00
Frank
3ac0a0a619 segment functions for better upstream compatibility
* added vLength(), vHeight(), vWidth() and mapped them to their WLED-MM counterparts
* added SEG_W and SEG_H macros
* minor variable renaming to avoid name clashes with vWidth, vHeight, vLength
2025-12-16 23:22:38 +01:00
Will Tatam
db5f3f7461 Merge pull request #5156 from Aogu181/main
Add Gledopto Series With Ethernet
2025-12-16 20:09:48 +01:00
Damian Schneider
69d4970a6b clear enable bit on unused time macros (#5134)
disables the checkmark in UI on unused macros
2025-12-16 19:56:58 +01:00
Frank
fde6aa888e post-merge
* align meteor effect with upstream code
* unified meteor & meteor smooth
2025-12-16 02:40:02 +01:00
Damian Schneider
54578f7e61 fixes trail flickering randomly. thx @blazoncek for discovering 2025-12-16 02:14:32 +01:00
Damian Schneider
ea9ae2c46b Merge pull request #4543 from DedeHai/soap-FX-optimization
Soap FX optimization
2025-12-16 02:02:25 +01:00
Frank
218311d31e post-merge
* solve ambiguous function problem
* restore  SEGMENT.setUpLeds() call
* bring back upstream improvements to 2D waving cell
2025-12-16 01:53:37 +01:00
Damian Schneider
6812171c60 update to distortionwave FX (#4693)
- fixed "jumpyness" by improving offset calculation resolution
- added palette support
- added two rendering modes for use with palette: one uses hue-mapping, one uses brightness mapping
- added alternate animation mode (from initial source)
- extended scaling: zoom checkmark (depends on matrix size)
2025-12-16 01:25:11 +01:00
Damian Schneider
b3e9f274b5 improved & refactored Android FX (#4522)
- returns FRAMETIME -> no more flickering in transitions and overlay
- no more double-painting of pixels
2025-12-16 01:23:47 +01:00
netmindz
0f5c1bb4b4 Merge pull request #4683 from srg74/main
Fixing markdownlint errors
2025-12-16 01:21:55 +01:00
Frank
462e4cb805 post-merge
* add missing "cool" option in twinklefox
* upstream compatibility defines for gamma32inv() and gamma8inv()
2025-12-16 01:11:40 +01:00
Benjam Welker
1e57262171 Add reverse checkmark for Twinklecat (#4728)
reverse slowly fades in random lights, and then instantly turns them off.
2025-12-16 00:41:50 +01:00
Frank
cdd1141867 post-merge fixes
* fx.cpp: replace FastLED inoise() with optimized perlin() functions
* minor updates for util.cpp and fcn_declare.h
2025-12-16 00:28:10 +01:00
Damian Schneider
fe574aef91 Merge pull request #4594 from DedeHai/perlin_noise
Adding perlin noise replacement for fastled functions
2025-12-15 23:52:22 +01:00
Damian Schneider
1cb7ebfd6e Fixed "Flow Stripe" FX and added palette support 2025-12-15 23:38:48 +01:00
Frank
71aa32dc21 perlin16 -> FastLED inoise16
we don't have the replacement function from upstream
2025-12-15 22:59:15 +01:00
Damian Schneider
b08f5a43c4 Adding Shimmer FX (#4923)
Sends a shimmer across the strip at defined (or random) intervals
Optional brightness modulators: sine or perlin noise
Can be used as an overlay to other effects.
2025-12-15 22:52:34 +01:00
copilot-swe-agent[bot]
d6bced4e40 Fix 2D matrix generator preview update issue
Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com>
2025-12-15 22:48:56 +01:00
Frank
968dee170d Add cherry-picking tip to CONTRIBUTING.md
Added a tip about using cherry-picking for copying commits, especially to copy from a local working branch (e.g. ``main``) to the PR branch.
2025-12-03 20:39:17 +01:00