Commit Graph

5916 Commits

Author SHA1 Message Date
Troy
ecceea5ec1 receiveAudioData() process last packet in buffer now to account for slower refreshes 2025-03-03 08:47:12 -05:00
Frank
df55650c84 build 2501170 2025-01-17 21:44:52 +01:00
Frank
985fa1fd3f inline frequently used color utilities (up to 15% faster)
* moving color_blend, color_add, and color_fade to a seperate file, to allow the compiler to inline the functions.

* inlining slightly increases firmware size - original non-inline functions get used on 8266, or when WLEDMM_SAVE_FLASH is defined.
2025-01-17 21:42:26 +01:00
Frank
0eec8e46c9 robustness: prevent negative transitions
fix for a corner case that might lead to unexpected math overflow
2025-01-17 21:36:51 +01:00
Frank
2c0063dc5b tiny optimization
* use bitmask operations in getBitFromArray, setBitInArray
* make currentBri "const"
2025-01-17 21:13:27 +01:00
Frank
7bf7ac0c33 build 2501162 2025-01-16 21:01:40 +01:00
Frank
4221ed1859 LEDs driver: slowmode optimization
* isValid() -> isOk()
* removed unneeded "lastBus != nullptr" checks
* re-enable lastBus optimization in getPixelColor() and getPixelColorRestored()
* remove duplicate checks for _valid== true from busses (already done at BusManager level)
2025-01-16 20:58:32 +01:00
Troy
db2d50e6cd Change to 100 microsecond delay for Art-Net
Seems like a 10 microsecond delay on boards like the ESP32-P4 may not be enough, causing some issues with UDP audio sync being delayed or appearing "buffered".  Oddly 10 microseconds was fine with the ESP32 and ESP32-S3, so it may also be an underlying IDF v5.3 change. 

