Commit Graph

92 Commits

Author SHA1 Message Date
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
Frank
bd8df5e5c8 WLEDMM specific adjustments 2024-04-27 19:23:24 +02:00
Blaz Kristan
0572d3bee9 Bugfix
- getPixelColor() for analog
- RMT channel (#3922)
2024-04-27 19:16:43 +02:00
Frank
657259acc2 Optimization: stop to constantly search for the bus
Adding a caching mechanism to the Bus Manager - up to 30% faster especially when many led pins are used.
2024-04-20 21:57:04 +02:00
Will Tatam
f1a494f82d Cleanup comments 2024-02-26 22:47:33 +00:00
Will Tatam
2f87b616cd Default to mrfaptastic pinout 2024-02-26 21:27:27 +00:00
Will Tatam
bf1a91a501 Resolve validation error for length 2024-02-25 12:07:02 +00:00
Will Tatam
e3e9ff72fa Force chain length to 1 for 64 panels 2024-02-25 11:24:12 +00:00
Will Tatam
e2aad4783d Allow chain of 1-4 panels - subject to memory 2024-02-24 17:27:20 +00:00