The demo code for [XTronical]’s ESP32-based SD card music player is not even 40 lines long, though it will also require a few economical parts before it all works. Nevertheless, making a microcontroller play MP3s (and other formats) from an SD card is considerably simpler today than it was years ago.
Part of what makes this all work is I2S (Inter-IC Sound), a format for communicating PCM audio data between devices. Besides the ESP32, at the heart of it all is an SD card reader breakout board and the MAX98357A, which can be thought of as a combination I2S decoder and Class D amplifier. The ESP32 reads audio files from the SD card and uses an I2S audio library to send the I2S data stream to the MAX98357A (or two of them for stereo.) From there it is decoded automatically and audio gets pumped though attached speakers.
It’s amazing how much easier audio is to work with when one can take advantage of shuffling audio data around digitally, and the decoder handles multiple formats with an amplifier built in. You can see [XTronical]’s ESP32 player in action in the video embedded below.
Small microcontrollers can pack quite a punch. With the right code optimizations and proper use of the available limited memory, even small microcontrollers can do things they were never intended to. Even within the realm of intended use, however, there are still lots of impressive uses for these tiny cheap processors like [Lukasz]’s audio amplifier which uses one of the smallest ATtiny packages around in the video embedded below.
Since the ATtiny is small, the amplifier is only capable of 8-bit resolution but thanks to internal clock settings and the fast PWM mode he can get a sampling rate of 37.5 kHz. Most commercial amplifiers shoot for 42 kHz or higher, so this is actually quite close for the limited hardware. The fact that it is a class D amplifier also helps, since it relies on switching and filtering to achieve amplification. This allows the amplifier to have a greater efficiency than an analog amplifier, with less need for heat sinks or oversized components.
All of the code that [Lukasz] used is available on the project site if you’ve ever been curious about switching amplifiers. He built this more as a curiosity in order to see what kind of quality he could get out of such a small microcontroller. It sounds pretty good to us too! If you’re more into analog amplifiers, though, we have you covered there as well.
[Boolean90] needed an amplifier for a subwoofer, and had a lot of parts sitting around in a scrap bin. His project, a Class D sub amp made out of scrap, is a great example of what you can build with the right know-how and a very large pile of junk.
With digital logic and PWM chips, a Class D amp is one of the simpler ways to get a lot of amplification easily in an efficient package. It’s really not that complicated; an audio signal is turned into a PWM’d square wave, this is sent out to a Mosfet bridge, and finally out to the speaker.
Most Class D amps have a switching frequency of hundreds of kilohertz to the Megahertz range, but since this is an amplifier for a subwoofer that has a cutoff frequency of about 1kHz, the switching frequency doesn’t need to be quite as fast. [Boolean] is using a 50kHz carrier frequency; it’s more than high enough to recreate low frequencies.
With the completed project, [Boolean] has an extremely loud amplifier that has around 75-150W of output power. The subwoofer is only rated for 200W, but with the volume [Boolean] is getting, this isn’t an amp he’ll be rebuilding anytime soon.
Hang around in any of the many guitar or audiophile forums or discussion boards for long enough, and eventually you’ll come across the arguments over amplifier topologies. One of the more interesting and useful of these classes of amplifier is class d – they’re extremely efficient and when well designed can sound pretty good. [Afrotech] is here to show you how they work, and how to build a 15 Watt amp using a $3 class d amplifier chip.
The very definition of an amplifier is taking a low power signal and transforming it into a high power signal. A great way to modulate a high power signal very quickly is by modulating a square wave with pulse width modulation. A class d amplifier takes a low power input signal, uses it to modulate the duty cycle of a high power square wave, and with a little filtering, amplifies the low power input.
To demo this, [Afrotech] used TI’s TPA3122 class d amplifier chip. It’s a pretty cheap chip for being a 15 Watt stereo amplifier, and the circuit is simple enough to build on a breadboard. With a few caps, resistors, and a pair of inductors, [Afrotech] built this one-chip amplifier that’s capable of powering some pretty big speakers. It’s also very efficient – no heat sink required.
Although class d amps are extremely efficient. there are a few people out there that say because the amplifier is basically a filtered square wave, you’ll be able to hear a difference in the audio over class a or class ab amplifiers. This led to the development of class t amplifiers, basically a class d amp with a higher switching speed (Megahertz for class t, a few hundred kilohertz for class d). Still, if you need a cheap amplifier for a DIY boombox or any other high power application, you could do a lot worse than a simple class d amp.
In one of [Hans Peter]’s many idle browsing sessions at a manufacturer’s website, he came across a very cool chip – a 10 Watt class D amplifier chip. After the sample order arrived, he quickly put this chip in a box and forgot about it. A year or so later, he was asked to construct a portable boom box kit for a festival. Time to break out that chip and make a small amplifier, it seems.
The chip in question – a Maxim MAX9768 – is a tiny chip, a 24-pin TQFP with 1mm pitch. Hard to solder freehand, but this chip does have a few cool features. It’s a filterless design, very easy to implement, and perfect for the mono boombox project he was working on. A simple, seven component circuit was laid out on a breadboard and [Hans] got this chip up and running.
For the festival, a breadboarded circuit wouldn’t do. He needed a better solution, something built on a PCB that would work well as a kit. The requirements included the MAX9768 chip, a guitar preamp, stereo to mono summing, and through-hole parts for easy soldering. The completed board ended up being extremely small – 33.6mm by 22.5mm – and works really great.
After the festival, [Hans] found a 20 Watt chip and designed an all-SMD version of the board. Just the thing if you ever want to stuff a tiny amplifier into a crevice of a project.
If you’re looking for a DIY amplifier project made with a minimum of parts, this is the build for you. [Rouslan] created a 70 watt class D amplifier using an ATtiny45 and just a few dollars worth of additional components.
Aclass D amplifier simply switches transistors of MOSFETs on and off very rapidly. By passing the signal produced by these MOSFETs through a low pass filter and connecting a speaker, a class D amp is able to amplify a signal very efficiently. Usually, these sort of amp builds use somewhat esoteric components, but [Rouslan] figured out how to use a simple ATtiny microcontroller to drive a set of MOSFETs.
In [Rouslan]’s circuit, the audio signal is passed into the analog input of an ATtiny45. Inside this microcontroller, these analog values are sent to the MOSFETs through a PWM output. [Rouslan] threw in a few software tricks (explained in revision 2 of his build) to improve the sound quality, but the circuit remains incredibly simple.
[Rouslan] posted a video going over the function of his ATtiny amp, and from the audio demo (available after the break), we’re thinking it sounds pretty good. Amazingly good, even, if you consider how minimalistic this 70 watt amp actually is.
[Ben Laskowski’s] been working on a Class-D audio amplifier for several months. What you see above is the most recent version of the amp. A class-D amplifier uses transistor switching (or in this case MOSFET switching) to generate the pulse-width-modulated signal that drives the speaker. This is different from common amplifiers as it doesn’t generate the kind of heat that traditional amplifiers do, making it much more efficient.
After the break you can hear it demonstrated. It’s operating off of a single-supply laptop brick and we do hear a bit of a hum coming through the system. Still, we’re quite pleased at the power and quality the small board can put out. Take a look at a post from November to get a handle on what went into development. If you still hunger for more details, [Ben’s] shared the bulk of his prototyping materials in the github repository.