Commit Graph

1166 Commits

Author SHA1 Message Date
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
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
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
4ec939cb4c build 2512171 2025-12-17 01:21:17 +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
12d7c085b2 better handling of low-brightness colors
reduce default gamma from 2.8 to 2.6
2025-12-01 03:12:44 +01:00
Frank
1125a0003b build number 2511281 2025-11-28 23:10:56 +01:00
Frank
1b3823510c update default AP channel to 6, possible fix for "AP does not show"
backport from upstream
2025-11-27 11:14:59 +01:00
Frank
d26c751281 Disable unicode support in ArduinoJson
Disabled unicode hex string support, to save flash memory.
2025-11-25 21:33:21 +01:00
Frank
dcdc05b592 unicode-related robustness improvements
* enable ARDUINOJSON_DECODE_UNICODE (otherwise unicode needs 6(!) bytes for encoding)
* robustness: increase a few tiny string buffers for some extra margin
* Web UI: allow entering up to 64 chars as segment name
2025-11-20 22:36:46 +01:00
Frank
0a0ca506eb Add WLEDMM_FASTPATH definition for all esp32 builds
force all esp32 builds to use WLEDMM_FASTPATH.
The code is proven in use, while non-fastpath is becoming obsolete.
2025-11-18 23:35:15 +01:00
Frank
dc04ccbde7 another attempt to avoid LED glitches during file writing
* mark synchronization variables volatile (thread-safe)
* additional logic in closeFile() to avoid file write while leds are pushed out by NPB driver
* some comments and analysis
* replace "yield()" after file ops with "delay(0)" before operations.
2025-11-15 00:11:35 +01:00
Frank
60878305fb debug code updates & fixes
better output when using WLED_DEBUG_HEAP without WLED_DEBUG
2025-10-25 00:53:25 +02:00
Frank
22d142942a build 2510241, version 14.7.0-dev
ongoing development
2025-10-24 19:15:20 +02:00
Frank
df55650c84 build 2501170 2025-01-17 21:44:52 +01:00
Frank
7bf7ac0c33 build 2501162 2025-01-16 21:01:40 +01:00
Frank
bd31dd2508 increase E131 max universes from 12 to 112 (esp32 boards only)
* use a more meaningful max universes limit of 112 (safe up to 128x128 pixels)
* accept more universes, but only track sequences for the configures max universes
* made e131LastSequenceNumber[] local (its only used in e131.cpp)
2025-01-16 14:48:54 +01:00
Frank
c96b2d7249 platformio.ini - re-introduce platform_packages for compatibility
MM builds are still using the standard arduino platform - we'll "flip the switch" later
2025-01-16 12:03:08 +01:00
Frank
e7614321e5 build 2501100 2025-01-10 18:57:40 +01:00
Frank
c0d8e256ae WLEDMM: we need the same delay when initially switching the relay on 2025-01-09 23:51:03 +01:00
Frank
79c26db4fa MM-specific handling of PICO reserved pins
this complements the previous commit
2025-01-07 16:45:42 +01:00
Frank
32b22636fa Build 2501030 2025-01-03 17:51:14 +01:00
Frank
4116785b44 build 2412300 2024-12-30 22:55:03 +01:00
Frank
fd2bce521b fix for outputs not working any more when receiving DDP or art-net pixels
This disables bus caching (and related speedups) while receiving realtime UDP pixels.

Its still totally unclear to me what happens, and why disabling the cache solves problems.
2024-12-20 01:57:02 +01:00
Frank
87e6a7bd8e start of 14.5.1-dev, build 2412190 2024-12-19 23:16:18 +01:00
Frank
a7a27d9d5e 14.5.0-beta, build 2412180 2024-12-18 11:29:35 +01:00
Frank
2cc08486fd change version numbering scheme
* use 14.5.0-dev instead of "0.14.5.0-b32.41.dev"
* new release name "Small Step"

* semantic versioning compatibility checked, see  https://jubianchi.github.io/semver-check/#/version/14.5.0-dev
2024-12-11 15:09:05 +01:00
Frank
86ed5a82e3 DNA effect: additional parameter "phases" (thanks @ewoudwijma )
controls the number of phases shown by the effect

