Commit Graph

100 Commits

Author SHA1 Message Date
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
Will Tatam
2781be375f Swap pins used for S3 with PSRAM to avoid conflict 2024-09-21 16:52:32 +01:00
Will Tatam
22bd52198f Cleanup Hub75 config 2024-09-21 15:59:35 +01:00
Frank
08c2446f61 better PSRAM flags handling (minor)
in MM, we can have WLED_USE_PSRAM_JSON instead of WLED_USE_PSRAM.
2024-09-17 18:11:06 +02:00
Troy
3ee05a74b4 PSRAM buffer fixes as per SoftHack007 2024-09-10 15:11:17 -04:00
Troy
08e2e188d9 Merge branch 'mdev' into HUB75-PSRAM-Buffers-Fixes 2024-09-09 18:56:06 -04:00
Troy
c2adb5be34 HUB75 PSRAM Buffers 2024-09-09 18:53:40 -04:00
Will Tatam
8c0fcaa0fd hub75 - mxconfig.clkphase = false 2024-09-07 17:19:46 +01:00
Will Tatam
37a3141f88 HD-WF2 tweaks 2024-09-07 13:34:09 +01:00
Will Tatam
1e6cdc2c5b HD-WF1 pinout 2024-08-22 20:41:23 +01:00
Will Tatam
a5600950b5 Enable HUB75 for the esp32S3_8MB_M for HD-WF2 2024-08-21 23:34:11 +01:00
Will Tatam
0d11827552 Add pinout for HD-WF2 2024-08-21 22:40:40 +01:00
Frank
5610548652 HUB75 clock phase
`mxconfig.clkphase = false;` seems to help reduce flicker on some panels.

@netmindz I think we should add a checkbox to the UI - something like "clocked on positive edge" (default = checked) which means clkphase = true. when unchecked, we set clkphase = false.
2024-08-13 12:52:19 +02:00
Frank
a77520aa05 bugfix
forgot to commit one line ...
2024-08-12 12:36:45 +02:00
Frank
a257e49bb4 HUB75 trying to reduce glitches
the HUB75 driver seems to randomly produce glitches, especially on hight contrast edges.

* roll back to HUB75 version 3.0.10 (known good)
* limit max brightness to 238 (=92%)
* add short delay after starting the driver
2024-08-12 12:20:15 +02:00
Frank
2934739ebf HUB75 cleanup, double buffer improvement
* code cleanup, removing some unneeded sanity checks
* use dirty bits in double buffer mode, too -> only not-black pixels are drawn into the back-buffer (20%-30% faster)
2024-08-09 17:46:14 +02:00
Frank
56e72ef22d HUB75 live preview 2024-08-08 20:57:15 +02:00
Frank
bad923570b double buffer off (MatrixPortal S3)
`mxconfig.double_buff = true` should not be necessary any more.
2024-08-08 19:04:10 +02:00
Frank
1b098b9863 fixie 2024-08-08 19:00:19 +02:00
Frank
b5d97cca93 HUB75 leds buffer with dirty bit acceleration
Instead of using the memory-hungry driver double buffer, this implements a LEDS buffer inside the BusHub75Matrix class.
--> up to 50% faster
--> uses one "dirty" bit per pixel, to only re-transmit pixels that changed after the last "show"
2024-08-08 18:56:12 +02:00
Frank
5b7345ef39 HUB75 refactoring
* move HUB75 implementation into bus_manager.cpp
* add "override" keyword
* include FastLED.h if not included previously
* move RGB macros into bus_manager.h
2024-08-08 18:48:49 +02:00
Frank
fb2402fb97 HUB75 optimization (double buffer only)
In double duffer mode, the screen is blanked at each show(). So we can drop setPixelColor(BLACK) calls until we receive a pixel with different color.
2024-08-07 17:02:46 +02:00
Frank
7f9da309c9 const const const
adding hints for the compiler for optimization.
In case your custom build complains about "const", just remove the keyword. based on e82f38e277, but going further :-)

* "const" class functions : function does not modify any class attributes ( --> "this" becomes const)

* __attribute__((pure)) :  function return value depends only on the parameters and/or global variables. The function does not modify any global or static variables.
* __attribute__((const)) : function only examines arguments (no globals), and has no effects except the return value. This slightly more strict than "pure"
* hot: tells the compiler "this functions is called very often"
* cold: the opposite of hot
2024-08-07 14:58:38 +02:00
Frank
078bd70775 HUB75 speedups and minor improvements
* HUB75: allow to use native driver gamma correction - requires to undo WLED gamma
* added unGamma24() function
* HUB75: optimized setPixelColor()
* some experimental HUB75 stuff
2024-08-05 17:28:03 +02:00
Frank
6cfbc48ead busmanger debug help
* avoid crash when HUB75 driver is not compiled into firmware
* minimal info about PWM and Network busses
* show SPI frequency for DotStar driver
2024-07-17 21:49:10 +02:00
Will Tatam
d1cf8a679f Only enable double buffering for matrix portal due to memory issues on classic esp32 2024-07-17 10:23:50 +01:00
Will Tatam
584ca5e8ae Double buffer needed to prevent flicker for effects like GEQ 2024-07-13 13:51:59 +01:00
Will Tatam
60fbf07bca Fix mx_width and height for 4scan 2024-07-10 23:01:21 +01:00
Will Tatam
fb30f9c641 Add Hub75Matrix 64x32 (Outdoor 8S) 2024-07-09 21:35:53 +01:00
Will Tatam
5123128e9c Limit hub75 chain length by height 64 not width to allow for 2 x 64x32 2024-07-09 18:39:58 +01:00
Frank
a0514bb7ee fix compiler warning 2024-05-17 21:40:59 +02:00
Frank
0c7450407e WLEDMM_TWOPATH - use I2S driver for second output
* TWOPATH is up to 20% faster in some situations.
* user_print for showing the driver unit (I2S#n, RMT#x) on serial
2024-05-17 21:24:10 +02:00
Frank
08d73646fd adding compile-time messages when extra features are enabled 2024-05-01 02:11:28 +02:00
Frank
714d4850af minor cleanup
* startup message from UM autoplaylist
* zeroCrossingCount added to sound simulation
* debug messages cleanup
2024-04-30 12:47:45 +02:00