Frank
103e7db83f
post merge fix, build 2512291
2025-12-29 14:45:11 +01:00
Damian Schneider
3785ae9a20
fix FX checkmark sync
2025-12-29 14:37:36 +01:00
Will Tatam
45e8c63c2c
Merge pull request #5031 from wled/add-check-diff
...
Add segment checkmarks to `differs()` check
2025-12-29 14:30:49 +01:00
Damian Schneider
b2578703b2
minor bugfixes as suggested by the rabbit
...
- PulLightControl UM: dont release a lock you do not own
- off-by-one error in extractModeSlider (used only in rotary in UM)
- safety check in playlist in case something goes horribly wrong
2025-12-29 14:16:52 +01:00
Damian Schneider
eb55b4f2a5
adding link to WLED VidoLab
2025-12-27 20:07:12 +01:00
copilot-swe-agent[bot]
99e0743281
Fix Hub75 shown incorrectly in LED output dropdowns
...
Call hideHub75() after dynamically adding new LED outputs to ensure Hub75 options are removed when Hub75 support is not compiled in.
Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com >
2025-12-25 10:06:30 +00:00
copilot-swe-agent[bot]
fc84725ae4
Initial plan
2025-12-25 09:58:52 +00:00
Frank
941415b24d
fix reference error in pxmagic.htm
...
``index`` was undefined
2025-12-23 02:32:47 +01:00
Frank
bde1ac9c76
clarification
...
bedtime.
2025-12-23 02:12:06 +01:00
Frank
b8c0f8a28b
fix akward error message
...
I start writing gibberish - time to go to bed 😄
2025-12-23 02:05:56 +01:00
Frank
2775b16141
clarifications (minor)
...
* replace delay by vTaskDelay (same behaviour)
* degrade user message to debug (expected behaviour -> no message)
* add pdMS_TO_TICKS to esp32SemTake macro (future proof)
2025-12-23 01:59:59 +01:00
Frank
655330d1a6
remove stupid "live forever" default
2025-12-23 01:42:55 +01:00
Frank
3c30edb70a
fix typo
2025-12-23 01:26:32 +01:00
Frank
5f3ab42520
reduced freeze time when updating presets
...
postpone suspendStripService until the first segment operation is needed.
2025-12-23 01:18:46 +01:00
Damian Schneider
9fe4d788cd
use constant instead of magic number in pixelforge
2025-12-23 00:49:22 +01:00
Frank
d6e2473ea7
small update for code clarity
...
wraping esp32SemGive inro #ifdef ESP32 does not change the behavior, but makes the logic easier to understand.
2025-12-23 00:41:45 +01:00
Frank
c185f37791
improved mutex error handling
...
- debug message in case of "unexpected" mutex errors
- removed experimental delay() in requestJSONBufferLock
2025-12-23 00:33:28 +01:00
Frank
1c2e6aac6e
oppsie
2025-12-23 00:11:40 +01:00
Frank
d3076c43ec
use a mutex to make requestJSONBufferLock / releaseJSONBufferLock robust
...
similar to upstream https://github.com/wled/WLED/pull/4089 ,
but with slightly different "failure" logic.
2025-12-23 00:05:16 +01:00
Frank
9b5ae9fff9
bugfix: suspendStripService held too long across stateUpdated() call
...
see discussion in https://github.com/MoonModules/WLED-MM/pull/293#issuecomment-3684424421
2025-12-22 23:58:19 +01:00
Frank
4345b32f97
protect WS2812FX::resetSegments boundsOnly path
...
the "boundsOnly" case can lead to ldsrgb re-allocation - better to protect it with segmentMux, too
2025-12-22 18:33:46 +01:00
Frank
39344382c7
WS2812FX::service() cleanup
...
- _isServicing is not critical any more -> move back into bitfield
- remove experimental deactivated code from WS2812FX::service()
2025-12-22 18:10:51 +01:00
Frank
68a76ff442
minor refactoring of critical sections
...
- define dummy macros for 8266, to avoid #ifdef ESP32
- small hint for readers who were not able to play arcade games in the 1980's ;-)
2025-12-22 17:59:22 +01:00
Frank
7459cbd2e2
setRealtimePixel robustness improvement
...
avoid drawing negative pixel addresses (could happen when arlsOffset is < 0)
2025-12-22 01:38:49 +01:00
Frank
d3291cc5e5
fix off-by-one in dnrgbw handler
2025-12-22 01:32:47 +01:00
Frank
6993de1c8a
debug message when realtimeLock fails, and fixing a few typos
2025-12-22 01:21:33 +01:00
Frank
f510bb075c
bugfix: allow udp realtime mode 5 (dnrgbw)
...
previous condition would prevent the existing handler from actually executing
2025-12-22 01:07:42 +01:00
Frank
cb94cfafae
extra debug message when Segment::setUp cannot get the mutex
2025-12-22 00:59:57 +01:00
Frank
bf6dbf0da4
fix realtimeOverride behaviour
...
the previous condition was not aligned with the override condition used in other places
2025-12-22 00:52:24 +01:00
Frank
fe63ebf1b7
deSerializeSegment robustness improvement
...
avoid creating an inconsistent configuration in case the mutex acquisition fails.
2025-12-22 00:39:11 +01:00
Frank
1038421544
atomic pointer swap in allocLeds()
2025-12-22 00:31:53 +01:00
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