Blog

DIY a ChatGPT Voice Assistant Using ESP32-Based Hardware — AtomS3R and Atomic Echo Base

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

 

Source: AguacaTEC
Author: TitoTB
-->

Activate Assist with M5Stack CoreS3SE in Home Assistant

 

3. Importing Flashing Algorithms and Firmware

Download the algorithm package below. This package, along with the firmware, is imported into the host device and used to match different chip models during flashing. Some algorithms are preloaded in the firmware, while manual import allows for additional algorithm support. Import methods vary by device—refer to the details below.

algorithm


• Virtual USB Drive Import
This method is currently only supported for CoreS3.
Extract the algorithm package and copy it to the CoreS3 virtual USB drive. Create a program folder in the root directory to store the firmware files (hex/bin) for flashing.

• MicroSD Import
This method is currently only supported for Core2.
Extract the algorithm package and copy it to the MicroSD card. Create a program folder in the root directory to store the firmware files (hex/bin). The directory structure is the same as the CoreS3 virtual USB method.

• Web Import
This method works for both Core2 and CoreS3. Imported data is automatically saved to the device's flash storage partition. (Note: For Core2 with an SD card, files are stored on the SD card. For CoreS3, safely eject the virtual USB drive before importing via the web.)
Power on the device to enable its AP hotspot. Connect your computer to the hotspot and visit 192.168.4.1 in a browser. Click Program to navigate to the file upload page, then upload the algorithm and firmware files.

4. Device Connection

The DAPLink pin mappings for the firmware are as follows:

For example, to update the firmware of a Unit EXT.IO2, locate the programming pads after opening the device casing and connect them according to the pin mapping above. If contact is unstable, tilt the Dupont wire pins to ensure proper connection.

5. Starting the Flashing Process

After importing the algorithms and firmware, the device will display available options upon startup. Select the algorithm and firmware matching your target device. Click Idle, then Busy to begin flashing. (Note: Some chips, like STM32F0xx series, may require pressing Busy twice.)

6. Using with Module Bus

For daily DAPLink debugging, the Module Bus is highly recommended for easier wiring. It extends the MBus interface to the board's edge and includes two sets of 2.54-15P 90° headers for seamless Dupont wire connections.

Why M5 DAPLink is a Game-Changer

• No extra hardware needed – Your M5 device becomes a portable STM32 programmer.
• Works offline – No need for a PC once set up.
• Flexible import methods – USB, SD card, or web upload.
• Perfect for fieldwork and education – Quick firmware updates anywhere.

With M5 DAPLink, you turn ideas into reality faster—no hassle, no complicated setups. Ready to give it a try? Download the firmware today and start flashing like a pro!

-->

Unlocking the Power of M5 DAPLink: Offline STM32 Programming Made Easy

Integrate the M5Stack Air Quality Kit with Home Assistant

Building Modular IoT Systems: Advantages of Stackable Designs

RS485 Communication in IoT: Bridging the Gap Between Devices

What is ESP32 CAM Used For?

What does a CO2 sensor do?

Building with Blocks: Core2 - Unleashing Endless Expansion with ESP32

How to Erase ESP32 Flash Memory

Step-by-Step Guide: How to Program ESP32 with Arduino IDE?

Stack-chan's Journey: How It Became a Beloved Robot and Created a Subculture