M5Stack Atom Echo Coin-Sized Bluetooth Speaker is Powered by ESP32-PICO-D4 SiP

Atom Echo PackageM5Stack has just launched Atom Echo, a coin-sized programmable Bluetooth speaker based on Espressif Systems ESP32-PICO-D4 system-on-package.

The company sent me an early sample to play with before launch… but let’s have a look at the specification before checking the device further.

Atom Echo Specification


  • SiP – Espressif Systems ESP32-PICO-D4 system-in-package with ESP32 dual-core processor @ 240MHz Wi-Fi, BLE 4.0 and 4MB flash
  • Audio
    • 0.5W/NS4168 I2S speaker
    • SPM1423 PDM microphone
  • Expansion
    • 5-pin + 4-pin headers with 6x GPIOs, UART, 5V, 3.3V, GND
    • 4-pin digital Grove header with 2 I/Os, 5V and GND
  • Misc – RGB LED (SK6812), Function (Top – G39 pin) and reset buttons (side), IR LED
  • Power Supply – 5V/500mA via USB-C port
  • Dimensions – 24 x 24 x 17mm (plastic material)
  • Weight – 10 grams

ESP32-PICO Bluetooth Speaker

The Bluetooth speaker is really small, but you may think CNXSoft has big hands and fat fingers so it makes the speaker smaller than it really is, so I also a photo of the device next to an AA battery and a coin.

Coin-Sized Bluetooth Speaker

Yes, it’s that small. The I/O headers are placed underneath the speaker, and we have a neat and convenient pinout diagram right next to the headers.

Atom Echo Pinout Diagram

The 5-pin I2S header with I2S and Mic can not be used because those pins are already connector to the speaker and microphone internally. The header is left for compatibility with other Atom boards and add-ons.


The case will open quite easily so we can have a look at the hardware design. The speaker is on the top section of the enclosure and the top of the board comes with USB-C port, RGB RED, Microphone, as well as reset and function button.

Atom Echo Teardown
Click to Enlarge

The IR LED is on the right of the reset button, or on the right of the FCC sticker on the side of the case.

ESP32-PICO-D4 Bluetooth Audio Board
Click to Enlarge

The other side of the board comes with the Grove and expansion headers, ESP32-PICO-D4 SiP, and a WiFi antenna. You’ll also see the other side of the M.2 thread which you could potentially use to mount the speaker.

Getting Started with Atom Echo

There are various applications for the tiny Bluetooth speaker including a  voice input-output speaker, programmable speaker, voice control, and audio playback. By default, the speaker is pre-loaded with firmware making act as a typical Bluetooth speaker using A2DP protocol. The firmware is mostly open-source (except some audio parts), compiled with ESP-IDF framework, and available on Github together with some Arduino sketches which we may try later.


Just connect the power via USB-C port, and it should show as M5_SPEAKER_T1 in your mobile device or computer. Pairing, and enjoy the music! Sort of… as while audio is fairly clear out of the speaker, the volume is pretty low, much lower than on my phone even after making sure Bluetooth volume is set to the maximum.

Note the LED is red before pairing, and green after, and whenever your phone is connected to the speaker.

The speaker can be programmed with either the ESP-IDF framework or the Arduino IDE. To do so install Arduino Core for ESP32 by adding https://dl.espressif.com/dl/package_esp32_index.json to the Boards Manager URLs into Arduino Preferences, and install esp32 in Boards Manager.

Arduino ESP32 Boards Manager

Then go to the Library Manager to install M5Stack library.

M5stack Arduino Library

After I loaded Reapater.ino sketch from Github it failed to build, but I just had to install FastLED to build the sample successfully.

You’ll also need to select the right board, USB device, baud rate, and programmer.

M5Stack Atom Echo Arduino IDE Settings

There’s nothing called M5Stack Atom Echo, and instead, we need to select M5Stick-C with default settings including 1500000 baud rate, and I had to manually select “Arduino as ISP” programmer.

I could then press the button to record my voice, and release it to listen to the recording.

If you can’t exactly hear the audio playback, it’s because the volume is very low. I had to bring the speaker really close to my mouth to be able to get an audible playback. The program will also pick the noise from the button, so it’s not ideal.

M5stack Atom Echo is impressive by its tiny size, and I hadn’t seen Arduino programmable Bluetooth speakers before, so it’s a good development. But the speaker’s audio level is really low, albeit the sound is fairly crisp, and it sounds even worse the microphone, so I’m not quite sure what practical applications may benefit from the speaker. It’s good to experiment with Bluetooth and Audio on ESP32 though.

M5Stack Atom Echo can be purchased for $9.95 on the company’s online store.

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Notify of
6 months ago

Australia. I love these M5stacks

3 months ago

Is there any example for TTS? Like to convert text input to speech.