Close

Building a Testbed for getting Audio Out

A project log for OpenMote: Arduino-Compatible Controller for Makers

Transform Your Controller Shell into a Versatile Tool for Home Automation, Gaming, and DIY Projects

gangwa-labsGangwa Labs 07/15/2024 at 23:510 Comments

One of the more difficult things we've had to deal with was the loss of the DAC on the ESP32-S3 framework. Without an onboard DAC we've had to get creative with driving the speaker on OpenMote. We started out with a MAX98357 a very popular I2S DAC + AMP combo IC that manages all things mono speakers. However this component was proving to be unreliable from our PCBA supplier, they were pricey and stocked in scary short numbers.

To solve this problem we dove into how to get an analog signal from the ESP without having it be an actual analog signal. This lead to the discovery of PDM and sigma delta modulation. Special shoutout to @atomic14 (Chris Greening) for his illuminating blog post about how to drive a speaker from an esp32-s3 without the need for an external DAC. 

After doing some research on amp and looking at Espressif's own documentation and guides we found an active amp that uses a TL07x. A few hours later and we've whipped up a testbed for the active amp and a microSD card slot to test all our audio needs. On this testbed we also included a 3.3V LDO to test the difference in volume from the speaker between 3.3v and 5v. Lastly we also included a little notch near the USB-C port to remove the need to clip a little piece of plastic on the old game controllers.

Discussions