* 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...)
index.js:
- add callNode
- populateNodes more info and button calling node
remove fetchAndExecute from artifx.js (use the one in index.js) and add parms parameter
index.css: make #nodes div 980px wide
* UM BH1750 adjustments to use new MM features
* UM BH1750 check sensor status before tryig to read new value (avoids blocking LED updates)
* UM temperature: ensure that measurements continue with many LEDs running (strip.isUpdating() will be true all the time)
* all usermods: solved compile problems on 8266
Use MM specific features in SHT usermod:
* Join global I2C bus with pinManager.joinWire()
* allow to compile without MQTT
* use extended Usermod class features
* prevent sensor starvation when running with > 600 LEDs
* use size_t instead of uint16_t -> prevents random behaviour (corruption) in case that JSON files get larger than 64Kbytes.
* use a constant for max large file space (was UINT16_MAX)
* reduced the scope of some functions and variables to "static" - avoids name clashes and may support better optimization by the compiler
* FastLED 3.5.0 #master (up to 50% faster)
* All ESP32 env use NeoPixelBus 2.7.3 (slightly faster)
* Weather usermod: small update, as fastLED wants an explicit conversion from CRGB -> uint32_t
* weather usermod: avoid using palette color #0 = black
WLED was using uint16_t internally to index files, which leads to random behaviour when the real filesize is above 64Kb.
Better to use size_t which is the "right" type that can hold the largest possible size.
* 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)