* 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.
use 4 RMT channels, then I2S#1, then RMT 5-8. This allows to have up to 5 "fast" LED pins.
"Even though the ESP32 has 8 channels of RMT hardware, using beyond 4 has shown to cause sending delays." (https://github.com/Makuna/NeoPixelBus/wiki/ESP32-NeoMethods#rmt)
* 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
* blurz: some visual improvements
* Matripix: improved color smoothness, Color by frequency (instead of volume), option to use sound pressure
* pixelwave: improved color selection, use sound energy instead of volume
* freqwave: some speedups, option to show frequency with "musical scale"
* gravfreq: fixed some math accidents that lead to horrible flickering
* default setting improved for some effects
* 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.
Tool Manager: toolchain-xtensa-esp32s3@8.4.0+2021r2-patch3 has been installed!
Tool Manager: Installing espressif/toolchain-riscv32-esp @ 8.4.0+2021r2-patch3
Error: Could not find the package with 'espressif/toolchain-riscv32-esp @ 8.4.0+2021r2-patch3' requirements for your system 'linux_x86_64'
Error: Process completed with exit code 1.
Tool Manager: toolchain-xtensa-esp32s2@8.4.0+2021r2-patch3 has been installed!
Tool Manager: Installing espressif/toolchain-riscv32-esp @ 8.4.0+2021r2-patch3
Error: Could not find the package with 'espressif/toolchain-riscv32-esp @ 8.4.0+2021r2-patch3' requirements for your system 'linux_x86_64'
* temporarily remove esp32c3dev_4MB_M from nightly builds, as the github action build currently has strange problems with it
* -D WLED_USE_PSRAM_JSON for ESP32 boards, as using PSRAM for LED Buffers and Segment Buffers causes slow-down
*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.
the root cause of the crash is not really clear, as the problem seems to occur randomly, mosr frequent with fresh installations.
This workaround prevents the array bounds violation, by re-using the last valid gGradientPalettes entry.
Modifications from upstream have made the effect kind of boring non-reactive. So we go back to the original effect.
HINT: Effect looks best with _segment_ brightness set to max (use _global_ brightness to reduce brightness as you like).
PlatformIO gives error on codm environments
``Error: Invalid environment name 'codm-controller-0.6'. The name can contain alphanumeric, underscore, and hyphen characters (a-z, 0-9, -, _)``
* moving "pbolduc/AsyncTCP.git @ 1.2.0" on top of lib_deps, to prevent that AsyncTCP 1.1.1 is pulled in (due due dependacies from Aircoookie/ESPAsyncWebServer
* remove duplicate env.lib_deps from -S2 environments
- if log file cannot be created, switch to serial logging
- fixing a broken format string
- usermod_arti: avoid to copy more than what fits into the buffer
* 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.
- check that programName is not too long (fileNameLength-7 is the limit)
- try to fix a memory leak, as programText must be free'd in case of error.
@ewoudwijma please review my changes, I'm not 100% sure I did it right.
* pio.ini: add "-Wshadow=compatible-local" for V4 targets
* pio.ini: fix alignment for 8266 build_flags
* fix one (harmless) case of shadowed vars in MM specific code