- 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!
- 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)
if SR_DEBUG
* Gravimeter: top 2 pixels show samplePeak status (green=peak)
* GEQ top left/right pixels show samplePeak status (green=peak)
I've used this trick so often, let's make it an official debug tool ;)
platformio:
- remove ABL_MILLIAMPS_DEFAULT from build_flags_min, set default 1500 in const.h
- add default in wemos_shield_esp32_4MB_max_base
- add wemos_shield_esp32_16MB_SPM1423_max
arti_wled.h: bugfix use all leds in 2D
usermod_v2_customeffects.h: fill black if call==0
index.js and xml.cpp: bin name: replace one _ by ' ' to enable line wrap in info tab and ota update
- prepare for merging upstream
--> audiorective files should stay the same after merging!
- makuna just release NeoPixelBus 2.7.1 -> use for "V4" build
* Grouping um settings, add pre and post Info, update SR & 4LD settings
Settings_um.htm:
- modify addField (grouping)
- addInfo (pre and post texts)
Add preInfo to audio reactive and 4ld usermod
Extra:
platformio: wemos_shield: add audio reactive usermod and update to alt display
* um settings: cpp: lowercase, js: initcap
* um settings: txt only pre, txt2 only post and initCap as function
* Fix rotary encoder info string
Co-authored-by: Blaž Kristan <blaz@kristan-sp.si>
- hide "Analog Mic PIN" setting if I2S-ADC is not supported by the hardware
- In case of usupported config (PDM or ADC), overwrite dmType with default.
* feat(json): add wifi scanning
Adds wifi scanning to the JSON api at `/json/networks`. The initial
request will trigger a scan, subsequent requests will scan or return the
results depending on the state of the `WiFiScan`.
Add a `Scan` button next to the client ssid input, on click, scan for
networks, and change the input to a select with the found ssids.
Fixes: #1964
* Added option to go back to manual SSID input
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>