The I2S 3W Class D Amplifier Breakout - MAX98357A an all in one digital audio amp breakout board that works incredibly well with the Raspberry Pi!
This is an easy and low cost way to push your digital sound files around. It takes standard I2S digital audio input and, not only decodes it into analog, but also amplifies it directly into a speaker. Perfect for adding compact amplified sound, it takes 2 breakouts (I2S DAC + Amp) and combines them into one.
I2S (not to be confused with I2C) is a digital sound protocol that is used on circuit boards to pass audio data. Many high end chips and processors manage all of the audio in digital I2S format. Then, to input or output data, three or four pins are used (data in, data out, bit clock and left-right channel select). Usually, for audio devices, there's a DAC chip that will take I2S in and convert it to analog that can drive a headphone.
This small mono amplifier is surprisingly powerful - able to deliver 3.2 Watts of power into a 4 ohm impedance speaker (5V power @ 10% THD). Inside the miniature chip is a class D controller, able to run from 2.7V-5.5VDC. Since the amp is a class D, it's incredibly efficient - making it perfect for portable and battery-powered projects. It has built in thermal and over-current protection but we could barely tell it got hot.
The audio input is I2S standard, you can use 3.3V or 5V logic data. The outputs are "Bridge Tied" - that means they connect directly to the outputs, no connection to ground. The output is a ~300KHz square wave PWM that is then 'averaged out' by the speaker coil - the high frequencies are not heard. All the above means that you can't connect the output into another amplifier, it should drive the speakers directly.
There is a gain pin that can be manipulated to change the gain. By default, the amp will give you 9dB of gain. By connecting a pullup or pull down resistor, or wiring directly, the Gain pin can be set up to give 3dB, 6dB, 9dB, 12dB or 15dB.
The ShutDown/Mode pin can be used to put the chip in shutdown or set up which I2S audio channel is piped to the speaker. By default, the amp will output (L+R)/2 stereo mix into mono out. By adding a resistor, you can change it to be just left or just right output.
Works great with Raspberry Pi, Arduino Zero, and any other microcontroller or microcomputer with I2S audio outputs.