Commit Graph

464 Commits

Author SHA1 Message Date
Ewoud
5081cfb891 Bug fix, allocate string to store ledmap name 2023-05-29 19:16:17 +02:00
Frank
6d78e46a47 strip.service() optimization
to have more stable frame times, the minimum delay should be calculated from the time BEFORE strip.show() not after.

This optimization increases CPU load and potentially has negative impact on usermods that check for strip.isUpdating(), so its only enabled with WLEDMM_FASTPATH.
2023-05-26 23:37:01 +02:00
Frank
9cb6189611 minor speedup for 2D
* robustness: Segment::height() should never return 0
* Segment::XY(), Segment::virtualWidth() and Segment::virtualHeight() declared inline in fx.h. The compiler will always inline these functions now, avoiding overhead of call/return. "Knowing" the function body might also enable other optimizations.
--> up to 10% speedup in 2D effects.
2023-05-26 23:12:49 +02:00
Frank
71153ee832 small debug improvements
- don't set -DNDEBUG -> this flag is "not recommended"
- minor change in deserializeMap() WLED_DEBUG code
2023-05-25 21:50:44 +02:00
Frank
d8726293bf Merge remote-tracking branch 'upstream/main' into mdev 2023-05-22 02:21:23 +02:00
Frank
fc193408d8 (experimental) use malloc/realloc for customMappingTable
if this works better, we should cherry-pick it into mdev.
2023-05-21 19:38:04 +02:00
Frank
894fdce4b5 Merge remote-tracking branch 'upstream/main' into mdev 2023-05-21 15:21:22 +02:00
Ewoud
ef12aaa60b Temp fix for leds array crashes: size fixed to 10000pixels/30000bytes 2023-05-17 15:07:42 +02:00
Ewoud
175375e30d Merge branch 'mdev' into audio_fastpath 2023-05-16 16:02:47 +02:00
Ewoud
21c7347296 Minimal (de)allocs on customMappingTable (only grow, not shrink) 2023-05-16 15:13:30 +02:00
Ewoud
b51972fe41 Merge remote-tracking branch 'origin/mdev' into mdev 2023-05-16 13:12:40 +02:00
Ewoud
d6bc9967d0 Support for large ledmaps
optimize jMapC, enumerateLedmaps and deserializeMap
2023-05-16 13:12:30 +02:00
Frank
6d23eb6874 improve robustness when heap is low
* customMappingTable: allocate using calloc instead of new (new will throw exception if nor enough heap)
* fixing a few minor memory leaks
* ws.cpp: catch out-of-memory in sendLiveLedsWs
* ws.cpp: change interval to 80ms (120 ws very slow...)
2023-05-15 21:15:24 +02:00
Blaz Kristan
9f6278ae8a Bugfix.
- disbled transitions/crossfade prevented segment off
2023-05-14 20:29:26 +02:00
Blaz Kristan
380b63a255 Bugfix.
- disbled transitions/crossfade prevented segment off
2023-05-14 20:27:54 +02:00
Ewoud
fede3dd54c Merge remote-tracking branch 'upstream/main' into mdev 2023-05-11 17:39:12 +02:00
Ewoud
ca5a54bb72 Merge branch 'mdev' into audio_fastpath 2023-05-04 17:52:21 +02:00
Ewoud
642dbfed85 GFX default on, if set off it stays off (until page refresh) 2023-05-04 17:51:33 +02:00
Frank
7d0e627e14 some effect optimizations
* getpixelcolor: attribute pure - it reads memory, but does not write
* some optimizations for SEGMENT.blur() and SEGMENT.fadeToBlackBy()

* FX.c:pp remove double calls to blur() and fade_out()
* FX.cpp: SEGMENT.setUpLeds() added to effects, to enable LED buffering (safe some time because getPixelColor does not need to access NeopixelBus)

* a few other optimizations to safe time and avoid "expensive" operations
* set I2C bus speed to 400kHz (default is 100Khz)

