Commit Graph

5514 Commits

Author SHA1 Message Date
Frank
28db9bfcfd waverly effect speedup
* faster math
* limit height to visible area
2024-08-08 22:03:49 +02:00
Frank
56e72ef22d HUB75 live preview 2024-08-08 20:57:15 +02:00
Frank
f8154a8c78 Update wled.h - build 2408080 2024-08-08 19:08:34 +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
c66a8af85c reduce WiFi disconnects
HUB75 is very heap-hungry - use a more relaxed metric for triggering "low heap emergency" actions
2024-08-08 17:44:13 +02:00
Frank
90dd048878 revert fadeToBlackBy optimization
causes problems with overlay text (scrolling text)
2024-08-08 17:41:05 +02:00
Frank
6e415dfbbe HUB75 hack
HUB75 is very memory hungry - this hack deletes the mapping table when its not needed --> frees 8Kb with a 64x64 panel.
2024-08-07 18:31:06 +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
b2844645c6 pinwheel mapping XXL - no holes at 64x64 2024-08-07 16:53:25 +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
273154db76 drawArc speedup (Circle mapping mode)
* Optimize drawArc to skip pixels that are off-screen or outside the circle's bounding box. Also move repeating calculations out of the inner loop.

testcase 64x64 : 8fps --> 33 fps :-)
2024-08-06 18:13:59 +02:00
Troy
5778b596be ESP32-ETHERNET-KIT-VE Fix
Changed eth_address from 0 to 1 based on testing with devkit as it wasn't working by default with 0
2024-08-06 10:44:44 -04:00
Frank
42919f9daf blob effect improvements, and a dirty hack for HUB75 double buffer
* mode_2Dfloatingblobs() improvements for large panels
* Segment::fillCircle() speed optimizations
* HUB75 hack (disabled by default): skip first fill(BLACK) when using double buffering (as the buffer gets cleared after each frame)
2024-08-06 15:53:46 +02:00
Troy
9ee4165dad Freqmatrix stop identical first pixel/line 2024-08-05 16:37:49 -04:00
Frank
5240c3450b Segment drawing optimizations (FASTPATH only)
* cache width, height, and a few more values that are normally re-calculated for each pixel
* make normal sPC a bit faster
* Segment::fade_out() optimization

--> only active in FASTPATH mode, to preserve flash on small devices (8266)
--> code still needs some polishing
--> up to 20% speedup with some 2D effects (esp32,  flash qio 80Mhz, -O2)
2024-08-05 21:30:25 +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
6505e04cbf minor effect improvements
* 2DBlackHole: improved accuracy
* 2Dfloatingblobs: draw anti-aliased blobs when "blur" slider = 1
* FX framework: un-clutter and optimize "XY()"
2024-08-05 17:09:50 +02:00
Frank
5f4834dec4 small improvements
* optimized fadeToBlackBy() - don't repaint unchanged pixels
* made MIN_HEAP_SIZE configurable by build_flags
* specific error message when not enough memory for LEDs buffer
2024-08-05 17:06:38 +02:00
Frank
18f9d64e24 HUB75 lib version 3.0.11
using the git hash of version 3.0.11
2024-08-03 23:49:13 +02:00
Frank
114cdfefd8 Hub75 lib versions rollback
3.0.11 breaks the gh build.
2024-07-30 16:16:44 +02:00
Frank
ecb8817c90 Update audio_source.h - swapped channel bug still exists in 2.0.17
Actually we could even check for " < 5.0.0 " - arduino 2.0.x is in maintenance mode now, and I see little chance that a fix will appear before 3.0.0.
2024-07-30 16:03:19 +02:00
Will Tatam
0562debbe1 hub75 - slow updates to reduce wifi performance issues 2024-07-28 10:39:27 +01:00
Frank
a84ac5b1ee Merge pull request #4060 from DedeHai/0_15_bootdelay
boot-up delay to fix wifi not starting in some setups

