Commit Graph

17 Commits

Author SHA1 Message Date
Frank
553ac7bd82 remove some over-optimizations (FASTPATH) 2023-07-28 20:37:37 +02:00
Frank
3cc1d30090 optimization for ABL hotfix
* adding an optional parameter to setBrightness(). ApplyPostAdjustments() will only be called if `immediate=true`. Only ABL will use immediate=true, to ensure electrical safety of equipment.

This allows some optimizations of performance, as ApplyPostAdjustments() is time consuming.

* busses.setBrightness(bri) --> applied to all future pixels (fast, lossless)
* busses.setBrightness(bri, true) --> applied directly to all previously set pixels (slower, lossy)
2023-07-01 20:23:39 +02:00
Frank
3127c60b41 Merge branch 'mdev' into audio_fastpath 2023-06-15 20:54:57 +02:00
Frank
579dcf0835 align with upstream buildenv and librararies
* esp8266 core 4.1.0
* esp32 "V4" core 5.2.0
* neopixelbus 2.7.5
* use NeoPixelBusLg
* Make SPI bus speed user configurable

* adjust MM buildEnv to match upstream

https://github.com/Aircoookie/WLED/pull/3144

https://github.com/Aircoookie/WLED/pull/3173
2023-06-06 12:58:24 +02:00
Frank
7d0e627e14 some effect optimizations
* getpixelcolor: attribute pure - it reads memory, but does not write
* some optimizations for SEGMENT.blur() and SEGMENT.fadeToBlackBy()

* FX.c:pp remove double calls to blur() and fade_out()
* FX.cpp: SEGMENT.setUpLeds() added to effects, to enable LED buffering (safe some time because getPixelColor does not need to access NeopixelBus)

* a few other optimizations to safe time and avoid "expensive" operations
* set I2C bus speed to 400kHz (default is 100Khz)

* a few other small optimizations and tweaks
* pio: esp32 V4 builds use "patch5" toolchain version, which contains a few bugfixes especially for memory management.
2023-05-03 20:33:23 +02:00
Frank
91d36fa269 fastpath: use i2s#1 for 5th LED pin
use 4 RMT channels, then I2S#1, then RMT 5-8. This allows to have up to 5 "fast" LED pins.

"Even though the ESP32 has 8 channels of RMT hardware, using beyond 4 has shown to cause sending delays." (https://github.com/Makuna/NeoPixelBus/wiki/ESP32-NeoMethods#rmt)
2023-05-03 00:29:14 +02:00
Frank
40c96c14f5 a bunch of smaller speedups to core functions
*  make local functions "static"
* use fast_ int types where possible
* use native min/max instead of MIN/MAX macros. Macros evaluate each parameter TWICE!!
* adding __attribute__((pure)) and __attribute((const)) to help the compiler optimize
* ws.cpp: reduce max "live leds" in fastpath mode
2023-04-30 18:41:30 +02:00
Ewoud
8485be27f2 Merge remote-tracking branch 'upstream/main' into mdev 2023-03-21 11:39:30 +01:00
Ewoud
ab808c5522 Merge remote-tracking branch 'upstream/main' into mdev 2023-03-12 20:53:22 +01:00
Blaz Kristan
1bab4d6937 Merge branch 'main' into onepx-segment 2023-03-12 13:14:22 +01:00
Blaž Kristan
349578fb6e whitespace cleanup 2023-03-11 22:33:06 +01:00
TroyHacks
a4fcbb9f67 Art-Net transmit support for network LEDs
Like DDP, this allows WLED to address network systems using the Art-Net protocol.

Universe starts at zero, because that's the first universe in Art-Net.

Works with RGB. It's coded to also work with RGBW, but I couldn't find a great place to enable it without mucking with things I don't understand.
2023-03-10 13:29:00 -05:00
Blaz Kristan
c151221d12 UI fixes & revert forcing ULTRAWHITE for on/off bus
Reduce min heap for 8266
2023-03-02 18:21:55 +01:00
Ewoud
bb6662ee35 NetDebug: switch between serial/netdebug, store ip and port in settings
pio.ini: enable WLED_DEBUG_HOST in esp32_4MB_M_debug and esp32_16MB_M_debug

audio_reactive, um6050, wled.h
- replace DEBUGOUT.print(x) by DEBUGOUT(x) etc

wled.h: switch between serial/netdebug

cfg.cpp, set.cpp, wled.cpp, xml.cpp
- store netDebugPrintIP and netDebugPrintPort in cfg.json

index.js: rename info tab on off to Net Debug

settings.sync: add netdebug

net_debug.h/cpp: use global netDebugPrintIP remove debugPrintHostIP
2023-02-24 15:40:16 +01:00
TroyHacks
410baa9cae Art-Net transmit support for network LEDs 2023-02-16 12:54:32 -05:00
Christian Schwinne
74156b7ed8 Support white addressable LED strips (#3073)
* Support white addressable LED strips

* Various white handling tweaks

Allow RGB controls for white-only busses depending on AWM (makes palette-only FX work on non-RGB addressable busses)
Fixed RGB controls hidden if segment contained any non-RGB bus (even though there is also an RGB bus in that segment)
New Max auto white mode
Added hasCCT() bus method
Rename methods to be clearer
WS2811 White getPixelColor fix()

* Fix merge conflict (bus manager cpp)
2023-02-14 01:33:06 +01:00
Blaž Kristan
dec45109d3 Refactor busmgr (#3079)
* Refactor bus manager.

* Fix for net debug

* Fix 8266 compile

* Move bus static members to proper cpp

---------

Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
2023-02-05 23:48:43 +01:00