genuinequality

Download free music MP3s on genuine quality, the world’s largest online music catalogue, powered by your scrobbles. Free listening, videos, photos, The world’s largest online music catalogue, powered by your scrobbles. Free listening, videos, photos, stats, charts, biographies and concerts. stats, charts, biographies and concerts.

Monday, April 7, 2025

ESP32-A1S Audio Kit

I've had this "audio development kit" based on the ESP32-A1S for some time, but haven't actually done anything with it so far. But I had a query about adding MIDI so dug it out for a quick look. It turns out it isn't actually as easy as it ought to …
Read on blog or Reader
Site logo image Simple DIY Electronic Music Projects Read on blog or Reader

ESP32‑A1S Audio Kit

By Kevin on April 7, 2025

I've had this "audio development kit" based on the ESP32-A1S for some time, but haven't actually done anything with it so far.

But I had a query about adding MIDI so dug it out for a quick look. It turns out it isn't actually as easy as it ought to be!

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

If you are new to microcontrollers, see the Getting Started pages.

ESP32-A1S Audio DevKit

The ESP32-A1S is a curious beast. As far as I can see it is a system-on-module from "AI Thinker" that combines an ESP32 (the original one) with an audio codec. Originally it supported the AC101 but more recent devices now support the ES8388 as I understand things.

Many of the provided IO pins come directly from the ESP32 itself, but there are several others that come from the built-in codec section.

From the module's specification:

  • The main chip uses a low-power dual-core 32-bit CPU with a main frequency of up to 240MHz and a computing capacity of up to 600DMIPS
  • Built-in CodeC audio decoding chip, support local music playback and recording
  • Support two MIC input and Linein input
  • Support headphone and speaker output
  • Built-in 520KB SRAM, external 4M PSRAM
  • Support SoftAP and Station mode
  • Ultra-small 802.11b/g/n Wi-Fi + BT/BLE SoC module
  • Support UART/SPI/I2C/I2S/PWM/ADC/DAC, etc.
  • Support firmware upgrade (FOTA)
  • The antenna supports onboard antenna or IPEX socket output
  • Support a variety of mainstream compression and non-lossless audio formats, including M4A, AAC, FLAC, OGG, OPUS, MP3, WAV, etc.

There is information about these modules and the dev boards that use them, but it is a bit distributed and not always obvious which version of the boards are being discussed.

These are the main references I've found so far for the ESP-A1S itself:

  • The ESP32-A1S module main page: https://docs.ai-thinker.com/en/esp32-a1s
    • Product specification
    • Audio hardware design guide
    • Factory firmware

And for the "AI thinker" ESP-A1S Audio Dev kit that is commonly available:

  • The ESP32 Audio Kit main page: https://docs.ai-thinker.com/en/esp32-audio-kit
    • SDK information
    • Schematic
  • Phil Schatzmann's blog posts on the kit: https://www.pschatzmann.ch/home/2021/12/06/the-ai-thinker-audio-kit-experience-or-nothing-is-right/

This is designed for use with the Espressif Audio Development Framework - https://github.com/espressif/esp-adf - (not to be confused with the original IDF) but I've not spent any time looking into how to use it at the moment.

But here are some references for using the ADF for when I get that far:

  • https://github.com/Ai-Thinker-Open/ESP32-A1S-AudioKit
  • https://github.com/jalakamkiranadspl/esp32-adf-a1s
  • https://github.com/donny681/esp-adf

As I find out odds and ends about this board, I'll start adding them here.

Audio Kit GPIO Breakout

The first thing I had a look at was the GPIO header at the top of the board that seemed quite useful for adding extra circuits (particularly MIDI).

There are two GND and 3V3 pins, TX0 and RX0, and then the following IO pins: IO0, IO5, IO18, IO19, IO21, IO22, IO23. Finally a RST pin.

Unfortunately there are a number of limitations with the use of these pins:

  • IO0, along with IO2, is one of the "strapping" pins and is tied to the BOOT button. There is also a comment in the product specification: "Must be hanging when using internal codec".
  • IO5, 18, 19, 23 are used for the buttons on the board (see schematic extract below).
  • IO21 is linked to some "shutdown" function for the amplifier section.
  • TX0 and RX0 I believe are GPIO1 and GPIO3 respectively.
  • There is no 5V link, so all IO and power is limited to 3V3.

I must admit that considering the number of IO pins on an ESP32, and maybe a few less broken out on the ESP32-A1S, but still plenty, it seems an odd choice to provide an IO breakout with so many of the pins already assigned to a function on the board...

As RX0/TX0 map onto the USB comms port, it is quite useful to be able to use alternative IO pins for serial MIDI if required.

The technique described in my ESP32 Simple MIDI Monitor appears to work fine here for configuring Serial2 for MIDI, although as previously mentioned, only IO22 is actually not used for anything else. In this example, I've configured GPIO22 for RX and a dummy (GPIO20) for TX.

#include <MIDI.h>

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI);

void setup() {
MIDI.begin(MIDI_CHANNEL);
Serial2.begin(31250, SERIAL_8N1, 22,20);
}

Closing Thoughts

To be continued...

Kevin

Comment
Like
You can also reply to this email to leave a comment.

Simple DIY Electronic Music Projects © 2025.
Manage your email settings or unsubscribe.

WordPress.com and Jetpack Logos

Get the Jetpack app

Subscribe, bookmark, and get real‑time notifications - all from one app!

Download Jetpack on Google Play Download Jetpack from the App Store
WordPress.com Logo and Wordmark title=

Automattic, Inc.
60 29th St. #343, San Francisco, CA 94110

Posted by BigPalaceNews at 4:45 AM
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

No comments:

Post a Comment

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Search This Blog

About Me

BigPalaceNews
View my complete profile

Blog Archive

  • November (80)
  • October (105)
  • September (112)
  • August (116)
  • July (96)
  • June (100)
  • May (105)
  • April (95)
  • March (131)
  • February (111)
  • January (104)
  • December (98)
  • November (87)
  • October (126)
  • September (104)
  • August (97)
  • July (112)
  • June (113)
  • May (132)
  • April (162)
  • March (150)
  • February (342)
  • January (232)
  • December (260)
  • November (149)
  • October (179)
  • September (371)
  • August (379)
  • July (360)
  • June (385)
  • May (391)
  • April (395)
  • March (419)
  • February (356)
  • January (437)
  • December (438)
  • November (400)
  • October (472)
  • September (460)
  • August (461)
  • July (469)
  • June (451)
  • May (464)
  • April (506)
  • March (483)
  • February (420)
  • January (258)
  • December (197)
  • November (145)
  • October (117)
  • September (150)
  • August (132)
  • July (133)
  • June (117)
  • May (190)
  • January (48)
Powered by Blogger.