esp32-Async-FastLED-Audio
esp32-Async-FastLED-Audio copied to clipboard
Async version of Jason Coon's esp8266-esp32 Fastled Webserver. AP and STA mode at the same time
ESP32 FastLED Async Web Server with Audio, AP and STA mode at the same time!
Work in progress ESP32 port of:
- https://github.com/jasoncoon/esp32-fastled-webserver
- https://github.com/jasoncoon/esp8266-fastled-audio
- https://github.com/jasoncoon/esp32-fastled-webserver
Control addressable LEDs with an ESP32 via a web browser over Wi-Fi.
Features
Currently Working:
- [x] DemoReel100 patterns
- [x] MSGEQ7 Integration / Audio
- [x] Static web app file serving from SPIFFS
- [x] Ability to adjust these settings via the HTTP REST API:
- [x] power on/off
- [x] brightness
- [x] pattern
- [x] autoplay on/off
- [x] autoplay duration
- [x] speed
- [x] palette
- [x] auto palette cycling
- [x] palette duration
- [x] solid color
- [x] twinkle speed/density
- [x] fire cooling/sparking
- [x] Setting storage in EEPROM
- [x] AP Mode with Station mode
- for now on AP mode, you need to go to 192.168.1.1/index-ap.htm to load the offline javascript files.
Currently Lacking:
- [ ] More Audio Patterns
- [ ] Fixed Audio Patterns
- [ ] WebSockets for automatically refreshing/syncing web clients
- [ ] Bluetooth Port
- [ ] Bluetooth and Wifi Port
- [ ] AP Mode with Station mode default routing website loading ( index.htm on AP/STA mode)
- [ ] Sam's multi-core support
- [ ] Freezing Stopped/ Core dumps.
- commenting it out removes these issues.
- issue is in async/Wifi(also exists in Webserver.h) and how fastled and wifi access the core. causes core dumps and other issues.
Requirements
Hardware
- Optional
- MSGEQ7 for Audio Support. with a microphone
- Good Starter ESP32_FFT_Audio_LEDs
- Potentiometer
- push button
- MSGEQ7 for Audio Support. with a microphone
Example circuit.
Ours uses:
- MSGEQ7_AUDIO_PIN 34
- MSGEQ7_STROBE_PIN 26
- MSGEQ7_RESET_PIN 27
https://github.com/debsahu/ESP32_FFT_Audio_LEDs

https://github.com/debsahu/ESP32_FFT_Audio_LEDs
ESP32 Development Board
I used an Esp32 Node32s, the cheap one on amazon.
Adafruit HUZZAH32 – ESP32 Feather Board
or
or
An ESP32 development board of your choice
Addressable LED strip
Other hardware:
- 3.3V to 5V Logic Level Shifter (required if LEDs "glitch")
- Octo Level Shifter FeatherWing (tidy level shifter PCB)
Recommended by Adafruit NeoPixel "Best Practices" to help protect LEDs from current onrush:
Software
Libraries
- FastLED
- ~~samguyer/FastLED~~ uses main FastLED Library
- sams branches are normally pushed to FastLED master
- ESP32 Arduino Libraries & Tools
- ~~ESP8266/ESP32 WebServer~~ replaced by Async
- ESPAsyncWebServer
- Async TCP Library for ESP32 need both for ESP32
- OneButton.h
SPIFFS fix
To fix an issue with serving files from SPIFFS over the web server, I used Yves BAZIN's fix here: https://github.com/hpwit/lib
Copy libspiffs.a to the ESP32 tools directory:
\Documents\Arduino\hardware\espressif\esp32\tools\sdk\lib\libspiffs.a
And copy esp32fs.jar to the Arduino tools directory:
\Documents\Arduino\tools\ESP32FS\tool\esp32fs.jar
