Commit Graph

6305 Commits

Author SHA1 Message Date
Frank
8d41bc409c don't compile RMTHI on unsupprted (old) platforms 2026-01-05 21:23:51 +01:00
Frank
86473a85b8 RMTHI backport to NPB 2.7.9
fingers crossed
2026-01-05 21:06:43 +01:00
Frank
4c6b3524bf upgraade all esp32 buildenv to NeoPixelBus 2.7.9
only esp32dev_legacy stays on NPB 2.7.5
2026-01-05 21:05:19 +01:00
Will Miles
abdbe0b445 Merge pull request #4980 from willmmiles/0_15_x_rmthi
(0.15) RMT High-priority Interrupt driver backport
2026-01-05 20:23:09 +01:00
Frank
e6cca911d5 build 2601051 2026-01-05 16:05:53 +01:00
Frank
586d3c2732 another attempt to prevent glitches caused by file access
wait for LEDs send out to finish, then access presets.json
2026-01-05 11:22:53 +01:00
Frank
f9c7828eeb fix parameter order in calloc() calls
calloc(nmemb, bytes) allocates memory for an array of _nmemb_ elements of size _bytes_
2026-01-01 22:02:06 +01:00
Frank
e1651f1ab9 Merge pull request #293 from MoonModules/pixelforge_backport
Pixelforge backport, UI stability improvements, speedup for UDP real-time

* Backport of the new PixelForge tool by @DedeHai, some adaptations to make it work with 14.x API's
* Upgraded HTML build system
* Several bugfixes to prevent presets.json corruption (prevents parallel file writing, better protection of buffers)

* Improved stability when several tasks try to draw/show LEDs in parallel
* JSON de-serializer: interlock added to prevent segment updates while ``strip.service()`` runs
* JSON de-serializer: reduced delay when updating presets (``strip.service()`` lock released before writing to presets.json)
* UDP real time streaming: small speedup, improved stability and prevent broken frames.
2026-01-01 20:51:10 +01:00
Frank
f07070d7c7 build 2601011 2026-01-01 19:46:19 +01:00
Frank
0901d903b9 Merge branch 'mdev' into pixelforge_backport 2026-01-01 18:07:41 +01:00
Frank
7994536b87 build 2512301 2025-12-30 22:08:41 +01:00
Frank
32ed6cafc1 ledmap parser robustness improvements
* do not read past end of array "]"
* digest "unexpected" order of tags (always rewind input)
* better user message on success
2025-12-30 22:07:12 +01:00
Frank
9db1022b9d ledmap parser bugfix
make our custom parser robust against pretty printed ledmap.json 

expected <"map":[> but user file had <"map": [>
2025-12-30 20:13:40 +01:00
Frank
617ea8fa04 bugfix: ledmap.json discarded too early
* added missing check for "ledmap.json" file => always applied
* added missing check for ledmap1...10
* setupMatrix test for "unity" ledmap was too early - removed (need to find a better place for this)
2025-12-30 15:46:47 +01:00
Frank
868b2cad4e savePreset: restore quickload on early exit
* restore quickload on early exit
* replace magic numbers with constants
2025-12-30 02:20:10 +01:00
Frank
80b906999b requestJSONBufferLock() variable timeout
* default timeout = 1800ms
* reduced timeout for ws (300ms)
2025-12-30 01:57:46 +01:00
Frank
5739a54287 savePreset() error case bugfix
* Keeps the status machine coherent: no spurious async save, no lost pending playlist write, no change to successful paths.
* Aligns behavior with the already corrected mutex‑failure path, making both early exits consistent.
2025-12-29 21:35:10 +01:00
Frank
e1c7e816fe preseve playlistSave in case of mutex failure 2025-12-29 21:22:12 +01:00
Frank
b863cf3ed8 savePreset() fix mutex leak in early return path
early return considered harmful 😆
2025-12-29 21:17:02 +01:00
Frank
91dc9a5b5a restore revious presetToSave in case that mutex acquisition fails 2025-12-29 21:09:04 +01:00
Frank
d505dcc6a8 fix presets.json corruption, part 2: protect deletePresets
deletePreset() also needs to acquire presetFileMux before writing.
2025-12-29 21:02:06 +01:00
Frank
76cf309373 (minor) fix wrong debug tag 2025-12-29 20:54:05 +01:00
Frank
2a56f9b658 fix presets.json corruption, part 2: mutex for presets file writing
prevents concurrent presets.json writes from doSaveState() and savePreset()
2025-12-29 20:48:07 +01:00
Frank
6247ee066d fix presets.json corruption, part 1: avoid re-assigning open file pointer
* this prevents "open after open", that could lead to file corruption when "f" was still holding some changes in its buffer (written out with f.close())
2025-12-29 20:08:34 +01:00
Frank
35c847404c Merge branch 'mdev' into pixelforge_backport 2025-12-29 19:47:51 +01:00
Frank
4521ba848c align extractModeSlider() and extractModeNames() behaviour
* document behavior
* both functions are only called from usermods, and all calls are already correctly passing maxLen = buffersize -1
2025-12-29 19:43:42 +01:00
Damian Schneider
dab6a96b78 revert change to extractModeName, add comment for clarification 2025-12-29 19:38:53 +01:00
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
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