Commit Graph

5525 Commits

Author SHA1 Message Date
Troy
6fed9f323c Merge branch 'MoonModules:mdev' into mdev 2024-08-13 16:15:23 -04:00
Troy
340197fd91 Merge branch 'mdev' of https://github.com/troyhacks/WLED into mdev 2024-08-13 12:13:29 -04:00
Troy
38d30723a0 2D Audio Reactive Paintbrush Effect 2024-08-13 12:13:14 -04: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
Will Tatam
e90f8e7f0d DMX Input - reinstate loggers for connection state change 2024-08-10 15:42:30 +01: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
a44aa92c75 playing with Fire2012
* speedup: add functions to only blur rows or columns (50% faster)

* fire2012: tinkering with bur options. Vertical blur only when slider < 64 (faster); extra blur for  slider values >192 (bush burn)
2024-08-09 12:55:04 +02:00
Blaž Kristan
89412b999d Merge pull request #4078 from apanteleev/fire-blur-control
Add a parameter for blur amount in the Fire 2012 effect
2024-08-09 12:19:31 +02:00
Frank
d00b3147b4 Waverly: better slider names
Slider names were misleading.
First slider: fade speed (low values means longer hold times)
Second slider: signal gain (i.e. amplification)
2024-08-08 22:28:14 +02:00
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