As you probably know the M5 Stack Atom Echo uses an ESP32-PICO-D4, this little device has a built in Microphone/Speaker/Push Button/Bluetooth (BLE/BR/BTE) onboard Addressable LED/IR Sender. The device is very small and the esp32 chip is 4MB and is ideal for WLED sound reactive code to run on.
I had a “google fu” session and there wasn’t much info around for flashing WLED to this, so I just ended up making a dump of my chip and saving the factory firmware that it came with and noticed the default partition layout was rubbish for wled to run on.
Anyway I have created a bin file for those that want to get up and running with wled quicly for this device. Inside the bin the partition layout is as follows:
Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x160000,
app1, app, ota_1, 0x170000,0x160000,
spiffs, data, spiffs, 0x2D0000,0x120000,
coredump, data, coredump,0x3F0000,0x10000,
There’s pleanty room in app0 to run wled code + the spiffs and NVS partitions are good to store our data in and we can use the OTA update feature :-).
Next, in the bin dump I already mapped the GPIO’s to use the mic with wled, but for those that want to know the mic is I2S PDM based and runs on these pins: SD pin 23/WS pin 33/SCK Pin 19.
Onboard top push button is mapped to pin 39 and the onboard LED is type SK6812 and has GRB colour order and is mapped to GPIO pin 27.
In the dump I provided I used: WLED_0.15.0-b3_ESP32_audioreactive, this can be updated from the wled security and update page in the wled web interface when a new version is released. I’ve posted a bin file here for those that just want to flash it and be done:
Download Link for 4MB flash Dump:
https://mega.nz/file/ogQyRYJA#jZnazWw4FBEBj6IONEdlrT9RXZGdLBXYklf8JhPNbbs
Flash Command for esptool:
esptool -b 115200 --port COM6 --chip esp32 write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x0 "Atom-echo-WLED_0.15.0-b3_ESP32_audioreactive.bin"
There’s no need to erase the chip first as this is a full 4MB dump and will overwite all the data on the chip during flashing.
The chip has some GPIO’s you can use to connect your led strip/s to: 21/25/26/32 - you should also make sure the GND pin of your LED strip/s is connected to GND on the Atom Echo.
After flashing, join the WLED Access point on your wifi. The default WLED AP IP address is http://4.3.2.1 - then you can modify to your hearts content.
That’s all folks, enjoy!