unfortunately this breaks build for -C3 and -S3
/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/riscv/include/riscv/semihosting.h:75:19: warning: ignoring asm-specifier for non-static local variable 'a0'
register long a0 asm ("a0") = id;
^~
.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/riscv/include/riscv/semihosting.h:76:19: warning: ignoring asm-specifier for non-static local variable 'a1'
register long a1 asm ("a1") = (long) data;
const.h: increase SETTINGS_STACK_BUF_SIZE
audio_reactive, 4ld and usermod (xml.cpp)
- add defaults in settings
index.htm: add moon
settings_sec: add WLEDMM about
settings_um: add <br> so comment can be shown decently
4LD: fixing wrong type for PINs
mpu6050:
- fix "hidden" use of GPIO 15
- restore DEBUG macros (overwritten by I2CDev lib)
- fix not initialized memory problem
- added a few USER_PRINT messages
- do not call pinMode on pin = -1 ([E][esp32-hal-gpio.c:102] __pinMode(): Invalid pin selected)
- support encoder without "C" pin, i.e. no pushbutton function
wled.h:
- Don't use Serial directly -S2 as S2 serial driver is buggy.
- added USER_FLUSH macro
wled.cpp
- replace fluh with FLUSH
- print ArduionoOTA info (if enabled)
wled_server.cpp:
- added userlog info after file upload.
pinn_manager:
- don't show "(default)" is the PIN is actually assigned to HW drivers
- bugfix for getPinOwner()
- add WLED_NUM_PINS constant, to get rid of magic number "50"
- only show I2S defaults when USERMOD_AUDIOREACTIVE is enabled
- added alternate names for SPI pins
- small correction for -C3
* set.cpp: reject non-ADC pins as analog button pins (bugfix)
* pinmanager:
record conflicts
added getOwnerText(PinOwner tag) and getPinConflicts(int gpio)
GPIO | Assigned to | Info
--------|-----------------------|------------
i/o 0 Button !! Conflict with AudioReactive (UM) !! (default) I2S MCLK
i/o 1 debug output Serial TX
i/o 2 ./. (default) LED pin
i/o 3 ./. Serial RX
i/o 5 ./. (default) SPI SS
i/o 13 Button !! Conflict with IR Receiver !!
PIN ALLOC error: GPIO19 for analog button #2 is not an analog pin!
pinmanager ran out out array bounds on -S2 and -S3, as these MCUs have more than 40 GPIO. As consequence, memory was overwriten, and pins > 39 were reported as "allocated" but not "owned".
Thisfixes the problem, by extending internal arrays so that up to 50 pins can be managed.
- better allocation of default pins
- un-flag DMX output (driver hangs)
- un-flag Temperature (usermod setups hangs)
- temporarily un-flag I2C usermods. They also hang during init - probably a different I2C driver is needed. Will investigate later.
fixing some array-out-of-bounds problems that happens on MCUs with more than 40 GPIO (-S2, -S3).
PinManager wrongly reprted the pins as "allocated" but "no owner"!
I have observed crashes (watchdog timeout) so let's warn users ...
E (24101) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (24101) task_wdt: - IDLE (CPU 0)
E (24101) task_wdt: Tasks currently running:
E (24101) task_wdt: CPU 0: FFT
E (24101) task_wdt: CPU 1: IDLE
E (24101) task_wdt: Aborting.
abort() was called at PC 0x40143b6c on core 0
Backtrace:0x4008500d:0x3ffbf28c |<-CORRUPTED
Improvements for debugging GPIO conflicts. HTML UI integration still pending.
* pinManager can be asked for pin owner (String) and pin special purpose (string).
* wled.cpp: show GPIO allocation when compiling with WLED_DEBUG
* pinmanager: show Pin Owner as name when possible.
The results looks like this
GPIO | Assigned to | Info
--------|-----------------------|------------
i/o 0 Button
i/o 1 debug Serial TX
i/o 2 DMX out
i/o 3 ./. Serial RX
i/o 5 ./. SPI SS
i/o 15 AudioReactive (UM)
i/o 16 LEDs (digital)
i/o 17 Relay
i/o 18 ./. SPI CLK
i/o 19 IR Receiver SPI MISO
i/o 21 I2C I2C SDA
i/o 22 I2C I2C SCL
i/o 23 ./. SPI MOSI
i/o 32 AudioReactive (UM)