Frank Möhle
bf44a0dd21
Remove bad extra "#endif"
2026-01-12 23:03:39 +01:00
Frank
650651e7cc
show user message once
...
don't repeat slowMode warning when several busses overlap
2026-01-12 22:59:35 +01:00
Frank
e5d7d7aacc
extra protection
2026-01-12 19:47:40 +01:00
Frank
05fb246af9
small optimization
...
* moved newStart and newEnd calculations into lower scope (``if (newBus->isOk())``)
* removed duplicate nullptr check
2026-01-12 19:40:22 +01:00
Frank
58281b4cd5
handle zero-length edge case
2026-01-12 19:31:53 +01:00
Frank
9cdbc7ad3c
fix typo
2026-01-12 19:26:40 +01:00
Frank
45500d8481
newline
2026-01-12 19:21:32 +01:00
Frank
cb73d4b3de
robustness improvement
2026-01-12 19:18:50 +01:00
Frank
eaec389ef4
disable SPC optimizations when busses overlap
...
support for "custom bus indices" that lead to overlaping output pixel ranges
2026-01-12 18:55:27 +01:00
Frank
75fe5b747c
removing a flicker-protection delay
...
this is not necessary if we use the RMTHI flicker-free driver
2026-01-12 18:20:27 +01:00
Frank
872c38f3c2
(experimental) HUB75 small speedups
...
* removed unnecessary sanity checks from sPC and gPC
* gPC: use inline color_fade() instead of FastLED .scale8()
in my tests on -S3 this gives a small speedup, 2% up to 6%
2025-11-17 19:30:52 +01:00
Frank
36648d1936
hot path optimization: make gamma correction inline
...
* make sure that gamma LUT is always initialized
* remove some unnecessary safety checks
* make gamma8() inline, for more speed
* use fast unGamma8 for preview
* add super-fast unGamma8 for HUB75 - old function lost 3-10 fps, this version does not reduce fps at all *grins*
2025-11-10 23:17:16 +01:00
Frank
d9e5426636
HUB75: small correction of order
...
first set _valid=false, then perform delay.
2025-11-02 16:38:03 +01:00
Frank
0510fd308f
HUB75: small delay at cleanup, to ensure that DMA finishes before deleting the driver
...
based on a suggestion by @DedeHai
2025-11-02 16:33:10 +01:00
Frank
eec3e6d64d
Merge pull request #269 from MoonModules/bus_sPC_gPC_optimizations
...
Bus level setPixelColor and getPixelColor optimizations
2025-11-01 13:39:25 +01:00
Frank
74c701b745
HUB75: no color temperature correction for performance reasons
...
Enable building color correction code if you really need it.
The effect of color correction is less noticeable on HUB75 than on ws2812b, however it can reduce your framerate by up to 10%.
2025-10-27 21:19:40 +01:00
Frank
1f99aeb506
small optimization: always allow gPC to use cached busses
...
previously gPC cached busses were disabled in slowMode (one pixel mapped to several outputs). However this should not be needed, because the first copy found should be like all other.
2025-10-24 00:05:44 +02:00
Frank
541b201855
bus.setPicelColor optimization: optimizing some CPU cycles out of the hot path in sPC and gPC
...
* optimize loops that scan through all busses
* small speedups for Bus::autoWhiteCalc()
* small speedups for ColorOrderMap::getPixelColorOrder()
thanks to github Copilot for giving me the right ideas for this optimization
2025-10-20 21:58:23 +02:00
Frank
8067f1f70c
bus.setPicelColor optimization: move colorBalanceFromKelvin into busmanager.cpp
...
colorBalanceFromKelvin() is only called from inside bus_manager.cpp, so we can help the compiler optimize by making it a local (static) fuction
2025-10-20 21:49:09 +02:00
Will Tatam
79d03a2c61
Remove unused code - direct hub75 rather than via our own buffer
2025-08-20 22:32:44 +01:00
Frank
2c0063dc5b
tiny optimization
...
* use bitmask operations in getBitFromArray, setBitInArray
* make currentBri "const"
2025-01-17 21:13:27 +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
Frank
f24d35e970
slowMode fix
...
continue searching for busses in slowMode
2024-12-20 20:50:17 +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
3ef8d93bbe
another attempt to reduces flickering
...
* BusManager::show(): explicitly wait until the bus driver is idle (done by NPB show, too, but in a different way)
* BusManager::removeAll(): use delay() instead of yield() - yield() does _not_ free the processor on esp32!
2024-12-12 14:50:39 +01:00
Troy
a5e9df6668
Revert "Merge pull request #204 from troyhacks/Strip_Level_Color_Adjust"
...
This reverts commit db55872732 , reversing
changes made to 972257a7ee .
2024-12-10 12:14:03 -05:00
Troy
6ad0b2893a
Merge branch 'mdev' into Strip_Level_Color_Adjust
2024-12-10 12:12:44 -05:00
Frank
61c2ba98b7
HUB75 small speedup
...
gave me 1-3 extra FPS on -S3 with 128x64
2024-11-24 17:32:59 +01:00
Frank
b1064e1cfe
HUB75: use FM6124 driver for outdoor
...
It seems that the FM6124 driver makes some "outdoor" panels work, that previously only showed random color flicker. FM6124 is largely compatible with panels that did work with the standard driver, too.
2024-11-18 23:58:43 +01:00
Frank
fb259d1bc6
Merge pull request #179 from troyhacks/Art-Net-Improvements-v2
...
Art-Net Improvements
* AsyncUDP instead of WiFiUDP so it's much faster
* Support for professional Art-Net gear with many outputs
* Color-order remapping
* ESP32-P4 SIMD assembly optimization for brightness calc, a bit faster
* Full GUI support for all settings
* GUI guidance for setup
2024-11-18 13:47:17 +01:00
Frank
db1db330af
HUB75: bugfix for 4-scan (virtual) panels chain
...
module cols parameter must be chain_length
2024-11-15 23:33:57 +01:00
Frank
06fc1eb5b8
HUB75: use last brightness on re-init
...
avoids brightness flash when saving LED preferences
2024-11-15 22:33:29 +01:00
Troy
3828d959e6
Minor indent fix
2024-11-10 13:39:47 -05:00
Troy
9223b3c6cd
Free BusNetwork _data on cleanup
2024-11-10 13:35:54 -05:00
Troy
f096da3c8b
Review Fixes
2024-11-10 07:18:39 -05:00
Frank
2e80d96400
HUB75 - comment out dead code
2024-11-08 12:24:34 +01:00
Troy
e7fb8f5748
IRAM_ATTR_YN for ES8266
2024-11-07 17:03:24 -05:00
Troy
7bf3f4aee0
Fixes for ESP8266
2024-11-07 13:48:17 -05:00
Troy
3f02ba73df
Art-Net Color Order Maps, RGBW
2024-11-07 13:26:14 -05:00
Troy
44c6a0d73b
Proper Art-Net Settings
2024-11-07 13:12:15 -05:00
Frank
c5ebf259cf
HUB75: allow up to 6 panels on -S3
2024-11-07 00:25:35 +01:00
Frank
cbd1ce4705
HUB75 hack-the-DOM
...
* Reversed -> mxconfig.clkphase ; "Inverted clock phase"
* Off Refresh -> mxconfig.latch_blanking = 1; "Single-cycle latch blanking"
2024-11-07 00:06:46 +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
39bf245d1e
HUB75 driver optimization
...
gains up to 3 fps in some effects.
2024-11-03 21:54:41 +01:00
Frank
6092705cc4
HUB75: reduced panel size limits for HD-WF2
2024-11-01 13:30:49 +01:00
Frank
91ff04a79b
HUB75 small optimization
...
use CRGB instead converging to uint32_t, then extracting bytes with shift & mask
2024-10-29 18:45:54 +01:00
Frank
00a1a5a871
HUB75 bitdepth reduction rules per MCU
2024-10-14 21:26:36 +02:00
Frank
d66720ade8
HUB75 128x64 (untested)
...
128x64 panels are normally "64x64 with chain length 2". But some newer ones appear to be native "128x64"
2024-10-14 13:19:24 +02:00
Frank
3fa5d0c5ba
HUB75 on S3: workaround for not working runtime reconfiguration
...
* instead of deleting the driver object, we keep a "secret" reference and re-use it
* prevent having more than one HUB75 object
2024-10-14 13:05:27 +02:00