* improves robustness of the Matrix effect, by dynamically adjusting the "reference color" used to identify "falling code" head pixels.
* a bit faster, as I've removed the need to scan all pixels a second time for "black screen" detection.
Its still not perfect, and the main loop could be simplified a lot by leveraging on the fact that all changes actually happen in the top row, and "falling" is actually just moving everything down by one pixel.
this is a band-aid fix for random crashes when switching between presets with multiple segments - crossfade disabled.
!! adding type initializers fixed it for me on -S3, however I still see (less frequent) crashes on esp32, due to heap corruption.
It took me hours to get a meaningful stackdump:
assert failed: heap_caps_free heap_caps.c:360 (heap != NULL && "free() target pointer is outside heap areas")
Backtrace: 0x40084ee1:0x3ffb2570 0x4008e341:0x3ffb2590 0x40094709:0x3ffb25b0 0x4008534a:0x3ffb26e0 0x40094739:0x3ffb2700 0x400e9037:0x3ffb2720 0x400e917c:0x3ffb2740 0x400eaeeb:0x3ffb2760 0x40117ec5:0x3ffb27c0 0x401184ea:0x3ffb2800 0x4013509d:0x3ffb2820
#0 0x40084ee1:0x3ffb2570 in panic_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/panic.c:402
#1 0x4008e341:0x3ffb2590 in esp_system_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/esp_system.c:128
#2 0x40094709:0x3ffb25b0 in __assert_func at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/newlib/assert.c:85
#3 0x4008534a:0x3ffb26e0 in heap_caps_free at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/heap/heap_caps.c:360
(inlined by) heap_caps_free at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/heap/heap_caps.c:345
#4 0x40094739:0x3ffb2700 in free at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/newlib/heap.c:39
#5 0x400e9037:0x3ffb2720 in Segment::deallocateData() at wled00/FX_fcn.cpp:189
#6 0x400e917c:0x3ffb2740 in Segment::resetIfRequired() at wled00/FX_fcn.cpp:206
(inlined by) Segment::resetIfRequired() at wled00/FX_fcn.cpp:203
#7 0x400eaeeb:0x3ffb2760 in WS2812FX::service() at wled00/FX_fcn.cpp:1216 (discriminator 2)
#8 0x40117ec5:0x3ffb27c0 in WLED::loop() at wled00/wled.cpp:115 (discriminator 3)
#9 0x401184ea:0x3ffb2800 in loop() at C:/src/wled00/wled00.ino:20
#10 0x4013509d:0x3ffb2820 in loopTask(void*) at C:/Users/user/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50
ELF file SHA256: 18c20b536f4c6ef4
commit 84148ad07a
Author: Blaz Kristan <blaz@kristan-sp.si>
Date: Sun Sep 3 12:34:17 2023 +0200
Implement palette colors
commit af3c8f66f7
Author: Blaz Kristan <blaz@kristan-sp.si>
Date: Tue Aug 1 18:18:41 2023 +0200
revert wled00.ino
commit 3097a1b17e
Author: Blaz Kristan <blaz@kristan-sp.si>
Date: Tue Aug 1 18:13:37 2023 +0200
minor aesthetic fixes
commit 54b80f74b2
Author: Blaz Kristan <blaz@kristan-sp.si>
Date: Tue Aug 1 18:09:32 2023 +0200
remove unused variable
commit 9a78d28cd7
Merge: 56a74bc51ed81793
Author: Blaz Kristan <blaz@kristan-sp.si>
Date: Tue Aug 1 18:08:29 2023 +0200
Merge branch 'main' into PJH_ADD_Linearbounce
commit 56a74bc54c
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sat Aug 15 12:34:13 2020 -0500
Update FX.cpp
Added the improvements suggested by Gregor Hartmann
commit a20358b61b
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sun Jul 12 08:33:48 2020 -0500
Adding 2 ball track modes
With and without collisions
commit 341d9d1697
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sun Jul 5 14:55:14 2020 -0500
Update FX.cpp
Still 1 bug to fix - this was a test.
commit 9cee424383
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sun Jul 5 14:53:14 2020 -0500
Update FX.cpp
commit 37cb51cfd6
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Thu Jul 2 14:16:25 2020 -0500
Adding Collision
A couple of bugs still need sorting
commit 84b7bfb989
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sun Jun 28 19:59:46 2020 -0500
update for lost balls
Added some protection - so that when intensity is lowered and raised some time later balls that have moved way off the track are recovered.
commit 04d17e4839
Author: pjhatch <66844564+pjhatch@users.noreply.github.com>
Date: Sun Jun 28 19:43:56 2020 -0500
Added Ball Track V1
In this version the balls bounce of the edges and do not interact with one another.
bracket was on wrong position, resulting in this warning:
wled00/set.cpp:357:79: warning: value computed is not used [-Wunused-value]
strlcpy(mqttGroupTopic, request->arg(F("MG")).c_str(), MQTT_MAX_TOPIC_LEN)+1;