breaking - the old code was using a fixed width per wave,  while the new one always fits the same number waves into the panel width.
2024-12-03 16:31:52 +01:00
Frank
6c87799ce5 post merge 2024-11-29 00:48:27 +01:00
Frank
f21b2949f1 fix for effect double restart problem when cross-fade is enabled
we only use palette and brightness transitions, so effect restart at the transition end is not required.
2024-11-27 21:13:46 +01:00
Frank
402786c14e GEQ FLat mode (1D) 2024-11-27 11:11:07 +01:00
Frank
d6dedd025d color_fade optimizations
* removed unnecessary conditions
* optimized bit-shifting logic
* use uint16_t for colors, to prevent the compiler from using 64bit integer
2024-11-15 20:12:01 +01:00
Frank
776718b734 2D drift improvements for large panel sizes
speedup, accuracy improvements and enhancements:
* separated calculations in float from integer
* improved time resolution
* slow down effect on for dimensions >32
* added original "twin" option
* added customizable blur (thanks dedehai)
2024-11-14 18:30:43 +01:00
Frank
202255849f fix errors when width>255 or height>255
some effects still don't work when x y dimensions do not fit into 8bit
2024-11-13 23:06:27 +01:00
Frank
537638e5a2 Bugfix: saving LED settings not possible when brightness limiter disabled
--- and the "Maximum Current" field is empty or has a value below 250.
2024-11-08 14:30:19 +01:00
Frank
53ecf16ab1 bugfix: make freeze work again
the last commit had a side-effect that cause "freeze" to first blank the screen, then freeze.
2024-11-07 16:43:20 +01:00
Frank
0ec5d3394f T7-S3 (LILYGO / TTGO) with MOONHUB
build env and HUB75 pinout for S3 and MOONHUB HUB75 adapter board
2024-11-04 22:54:30 +01:00
Frank
a362b619fb fix JSON buffer problem on classic esp32 with PSRAM
as it turns out, classic esp32 cannot allocate more than 64kb for json doc.
2024-10-30 17:00:44 +01:00
Frank
e3444174c0 align PSRAM build flags on all MM targets 2024-10-30 15:52:39 +01:00
Frank
711c709900 allocate more PSRAM for JSON 2024-10-28 10:30:01 +01:00
Frank
cff17861a4 bugfix: rest segments when leds are switched off/on
based on an idea from @blazoncek in 4cc2cc4ad4 (diff-749825f808f7ce1ce1108fffc7ed037085160a63cad32397135dfc0063494373R56)
2024-10-27 16:43:21 +01:00
Frank
adf7270ee5 build 2410200 2024-10-20 01:07:27 +02:00
Frank
617a98ddd8 bugfix: preset loading should not resets all error
preset loading was always resetting errorFlag to NO_ERROR.
Changed so only preset-related error are reset.
2024-10-17 12:00:27 +02:00
Frank
1fcb15bcc0 build number 2410080 2024-10-08 19:02:55 +02:00
Frank
7740c7dc62 drip effect rework
* made effect time-defendant (instead of framerate dependent)
* made effect a bit slower
* fixed physics
* made dropping more random (avoids skipped rows)
* drop traces look better now
* made bounce more realistic
* prevent off-screen drawing
2024-10-07 13:14:50 +02:00
Frank
b245112d2a some drawing speedups
* speedups for addPixelColorXY, fadePixelColorXY, fadeToBlackBy
2024-09-28 02:19:53 +02:00
Frank
bc11ec4b4e HUB75 bugfixes
* exclude HUB75 from ABL (bad macro in const.h; "pwr" item in json.cpp)
* show HUB75 as "physical" (LEDs preferences)
* minor corrections
2024-09-26 17:33:40 +02:00
Frank
f1088bb5c0 (experimental) loop2 to get fresh audio just before drawing
* introducing usermod::loop2() - runs just before strip.service()
--> expecting to reduce lagging between audio and visual to an absolute minimum.
2024-09-21 20:41:05 +02:00
Frank
fc2e1263cb new option don't use effect-specific palette or mapping modes
* new setting in UI page: "Don't use effect palette and segment parameters" - only meaningful when "Use effect default parameters" is enabled, too.

--> effect slider defaults will still be applied, however palette, 1D2D mapping mode and other segment settings will not change.
2024-09-06 13:06:28 +02:00
Frank
030a7cee53 another small speedup, and segment stability improvement
* removed a few sanity check that are done again later in getPixelColor
* stability: prevent crashes when changing segments settings or effect options
2024-08-16 17:54:11 +02:00