* a few other small optimizations and tweaks
* pio: esp32 V4 builds use "patch5" toolchain version, which contains a few bugfixes especially for memory management.
2023-05-03 20:33:23 +02:00
Frank
40c96c14f5 a bunch of smaller speedups to core functions
*  make local functions "static"
* use fast_ int types where possible
* use native min/max instead of MIN/MAX macros. Macros evaluate each parameter TWICE!!
* adding __attribute__((pure)) and __attribute((const)) to help the compiler optimize
* ws.cpp: reduce max "live leds" in fastpath mode
2023-04-30 18:41:30 +02:00
Blaz Kristan
65c584aeda 2D enhancement (internal)
- move() wrapping
- dual addPixelColorXY()
2023-04-27 17:31:55 +02:00
Blaž Kristan
2540a2dfd9 Soap, new 2D effect (#3184)
* Soap, new 2D effect

* Fix Soap FX on matrices with edges < 8 LEDs

* Add palette support to Soap FX

---------

Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
2023-04-27 01:22:33 +02:00
Frank
8e9db0adde more accurate FPS forESP32
the standard millis() code is very inaccurate in the "high FPS" ranges. This replaces it with the esp32 high resolution timer.
2023-04-21 17:34:01 +02:00
Frank
9130e4be54 minor optimization of core LED functions
* use _fast_ integer types in loops - in contrast to "uint16_t" etc, the compiler can leave out range/overflow corrections, so it might run faster.
* fcn_declare.h: revive "WLED_USE_REAL_MATH" option, which can be a bit faster on ESP32.
2023-04-21 16:44:58 +02:00
Frank
00661de7fc accept up to 250 fps target in LED preferences
warning included.
2023-04-21 15:26:35 +02:00
Frank
d90ee766f6 PSRAM: you can have it, and eat it or not eat it
*This patch allows to compile with BOARD_HAS_PSRAM, but not set WLED_USE_PSRAM - reserved pins will be protected, and PSRAM usage will be shown in info.
* if you add `-D WLED_USE_PSRAM_JSON` then PSRAM will be used for some JSON buffers, but not for LEDs and Segments.
2023-04-19 17:58:50 +02:00
Frank
cc9a19bc1d partial merge of upstream/main
* leaving out DotStarHspi5MhzMethod, as we are still on NPB 2.6.9 for eth boards
* leaving out the index.css/index.css changes, as I'm not sure how to merge this.

@ewoudwijma we need to merge the JS and CSS parts when you are back; I'll stay with our MM version for now.
2023-04-14 19:53:04 +02:00
Will Tatam
cc25a21bcb Merge branch 'mdev' into audio-palette-updates 2023-04-14 18:28:43 +01:00
Frank
10ca7c83ca enumerateLedmaps: prevent buffer overflow
make sure that bounds of char fileName[33] are not exceeded by sprintf.
2023-04-14 18:33:07 +02:00
Frank
4a3bc486d0 two more "shadowed locals"
In these case, there seem to be no bug, but  simply renaming the "inner" variables improves code readability.
2023-04-14 13:09:25 +02:00
Ewoud
df4be5550f Net Debug = Net print and tablet pc mode on 1024 2023-03-27 14:47:13 +02:00
Ewoud
5611a54a1a Merge remote-tracking branch 'upstream/main' into mdev 2023-03-26 21:19:11 +02:00
Blaz Kristan
13678cb8d5 Add adjustable Random Cycle time.
- solves #3147
2023-03-25 21:28:30 +01:00
Ewoud
a66274d532 Random Cycle -> Random Smooth + netdebug/serial bugfix 2023-03-24 15:36:00 +01:00
Ewoud
8485be27f2 Merge remote-tracking branch 'upstream/main' into mdev 2023-03-21 11:39:30 +01:00
Ewoud
5ac9ffa073 Harmonize ledmap and jmap
ledmap: no lm prefix

jmap:
- also json extension (instead of jmap)
- also support json object with json array embedded:

{"n":"snake32"
,"width":32
,"height":32
,"map": []
}
2023-03-17 15:44:23 +01:00
Ewoud
e3e5825618 Simplification of ledmap width and height segment settings
(no recreation of panels anymore so back to default shows original)
2023-03-17 13:44:52 +01:00
Ewoud
a0576ba591 restore MM functionality to not reset segments if 2D settings change!!!
customeffects.js:
- rename downloadCEFile to downloadGHFile
- downloadGHFile: add GH ledmaps folder

FX_fcn.cpp and set.cpp:
- change makeAutoSegments with resetSegments(true)
2023-03-13 21:35:48 +01:00
Ewoud
2f024568de Fix for smaller number of pixeld than matrix size.
Borrowed from upstream / onepx-segment
2023-03-11 21:18:21 +01:00
Blaz Kristan
7c186e4fcc Fix for smaller number of pixeld than matrix size. 2023-03-11 15:03:28 +01:00
Ewoud
9f282f831e GEQ: even distribution of bands and small changes
FX.cpp: GEQ: even distribution of bands
FX_fcn: tiny change
wled.cpp: setupMatrix also if loadedledmap != 0
ws.cpp: replace getLengthTotal by width * height (for ledmaps)
2023-03-11 13:59:23 +01:00
Blaz Kristan
763b64cc57 Combat low memory condition on ESP8266. 2023-03-10 15:20:50 +01:00
Ewoud
c16532126a Ledmap refactors
Refactor ledmap in index.js and FX_fcn.cpp (remove physical)

WS2812FX::setPixelColor and gPC: check index after ledmap applied
2023-03-09 15:08:26 +01:00
Ewoud
7f7da1c52c Bugfix 2023-03-07 14:02:01 +01:00
Ewoud
10c5d8f20f Refactor setUpMatrix, deserializeMap for ledmaps 2023-03-07 13:56:18 +01:00
Blaz Kristan
ddd32bd600 Multiple fixes.
- compiler warning fixes (gcc17)
- revert min heap size to 8k
- fix form submitting in 2D settings
- remove IRAM_ATTR for ESP8266 core 4.1.0
2023-03-05 22:56:14 +01:00
Blaz Kristan
c151221d12 UI fixes & revert forcing ULTRAWHITE for on/off bus
Reduce min heap for 8266
2023-03-02 18:21:55 +01:00
Ewoud
f7e297160f ledmap file properties: width, length, physical and segment resize 2023-03-01 17:00:49 +01:00
Blaz Kristan
7a2f556682 Bugfix for 1 pixel segment capabilities. 2023-02-28 19:08:41 +01:00
Ewoud
6b659ab52e Add physical ledmap support + tiny changes
index.js, FX_fcn.cpp
- add physical ledmaps (lmPxyz.json)
2023-02-28 17:17:22 +01:00