Practically, 10 microseconds or 100 microseconds isn't a real difference when we're dealing in frames per second.
2025-01-16 13:15:10 -05:00
Frank
8daf9d9ffb transition optimization (small speedup)
* move "progress()" into FX.h so the compiler can inline it
* removed redundant checks in  currentBri()
2025-01-16 18:26:10 +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
63db2c9fc1 prepare pinmager for -P4
support up to 56 GPIO pins (0 thru 55)
2025-01-16 13:07:43 +01:00
Frank
1db43d1ea8 typo 2025-01-16 12:59:54 +01:00
Frank
46f41e9038 matrixportal: switch to "tinyUF2" (adafruit bootloader) 2025-01-16 12:58:14 +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
netmindz
4b4421b73b Merge pull request #4492 from Aircoookie/V4
V4
2025-01-15 20:31:48 +00:00
Frank
e7614321e5 build 2501100 2025-01-10 18:57:40 +01:00
Frank
771f110b14 experimental: prevent strip flickering when loading presets from UI
* wait until strip.service() is done
* blank strip
* wait until all LEDs are updated
* load new preset
2025-01-10 18:48:47 +01:00
Frank
c144c77b81 S3: don't wait for serial to initialize
... allows to start effects a bit aerlier. Enabled by default on -S3. for your own builds, add `-DWLEDMM_NO_SERIAL_WAIT` to build_flags.
2025-01-10 15:50:52 +01:00
Frank
8317c891c1 better transitions overspeed bugfix
when the user wants less than 42 fps, respect this limit during transitions.
2025-01-10 13:50:25 +01:00
Frank
d9153854c4 bugfix: avoid effect speedups during transitions 2025-01-10 13:09:19 +01:00
Frank
6caa9d78b8 avoid glitches at relay power-on
* switch on relay _after_ the current leds transmission is complete.
2025-01-10 12:49:46 +01:00
Frank
c0d8e256ae WLEDMM: we need the same delay when initially switching the relay on 2025-01-09 23:51:03 +01:00
Damian Schneider
f4061e671b added a delay after switching relay (#4474)
- helps to stabilize power on the LEDs before sending data
2025-01-09 23:09:13 +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
b4aa6a13a1 Merge pull request #4450 from adafruit/main
Add correct pin availability for ESP32 Mini modules
2025-01-07 16:32:18 +01:00
Frank
da8f907874 Merge pull request #4439 from dosipod/Upstream_PRs
Update readme.md for rgb-rotary-encoder usermod
2025-01-07 16:12:47 +01:00
Frank
f8a673ce81 code robustness improvements plus minor speedup
* make  XY() and _setPixelColorXY_raw() const (minor speedup)
* segment is a struct not a class: friend class Segment --> friend struct Segment
* fix missing braces around two macros
* use non-throwing "new" where possible
* improve robustness of transition code
2025-01-07 15:58:38 +01:00
Frank
32b22636fa Build 2501030 2025-01-03 17:51:14 +01:00
Frank
fdc43e0a2b Update usermod_PIR_sensor_switch.h - avoid starvation due to strip.isupdating()
Another instance of the "if (strip.isupdating()) return;" problem that we inherited from upstream 🙄
2025-01-03 17:45:01 +01:00
Troy
9618d7a531 Merge pull request #208 from troyhacks/mdev
Fixes for ES8311 auto level control
2025-01-02 12:41:33 -05:00
Troy
b4323a3256 Fixes for ES8311 auto level control 2025-01-02 12:38:35 -05:00
Frank
d58cb495e4 fix for realtime mode with "use main segment only" 2024-12-30 23:31:13 +01:00
Frank
4116785b44 build 2412300 2024-12-30 22:55:03 +01:00
Frank
e65832ab70 always use preset glitch workaround 2024-12-30 22:52:27 +01:00
Damian Schneider
6d0b4c330b Fix output glitches when playlist changes preset (#4442)
same issue as with https://github.com/Aircoookie/WLED/pull/4386
waiting on bus to finish updating before file access fixes the glitches.
this issue is only present on S2 and C3, not on ESP8266 or dual-core ESPs, the fix is only applied for these two.
2024-12-30 22:39:39 +01:00
Blaž Kristan
db88d702ec Merge pull request #3892 from askask/pollreply 2024-12-30 22:31:54 +01:00
Will Miles
93e874dee1 DDP: Support sources that don't push
If the source never sends the push flag, WLED buffers the update but
never publishes it to the LEDs.  This causes the confusing case where
the peek display shows one thing but the LEDs themselves something else.

Add a static flag that tracks if we've seen a push from the source;
until we do, apply every update as soon as it's received, per the DDP
specification.
2024-12-30 22:15:50 +01:00
Frank
257b7b5876 better audiosyncPacket description (audio_reactive.h)
clarify meaning of some fields
2024-12-29 19:56:28 +01:00
Frank
f24d35e970 slowMode fix
continue searching for busses in slowMode
2024-12-20 20:50:17 +01:00
Frank
2cff35e26b stupid bug fix. 2024-12-20 17:50:39 +01:00
Frank
02f51d4582 realtime mode bugfixes
- busses: ignore not valid bus instances
- "use main segment only": prevent flickering du to intermitted strip.service().
2024-12-20 17:47:07 +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
dc0b6bca37 fix forgotten debug output
this was accidentally committed - doesn't hurt, but the code should only be active with WLED_DEBUG
2024-12-19 23:32:26 +01:00
Frank
7b3b6b45a1 fix preview flickering when sending out DDP or art-net
BusNetwork stores original colors (not modified by global brightness), so `restoreColorLossy(strip.getPixelColor(i), stripBrightness);`  was actually restoring brightness twice when running network output. This lead to preview flickering.
2024-12-19 23:18:25 +01:00
Frank
87e6a7bd8e start of 14.5.1-dev, build 2412190 2024-12-19 23:16:18 +01:00
Frank
d98ef84d40 additional matrixportal buildenv using original adafruit bootloader
you should

first) perform the "bootloader repair" as described in https://learn.adafruit.com/adafruit-matrixportal-s3/factory-reset#factory-reset-and-bootloader-repair-3107941

second) upload partitions.bin and firmware.bin created by the _tinyUF2 build
2024-12-19 12:53:40 +01:00
Frank
a7a27d9d5e 14.5.0-beta, build 2412180 2024-12-18 11:29:35 +01:00
Frank
ae65a83bca fix for esp32S3_4MB_PSRAM builds (S3 zero and supermini) 2024-12-13 19:05:39 +01:00
Frank
655fada80c platformio.ini cleanup
* re-organized default_env by board type
* added a note saying if HUB75 support is included
* esp32 buildenv cleanup (removed not used flags)
* env:esp32_4MB_PSRAM_M deleted
* flash usage statistics
2024-12-13 18:37:47 +01:00
Frank
8e64a20454 Update platformio.ini - ESP32 build env with HUB75 support
build_flags were still using "old style" HUB75 flags
2024-12-13 15:41:51 +01:00