Commit Graph

5504 Commits

Author SHA1 Message Date
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
Frank
1f14673f43 workaround for "cannot read properties of undefined. reading 'split'
hmpf ... looks like somewhere deep in WLED, the FX name string gets limited to 127 chars....
2024-07-16 16:08:08 +02:00
Frank
e3b4a08393 soft light option
* bugfix for Borders (did not work with <16 bands)

* new option for soft light: when checked, the left & right edges of top lights are drawn with anti-aliasing on. Costs us 1-2 fps, so I made it optional.
2024-07-16 16:03:19 +02:00
Frank
96584c6c70 better rounding 2024-07-16 15:13:05 +02:00
Frank
e3d27de395 better handling of perspective
drawLine parameter "depth" shortens a line by a fraction - useful for VP perspective (vanishing point)
2024-07-16 13:27:56 +02:00
Frank
9928f5b9ec fixie 2024-07-15 18:27:25 +02:00
Frank
88d12547a4 FX.cpp: scrolling text tag #pow --> #amp
scrolling text: #pow --> #amp
because its ampere, not power.
2024-07-15 18:24:27 +02:00
Frank
6565e716ab GEQ speedup
use drawLine() to draw a complete bar at once. Only possible if _not_ doing colored bars.
2024-07-15 18:14:30 +02:00
Frank
961040849e speedup for pinwheel mapping
fast sPC() in pinwheel mapping -> ~10% speedup
2024-07-15 18:06:25 +02:00
Troy
98c15d7ec0 Borders checkbox 2024-07-15 08:18:42 -04:00
Troy
54f9d4ca6d Borders checkbox for @netmindz
Netmindz likes the borders. Now a check-box to enable.
2024-07-15 08:17:00 -04:00