use
`-D WLED_BOOTUPDELAY=500` (or some other delay you want, in milliseconds)
in platformio env definition to add 500ms of delay before hardware init.
2024-07-26 17:45:54 +02:00
Troy
79402208ee Allow E131_MAX_UNIVERSE_COUNT override 2024-07-24 21:18:57 -04:00
Troy
f3e89d070b Merge pull request #149 from Brandon502/GoL-Optimized
GoL - Optimizations
2024-07-21 20:53:47 -04:00
Brandon502
33accd8671 GoL - Optimizations
Uncapped update option if speed set to 255.
2024-07-21 15:40:24 -04:00
Frank
d255beca92 Update platformio.ini - final hub75 correction
TWO commits after the release tag - I think this is the correct one now. Fingers crossed.
2024-07-18 15:29:43 +02:00
Frank
ed636aa522 Update platformio.ini - another hub75 correction
this is exactly 1 commit after the 3.0.10 tag.
2024-07-18 15:26:05 +02:00
Frank
dfbf9729d5 Update platformio.ini - hotfix for HUB75 build 2024-07-18 14:56:49 +02:00
Frank
5b406e5500 build 2407171 2024-07-17 21:51:37 +02:00
Frank
0f6f6e3065 SPI speed: add MAX (40Mhz) and OVER (60Mhz)
experimental
2024-07-17 21:50:53 +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
Frank
afa6e31ddd GEQ 3D: improve display for small panels
provides a bit more space for the "laser" when panel height is below 18.
2024-07-17 16:15:29 +02:00
Frank
2ba6350cbd GEQ 3D bugfixing and minor improvements
* prevent loss of projector when changing segment witdth (mirror).
* prevent unsigned wrap-around "0 -1" for projector
* use aux0 and aux1 segment vars (use them as signed)
* change default NUM_BANDS to 50% - better for smaller panels
* if less than 16 bands : map to full range instead of only showing lower frequencies - same behavious as GEQ 2D.
2024-07-17 15:24:21 +02:00
Frank
13dd7f3407 fixing a possible drawLine with x < 0 in GEQ 3D 2024-07-17 12:44:35 +02:00
Frank
40c2ef4e98 GEQ 3D robustness improvements
* require at least a 3x3 setup
* make sure that NUM_BANDS is limited by available columns
* avoid drawing with negative Y
* slightly reduce default "front fill", so that "borders" has a visible effect when running with defaults
2024-07-17 12:29:15 +02:00
Frank
14f286fc8b increase MAX_LEDS_PER_BUS to 8464 (92x92)
previous limit was 2048 (const.h) or 4096 (settings_leds.htm). Some busses like HUB75 or Network are abled to handle all LEDs on one connection.
2024-07-17 12:08:31 +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
bb7b4b2f79 Tweak SmartMatrix build flags - smaller image size and brighter output 2024-07-17 09:29:15 +01:00
Will Tatam
2867fa6cef Set default name 2024-07-17 09:00:19 +01:00
Troy
6808572907 doSoft fix for GEQ 3D 2024-07-16 19:05:11 -04:00
Troy
7b8d025a24 GPL3 License for GEQ 3D 2024-07-16 18:46:23 -04:00
Frank
9260111cd7 use drawLine for 1D2D mapping modes
thanks @troyhacks for providing the idea.
2024-07-16 23:22:50 +02:00
Frank
9bcc5da132 code cleanup
- removed commented-out code
- reduced blank lines
2024-07-16 20:48:15 +02:00
Frank
7a83f1759d removed a/b testing via Reverse X (segment option) 2024-07-16 20:26:52 +02:00
Frank
98bd7acf1a Merge pull request #143 from MoonModules/3DGEQ
3D GEQ, plus performance improvements when drawing lines.
2024-07-16 20:03:46 +02:00
Frank
4051d5ddd8 increase limit for FX string: 127 --> 191 bytes 2024-07-16 18:40:11 +02:00