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
Frank
d21b9b0687
typo
...
fixo
2024-10-12 23:05:08 +02:00
Frank
06590890bd
HUB75: remove driver double-buffer support (obsolete)
...
We use our own memory-optimised buffer rather than the driver's own double-buffer.
2024-10-12 23:00:35 +02:00
Frank
54467473f8
HUB75: fix for crash on -S3
...
* use a fork of the HUB75 with fixed Bus_Parallel16::release()
* prevent accessing an invalid display object
2024-10-11 21:19:22 +02:00
Frank
1b7cae0c59
comment added
2024-10-06 20:12:56 +02:00
Frank
1e5b246871
small fixes
...
very minor changes:
* HUB75 bus don't leave _len uninitialized, handle display == nullptr before using display members
* __attribute__((pure)) was in the wrong location
* wled00.ino: made lps (loops-per-second) calculation a bit more accurate
2024-10-03 00:19:18 +02:00
Frank
59ca792c9d
HUB75: trade bit depth against memory needs
...
gradually reduce bitdepts on esp32
2024-09-28 02:45:16 +02:00
Frank
2aa0d47036
adding getPixelColorRestored()
...
similar to getPixelColor, but returns the original pixel without brightness adjustments.
* getPixelColorRestored is used by segment::sPC and segment::gPC
* getPixelColor is still used by ABL (auto brightness limiter)
2024-09-28 02:43:12 +02:00
Frank
8338b58b88
HUB75 memory usage info on serial
2024-09-28 02:15:41 +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
e100a2d69a
switch off brightness reduction
...
this was added due to a recommendation from MrF (HUB75) but it seems to work without, too.
2024-09-21 20:07:52 +02:00
Frank
28fe5cbd8b
forgot one
2024-09-21 20:04:06 +02:00
Will Tatam
3669946a09
Swap pins used for S3 to avoid gpio0
2024-09-21 18:54:38 +01:00