For those exploring what hardware ChatGPT runs on, the traditional answer involves large-scale cloud infrastructure. However, with the OpenAI API and lightweight microcontrollers like the M5Stack ESP32-based AtomS3R, it’s now possible to build a compact, connected ChatGPT AI device. Paired with the Atomic Echo Base for audio I/O, this setup enables a tiny AI voice assistant capable of real-time voice interaction via Wi-Fi.
In this article, we’ll walk you through how to build your own AI-powered voice assistant using OpenAI—no coding required.
M5Stack AtomS3R
The M5Stack AtomS3R is a compact microcontroller powered by the ESP32-S3 chip, measuring just 24 × 24 mm. It supports Wi-Fi, Bluetooth, and offline voice wake-up, making it ideal for building portable AI voice assistant and IoT applications.
Required Hardware
M5Burner is a tool that enables creators to upload firmware and allows users to flash it onto M5Stack devices. If you haven’t downloaded it before, please select the version compatible with your operating system to proceed.
Software Version | Download Link |
---|---|
M5Burner_Windows | Download |
M5Burner_MacOS | Download |
M5Burner_Linux | Download |
1. Download the OpenAI Firmware
Double click M5Burner > Locate the OpenAI Voice Assistant for AtomS3R Firmware > Click Download.
2. Get Your OpenAI API Key
An API key is required after clicking Download. Visit OpenAI's platform > Complete registration and login > Review pricing for Realtime API and select the package > Navigate to the API Keys section and create a new key
3. Firmware Flashing
I. Input your Wi-Fi connection information and OpenAI API keys in the pop-up window > Hit Next
II. Connect your AtomS3R via USB-C > Press and hold the Reset button for ~2 seconds until the green LED turns on, then release to enter the download mode.
III. Select the correct COM port and click “Start” to start flashing.
Once completed, your device will reboot and connect to OpenAI for real-time voice interaction. You could speak directly to your assistant and receive instant responses.
If you prefer a more customizable approach to integrate the OpenAI into your project instead of downloading the prebuilt firmware from M5Burner, you could visit GitHub for the original source code.
May 9, 2025 – M5Stack, a leader in modular IoT and embedded development platforms, unveils Tab5, a next-generation 5-inch smart touch terminal powered by the advanced 400MHz ESP32-P4 dual-core RISC-V processor. Designed for industrial control, smart home hubs, edge intelligence, and IoT applications, Tab5 offers high performance, versatile interfaces, and seamless connectivity through Wi-Fi 6 and Bluetooth 5.2 in one compact tablet. Combining multimedia capabilities with modular expandability, Tab5 empowers developers to create flexible, scalable solutions for a wide range of industries.
At the heart of Tab5 is the ESP32-P4 dual-core RISC-V processor, running at 400MHz and backed by 32MB of PSRAM and 16MB Flash, delivering robust performance for embedded applications and edge computing. While the ESP32-P4 handles processing tasks, wireless connectivity is provided by the onboard ESP32-C6-MINI-1U module, which supports Wi-Fi 6 and Bluetooth 5.2. Equipped with 3D internal antennas, this module ensures high-throughput, low-latency communication across a wide range of IoT scenarios.
Tab5 features a 5-inch IPS touchscreen with a 1280×720 resolution and a GT911 capacitive multi-touch panel, providing responsive touch interaction and high-resolution visuals for an intuitive user experience. Built-in 2MP camera (1600×1200 resolution) and dual microphones with a speaker enable intelligent interactions such as facial recognition, image processing, and voice commands. The camera interface uses MIPI-CSI to enable HD video capture and edge AI tasks such as object tracking.
Additional onboard features including RESET/BOOT buttons, a BMI270 six-axis IMU for motion sensing, and a Micro SD card slot provide enhanced control, motion tracking, and local data storage—empowering developers to create multi-modal edge applications.
Tab5 is designed for flexibility and scalability with a comprehensive suite of I/O interfaces:
These interfaces ensure seamless integration with the M5Stack hardware ecosystem, enabling plug-and-play expansion through a wide range of functional modules.
Tab5 is available in two variants:
Both models support external NP-F550 lithium batteries, offering flexible deployment options for fixed installations or mobile applications.
Tab5 is engineered to address diverse application scenarios across industries. In industrial settings, it functions as an effective HMI for control panels and data visualization. Its multi-protocol wireless support makes it ideal for smart home hubs and gateways. In education and maker spaces, it supports UIFlow 2.0, Arduino IDE, ESP-IDF and PlatformIO, enabling flexibility for both beginners and advanced developers. With a built-in camera and dual microphones, it also enables AI vision and voice interaction for use cases like smart kiosks and voice-controlled terminals.
“Designed for seamless development, the Tab5 delivers innovation and usability, empowering creators to turn ideas into reality,” said Jimmy Lai, Founder and CEO of M5Stack.
Built to Expand
To further enhance Tab5’s utility, a dedicated keyboard accessory is in development — stay tuned for the full reveal. Designed for seamless integration with the M5Stack ecosystem, Tab5 supports a broad range of functional modules, offering developers the flexibility to tailor solutions across diverse application needs.
Tab5 is now available through M5Stack’s official store and global distributors. For more details, please visit www.m5stack.com.
Today, we’re checking out another great device for running our assistant with excellent performance, and learning how to activate Assist using the M5Stack CoreS3SE.
Index
Well, let's start with the basics. M5Stack is the brand behind well-known devices like the Atom Echo. As I mentioned before, this was the first external device used to interact with Home Assistant. I’m convinced that if you're getting into the world of local assistants, you’re already familiar with it.
But Atom Echo isn’t the only option. M5Stack also makes a variety of ESP-based devices that are easy to integrate with Home Assistant. Think of them like custom ESPHome builds, but without the hassle of soldering, wiring, or configuring components from scratch.
Now that the introduction is done, today I want to introduce you to the M5Stack CoreS3SE, a device that’ll definitely remind you of the ESP32-S3-BOX-3 we looked at recently, as we can also activate Assist with the M5Stack CoreS3SE.
Since the goal of this guide is to activate Assist using the M5Stack CoreS3SE, I’ll go over the differences and similarities I’ve found between the two devices.
Prerequisites
To activate Assist on the M5Stack CoreS3SE, you’ll need:
🥑 If you're setting up Assist, I highly recommend checking out the workshop from the academy to get the most out of it!
Follow these preparation steps to get your M5Stack CoreS3SE up and running:
1. In Home Assistant, go to your ESPHome add-on, click on “New Device”, then “Continue”.
2. Give your device a name (e.g., “Assist”) and click “Next”.
3. For the device type, select “ESP32-S3”. You’ll see a new block for your device appear in the background.
4. Click “Skip”, then click “Edit” on your device’s card. Copy the code that appears and keep it handy — you’ll need part of it later.
5. Head over to the GitHub page linked in the guide, copy the provided code, and replace the original ESPHome code with it.
6. Important: This new code doesn’t include your Wi-Fi or Home Assistant credentials, so you’ll need to manually add them. Specifically, look for the lines from the original code that you copied in step 4 and insert them into the new code.
# Enable Home Assistant API api: encryption: key: "bg6hash6sjdjsdjk02hh0qnQeYVwm123vdfKE8BP5" ota: - platform: esphome password: "asddasda27aab65a48484502b332f" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Assist Fallback Hotspot" password: "ZsasdasdHGP2234"
7. What you need to do is find the corresponding lines in the code (it's at the beginning) and add the corresponding information . This code snippet would look like this:
# Enable Home Assistant API api: encryption: key: "1fPr5BBxCfGiLLPgu/OEILB1T4XUdXN4Sh2pic4mgQk=" on_client_connected: - script.execute: draw_display on_client_disconnected: - script.execute: draw_display ota: - platform: esphome password: "a048862eecd273b682fde5d1a93acc36" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "M5Stack-Cores3Se" password: "uCh6BjJ34Tnl" on_connect: - script.execute: draw_display - delay: 5s # Gives time for improv results to be transmitted on_disconnect: - script.execute: draw_display
8. Now click “Save” and then “Install.” Select “Manual download” and wait for the code to compile. It might take a while, so feel free to do something else in the meantime.
9. Once it’s finished, choose the “Modern format” option to download the corresponding .bin file.
10. Connect the M5Stack CoreS3SE to your computer using a USB-C data cable, plugging it into the port on the left side of the device.
11. Go to the ESPHome page and click “Connect.” In the pop-up window, select your device and click “Connect” again.
12. Click “Install” and select the .bin file you downloaded in step 9. Then click “Install” again to upload it to the device.
13. You may see a message saying “HA not found.” Don’t worry — this is normal. In Home Assistant, go to Settings > Devices & Services, where the device should appear as discovered. Click “Configure” and then “Submit.”
14. That’s it! You can now activate Assist with the M5Stack CoreS3SE. By default, just say “Ok, Nabu,” and it’ll respond using your preferred assistant settings.
Personalized support
As I mentioned in the comparison, the M5Stack CoreS3SE doesn't come with a standard stand, which gives us the opportunity to create one to our liking. For example, this time I wanted to create a simple and elegant stand, taking advantage of the black frame.
⭐ If you have a 3D printer, you can download this stand I designed for FREE from our Patreon page.