esp32-Async-FastLED-Audio icon indicating copy to clipboard operation
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
    • Potentiometer
    • push button

Example circuit.

Ours uses:

  • MSGEQ7_AUDIO_PIN 34
  • MSGEQ7_STROBE_PIN 26
  • MSGEQ7_RESET_PIN 27

https://github.com/debsahu/ESP32_FFT_Audio_LEDs hw_wiring
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

Adafruit HUZZAH32 – ESP32 Feather Board

or

WEMOS LOLIN D32

or

An ESP32 development board of your choice

Addressable LED strip

Adafruit NeoPixel Ring

Adafruit NeoPixel Ring

Other hardware:

Recommended by Adafruit NeoPixel "Best Practices" to help protect LEDs from current onrush:

Software

Libraries

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