I don't know how the bad example "-D SR_DMTYPE=-1" made it into platformio_override.sample.ini 🫣
mic type -1 = 255 was never supported by AR, and lead to undefined behavior due to a missing "case" in setup().
Fixed. Its still a stupid build_flags option, but at least now its handled properly.
SR_DMTYPE=-1 will lead to undefined behavior in AR, because for S3 there is no "default" case in the usermod setup(). It should be sufficient to set pins to "-1" if you want to avoid "pin stealing".
esp32S3_PSRAM_HUB75:
* use 16MB partinion.csv (board has 16MB flash, lets use that)
* example how to switch from "compile for small size" to "compile for speed"
adafruit_matrixportal_esp32s3:
* small reordering of lines
* commented out partition for adafruit bootloader, reverted to standard 8MB partitions
* removed obsolete "-D CONFIG_LITTLEFS_FOR_IDF_3_2" => this was only for the old "lorol/LITTLEFS" whic is not used any more in WLED
* commented out "-D ARDUINO_USB_MODE=1", because users have reported that it leads to boot "hanging" when no USB-CDC is connected
* Added buildenv and 32MB partition for esp32s3-WROOM-2 with 32MB flash
* disabled "-mfix-esp32-psram-cache-issue" warning for -S2 and -S3 (only necessary for classic esp32 "rev.1", but harmful on S3 or S2)
forgot to adjust the debug condition in my previous commit.
NB: the condition only shows a debug message when the max wait time was exceeded, which can only happen when line 1692 has waited for the maximum allowed time. ->Is this intended?
the timing logic did not work in case that millis()+100 + frametime rolls over; in this case millis() > maxWait, and waiting would be skipped which might lead to crashes.
-> logic slightly adjusted to be robust against rollover.
* improvements to Aurora FX
- converted to integer math, increasing speed on all ESPs, also shrinks code size
- caching values to avoid repeated calculations
- CRGBW instead or CRGB, adds white channel support when not using palette
- fix for new brightness/gamma handling
* overflow & unsigned fix
- add better support for 1D gifs: use the full gif, row by row, scale if needed
- add blur slider to image FX
- improved safety checks to avoid crashes
- add "fast path" if image size matches virtual segment size
In my previous commit I've overlooked that build_flags from esp32_idf_V4 are inherited by esp32S2, esp32s3 and esp32c3 --> clashed with USB-CTC settings of these boards.
So the correct way to propagate esp32-only flags is to add them in the "lower level" build envs individually.
this flag got lost between 0.15 and 0.16.
Even when NO classic esp32 has USB-CDC., it seems that omitting the flag can cause strange behavior in the arduino-esp32 framework.
* catch some error that would lead to undefined behavior
* additional debug messages in case of errors
* robustness: handle OOM exception from decoder.alloc() gracefully