# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/010/055/medium800/adafruit_products_2013_07_26_IMG_2075-1024.jpg?1396901361)

_Above: v1.0 codec board. Below: v2.0 codec board_  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/219/medium800/adafruit_products_1381_LRG.jpg?1380121503)

This breakout board is the ultimate companion for the VLSI VS1053B DSP codec chip. The VS1053 can decode a wide variety of audio formats such as MP3, AAC, Ogg Vorbis, WMA, MIDI, FLAC, WAV (PCM and ADPCM). It can also be used to record audio in both PCM (WAV) and compressed Ogg Vorbis. You can do all sorts of stuff with the audio as well such as adjusting bass, treble, and volume digitally. There are also 8 GPIO pins that can be used for stuff like lighting up small LEDs or reading buttons.   
  
All this functionality is implemented in a light-weight SPI interface so nearly any microcontroller can play audio from an SD card. There's also a special MIDI mode that you can boot the chip into that will read 'classic' 31250Kbaud MIDI data on a UART pin and act like a synth/drum machine - there are dozens of built-in drum and sample effects! But the chip is a pain to solder, and needs a lot of extras. That's why we spun up the best breakout, perfect for use with an Arduino but also good for other microcontrollers that just don't have the computational power to decode MP3s.   
  
The breakout is slim enough to fit on a breadboard with 1 row of holes left over for wiring. There are 3.3v and 1.8v regulators onboard with ferrite beads and analog filtering for quality analog output. There's a microphone input port that you can wire up a line-in or mic to and record compressed audio. All 8 GPIO are broken out and they all have built in 100K pulldowns, simply connect your button from the GPIO pin to 3.3V for an active-high connection. You'll likely want to play music from a microSD card so we added a holder on-board. And since we know so many of our customers use 5V microcontrollers like the Arduino, we made the interface pins all 5V compliant with level shifters so you can use the chip at 3V or 5V power/logic!   
  
The breakout board comes fully assembled and tested. All v1.0 boards come with two 100uF electrolytic capacitors for line-level output coupling, v2.0 have the capacitors integrated into the PCB. All kits come with some 0.1" male header you can solder to the breakout so it plugs into a breadboard and a bonus stereo headphone jack that will be handy when you want to plug headphones in!

![](https://cdn-learn.adafruit.com/assets/assets/000/010/053/medium800/adafruit_products_2013_07_25_IMG_2067-1024.jpg?1396901333)

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/010/056/medium800/adafruit_products_1381_LRG.jpg?1396901376)

The board comes with all surface-mount components assembled and tested. For use on a breadboard, you will want to install the included header strips. This is a simple process and should only take a few minute  
  
**Assembly is the same for both v1 and v2 breakouts, even if the boards look a bit different!**

## Prepare the Headers
Cut the header strips to length if necessary and place the long-pins-down in the breadboard.  
![adafruit_products_2013_07_21_IMG_2049-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/027/medium640/adafruit_products_2013_07_21_IMG_2049-1024.jpg?1396900936)

![adafruit_products_2013_05_02_IMG_1741-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/028/medium640/adafruit_products_2013_05_02_IMG_1741-1024.jpg?1396900949)

## Position the Board
Place the breakout board over the header pins.![adafruit_products_2013_07_21_IMG_2050-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/029/medium640/adafruit_products_2013_07_21_IMG_2050-1024.jpg?1396900963)

## And Solder!
Solder every pin to assure good electrical contact.![adafruit_products_2013_07_21_IMG_2051-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/030/medium640/adafruit_products_2013_07_21_IMG_2051-1024.jpg?1396900976)

![adafruit_products_2013_07_21_IMG_2052-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/031/medium640/adafruit_products_2013_07_21_IMG_2052-1024.jpg?1396900993)

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Getting Started - VS1053 Software

To get started with the VS1053 breakout (any version) you will first need to download the [Adafruit VS1053 Library](https://github.com/adafruit/Adafruit_VS1053_Library):

&nbsp;

Open up the Arduino library manager:

![](https://cdn-learn.adafruit.com/assets/assets/000/083/163/medium800/adafruit_products_sensors_managelib.png?1572312528)

Search for&nbsp; **Adafruit\_VS1053&nbsp;** library and install it

![](https://cdn-learn.adafruit.com/assets/assets/000/083/164/medium800/adafruit_products_vs1053.png?1572312570)

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Simple Audio Player Wiring

![](https://cdn-learn.adafruit.com/assets/assets/000/010/058/medium800/adafruit_products_1381use_LRG.jpg?1396901422)

The VS1053 can be configured as a simple audio player under control of the Arduino. The Arduino reads data from the on-board SD card, then plays it back through the CODEC via the SPI interface.  
  
**These steps are identical for both v1 and v2 codec breakouts, even if the boards look a little bit different**

## Prepare the breadboard
Place the VS1053 breakout on the breadboard. Center it so that there is one row of holes on each side.  
  
Add the breakout friendly headphone jack and wire power and ground jumpers as shown.  
  

- **VCC -\> 5v**  
- **GND -\> GND**

![adafruit_products_2013_07_25_IMG_2066-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/037/medium640/adafruit_products_2013_07_25_IMG_2066-1024.jpg?1396901079)

## Connect SPI and Reset
Add jumpers for:  
  

- **CLK -\> Arduino #13 (Mega 52)**  
- **MISO -\> Arduino #12 (Mega 50)**  
- **MOSI -\> Arduino #11 (Mega 51)**  
- **CS -\> Arduino #10**  
- **RST -\> Arduino #9**  

  
![adafruit_products_2013_07_25_IMG_2065-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/038/medium640/adafruit_products_2013_07_25_IMG_2065-1024.jpg?1396901090)

## Connect the rest of the digital signals
Add more jumpers for:  
  

- **XDCS-\> Arduino #8**  
- **SDCS -\> Arduino #4**  
- **DREQ -\> Arduino #3**  

![adafruit_products_2013_07_25_IMG_2064-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/039/medium640/adafruit_products_2013_07_25_IMG_2064-1024.jpg?1396901103)

## Connect the Headphone Jack
This step will be a little bit different depending on which version you have. If your breakout is v2 and has the round silver capacitors, add jumpers for:  

**- AGND -\> Center 'ground' Pin  
- LOUT -\> Left Pin  
- ROUT -\> Right Pin**

(these are in the corner in a row)  
If your breakout is v1, the pins will be labeled  

**- GBUF -\> Center 'ground' Pin  
- LOUT -\> Left Pin  
- ROUT -\> Right Pin**

For v1, do not use this wiring for powered speakers or a line-in connection to a computer/stereo. **Only for headphones!** For v2, you can use this wiring for any type of connection without worry.  

![adafruit_products_2013_07_25_IMG_2063-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/040/medium640/adafruit_products_2013_07_25_IMG_2063-1024.jpg?1396901118)

## Load some MP3 files
Copy 2 MP3 files to a micro SD card and name them **track001.mp3** and **track002.mp3** (this is just for the test, you can re-name them later). Then install the card in the slot on the VS1053 breakout. ![](https://cdn-learn.adafruit.com/assets/assets/000/010/041/medium800/adafruit_products_2013_07_25_IMG_2067-1024.jpg?1396901130)

Make sure you have a good quality SD card, some cheap SD cards won't work, causing confusion! Especially 'non-brand' knockoffs.

# Simple Audio Player Sketch
Connect the Arduino to your computer with a USB cable and plug your headphones into the headphone jack. Select **File-\>Examples-\>Adafruit\_VS1053\_Codec-\>player\_simple** to load the example code.  
You should hear your MP3 files in the headphones.  
  
You can also run **File-\>Examples-\>Adafruit\_VS1053\_Codec-\>player\_interrupts.** This example demonstrates playing files in the background using interrupts. This allows you to do other things in your sketch while the music plays!  
  
With both examples, you can change the file names in the code to play different files - or even extend the code to search the SD card for files to play. # For the Micro:

Frank Cohen has submitted a wiring diagram for the FilePlayer example on a Micro. See his code posted here as well: [http://votsh.files.wordpress.com/2014/02/vs1053-arduino-micro-connections.pdf](http://votsh.files.wordpress.com/2014/02/vs1053-arduino-micro-connections.pdf)

**Note:** &nbsp;_For paying sounds in the background using interrupts, connect DREQ to pin 3 and change the code to match._

![](https://cdn-learn.adafruit.com/assets/assets/000/014/586/medium800/adafruit_products_Micro.jpg?1393328457)

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Audio Connections

![](https://cdn-learn.adafruit.com/assets/assets/000/010/054/medium800/adafruit_products_2013_07_26_IMG_2077-1024.jpg?1396901346)

Both the VS1053 version 1 (shown above, does not have big round silver capacitors at the top) **and** the version 2 (has a v2 label, has two big round silver caps) can drive a pair of headphones directly. Just connect the LOUT and ROUT to the left and right pins of the headphone jack. The center pin should be connected to GBUF.

![](https://cdn-learn.adafruit.com/assets/assets/000/010/048/medium800/adafruit_products_2013_07_26_IMG_2069.jpg?1396901265)

Both v1 and v2 can also directly drive audio devices with differential inputs such as our 3.7 Watt Stereo Class D Amplifier. Connect LOUT and ROUT to the L+ and R+ pins of the amplifier. Connect L- and R- to the AGND pins.

![](https://cdn-learn.adafruit.com/assets/assets/000/013/622/medium800/adafruit_products_2013_07_26_IMG_2072_edit-1024.jpg?1389545210)

 **If you have a v1 breakout, you can connect to powered speakers/stereo BUT YOU MUST USE THE INCLUDED CAPACITORS!**  
  
For audio devices requiring a 'line level' input, use the included capacitors. These are polarized electrolytic capacitors, so it matters which way you connect them. Connect the positive (longer) leads to the LOUT and ROUT pins, and the negative leads to the L & R pins of the headphone jack or L and R inputs of the audio device. The common (center) pin of the audio jack should be connected to the AGND pin.  
  
If you have a v2 breakout, these capacitors can be skipped, they are included onto the breakout board itself.  
![](https://cdn-learn.adafruit.com/assets/assets/000/010/050/medium800/adafruit_products_2013_07_26_IMG_2070-1024.jpg?1396901291)

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## MIDI Connections

With a few jumper connections, the board will boot up in MIDI mode that will read 'classic' 31250Kbaud MIDI data on a UART pin and act like a synth/drum machine - there are dozens of built-in drum and sample effects.

## Prepare the breadboard
Place the VS1053 breakout on the breadboard. Center it so that there is one row of holes on each side.  
  
Add the breakout friendly headphone jack and wire power and ground jumpers as shown.  
  

- **VCC -\> 5v**  
- **GND -\> GND**  

![adafruit_products_2013_07_25_IMG_2066-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/034/medium640/adafruit_products_2013_07_25_IMG_2066-1024.jpg?1396901018)

## Configure for MIDI operation
Add jumpers as follows:  

- **GPIO-0 -\> GND**  
- **GPIO-1 -\> 3.3v**  
- **Rx -\> Arduino Digital #2**  
- **RST -\> Arduino Digital #9**  

![adafruit_products_2013_07_25_IMG_2061.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/035/medium640/adafruit_products_2013_07_25_IMG_2061.jpg?1396901053)

## Connect the Headphone Jack
Same as the earlier tests, add jumpers for:  

**- AGND (v2) or GBUF (v1) -\> Center Pin  
- LOUT -\> Left Pin  
- ROUT -\> Right Pin**  

![adafruit_products_2013_07_25_IMG_2060-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/036/medium640/adafruit_products_2013_07_25_IMG_2060-1024.jpg?1396901066)

# Midi Example Sketch
Connect the Arduino to your computer with a USB cable and plug your headphones into the headphone jack. Select **File-\>Examples-\>Adafruit\_VS1053\_Codec-\>player\_miditest** to load the example code for MIDI operation.. You should hear a repeating series of ascending tones from the MIDI player.  
# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## GPIO

The VS1053 has 8 GPIO pins that can be read and written via the library. The player\_gpiotest sketch demonstrates how to do this.

## Start with the basic wiring
Use the Simple Audio Player Wiring from the link on the left.  
![adafruit_products_2013_07_25_IMG_2063-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/051/medium640/adafruit_products_2013_07_25_IMG_2063-1024.jpg?1396901302)

## Add some LEDs
Add a jumper from the ground bus on the left to the ground bus on the right of the breadboard.  
  
Then add some LEDs from the GPIO pins to ground. Be sure to connect the long lead (anode) to the GPOI pin and the short lead (cathode) to ground.![adafruit_products_2013_07_25_IMG_2068-1024.jpg](https://cdn-learn.adafruit.com/assets/assets/000/010/052/medium640/adafruit_products_2013_07_25_IMG_2068-1024.jpg?1396901316)

### 

Strictly speaking, best practice is to use a current limiting resistor when driving an LED from a GPIO pin. In this case, the example sketch pulses each led only briefly, so there is no danger of damage. For more general use, you should select a resistor appropriate for the led you are using. See [All About LEDs](http://learn.adafruit.com/all-about-leds) for more detail.

## Run the player\_gpiotest sketch
Connect the Arduino to your computer with a USB cable. Select **File-\>Examples-\>Adafruit\_VS1053-\>player\_gpiotest** to load the example code.   
  
If you have headphones, you will hear a beep at the start to indicate that the sketch is running. Then you should see the LEDs flashed in sequence.  
  
If you open the Serial Monitor, you can see the values that are written to and read from each GPIO pin.  
  
Info: 

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Ogg Recorder

![](https://cdn-learn.adafruit.com/assets/assets/000/010/102/medium800/adafruit_products_Nipper.png?1396902461)

_(Nipper photo by Bevery & Pack - Creative Commons Share Alike)_# Recording with the VS1053
The record\_ogg example sketch turns your VS1053 breakout into a recording device that generates OGG encoded files on the SD card in real-time.![](https://cdn-learn.adafruit.com/assets/assets/000/010/103/medium800/adafruit_products_2013_07_29_IMG_2078-1024.jpg?1396902472)

# Wiring
Wiring for the record\_ogg sketch is as follows:  
  
**Power and Ground:**  

- **VCC -\> 5v**  
- **GND -\> GND**  

## Basic SPI connections:

- **SCLK -\> Arduino #13**  
- **MOSI -\> Arduino #11**  
- **MISO -\> Arduino #12**  
- **CS -\> Arduino #10**

## **Additional Control Signals:**

- **SDCS -\> Arduino A0**  
- **XDCS -\> Arduino #8**
- **RST -\> Arduino #9**  
- **DREQ -\> Arduino A1**

## **Start/Stop Button (Momentary):**

- **from Arduino #7 to GND**

## Electret Microphone Circuit:
The Microphone circuit is derived from the reference design shown in Figure 3 on Page 13 of the [VS1053B Datasheet](http://www.adafruit.com/datasheets/vs1053.pdf). Note that the ground connections shown are to analog ground (AGND).![](https://cdn-learn.adafruit.com/assets/assets/000/010/100/medium800/adafruit_products_Microphone_Circuit_schem.png?1396902374)

## A note about microphone circuits:
Microphones, by their nature, are very sensitive devices. They are prone to picking up all sorts of noises (both electrical and acoustic) in addition to what you are trying to record. A microphone circuit built on a breadboard is not likely to sound good at all. For good sound, you will want to review the spec sheet recommendations and build this on a good quality circuit board.## Recording Sketch:
Connect the Arduino to your computer with a USB cable and plug your headphones into the headphone jack. Select **File-\>Examples-\>Adafruit\_VS1053\_Codec-\>record\_ogg** to load the example code.  

## Plug-Ins
The record\_ogg example sketch demonstrates a powerful feature of the VS1053 breakout: Plug-ins. OGG recording capability is not supported natively in the chip itself, but through a plug-in code module. A binary file containing the code image of the plug-in is loaded from the SD card at startup. Once loaded, the VS1053 becomes an OGG recording device.  

## To Record:
Press the start/stop button to start the recording. Press once again to stop. Each recording will be stored in a separate .OGG file on the SD card.  
  

## To Playback:
Use any OGG capable audio player on your computer - or playback through the VS1053 using the Simple Audio Player configuration (see link at left).# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Library Reference

# class Adafruit\_VS1053\_FilePlayer
The Adafruit\_VS1053\_FilePlayer class is derived from the Adafruit\_VS1053 class and provides high level functions for playing files stored on the VS1053 breakout SC Card reader.  

## Public Methods:
  

> **Adafruit\_VS1053\_FilePlayer (uint8\_t mosi, uint8\_t miso, uint8\_t clk,**  **uint8\_t rst, uint8\_t cs, uint8\_t dcs, uint8\_t dreq,** **uint8\_t cardCS)** - Software SPI constructor. Uses Software SPI, so you must specify all SPI pins.  
>   
> **Adafruit\_VS1053\_FilePlayer (uint8\_t rst, uint8\_t cs, uint8\_t dcs, uint8\_t dreq,** **uint8\_t cardCS)** - Hardware SPI constructor. Uses Hardware SPI and assumes the default SPI pins.  
>   
>   
> **boolean begin(void)** - Initialize communication and reset the chip.  
>   
> **boolean useInterrupt(uint8\_t type)** - Specifies the interrupt to use for interrupt-driven playback. Valid arguments are:  
> 
> - VS1053\_FILEPLAYER\_TIMER0\_INT   
> - VS1053\_FILEPLAYER\_PIN\_INT  
> 
>   
> **boolean startPlayingFile(char \*trackname)** - Begin playing the specified file from the SD card using interrupt-driven playback. This allows your program to perform other tasks as the file is playing.  
>   
> **boolean playFullFile(char \*trackname)** - Play the complete file. This function will not return until the playback is complete.

## Public Member Variables:

> **File currentTrack** - File currently being played  
>   
> **boolean playingMusic** - True if playback in progress

# class Adafruit\_VS1053
The Adafruit\_VS1053 class implements an interface to the basic VS1053 functionality. For more detail on the operation of the VS1053 chip, please refer to the documentation on the Downloads page (see the link to the left).  

## public Methods:

> **Adafruit\_VS1053(uint8\_t mosi, uint8\_t miso, uint8\_t clk,** **uint8\_t rst, uint8\_t cs, uint8\_t dcs, uint8\_t dreq)** - Software SPI constructor - must specify all pins.  
>   
> **Adafruit\_VS1053(uint8\_t rst, uint8\_t cs, uint8\_t dcs, uint8\_t dreq)** - Hardware SPI constructor - assumes hardware SPI pins.  
>   
> **uint8\_t begin(void)** - Initialize SPI communication and (hard) reset the chip.  
>   
> **void reset(void)** - Performs a hard reset of the chip.  
>   
> **void softReset(void)** - Attempts a soft reset of the chip.  
>   
> **uint16\_t sciRead(uint8\_t addr)** - Reads from the specified register on the chip.  
>   
> **void sciWrite(uint8\_t addr, uint16\_t data)** - Writes to the specified register on the chip.  
>   
> **void sineTest(uint8\_t n, uint16\_t ms)** - Generate a sine-wave test signal.  
>   
> **void spiwrite(uint8\_t d)** - Low-level SPI write operation.   
>   
> **uint8\_t spiread(void)** - Low-level SPI read operation.  
>   
> **uint16\_t decodeTime(void)** - Reads the DECODETIME register from the chip.  
>   
> **void setVolume(uint8\_t left, uint8\_t right)** - Set the output volume for the chip.  
>   
> **void dumpRegs(void)** - Prints the contents of the MODE, STATUS, CLOCKF and VOLUME registers.  
>   
> **void playData(uint8\_t \*buffer, uint8\_t buffsiz)** - Decode and play the contents of the supplied buffer.  
>   
> **boolean readyForData(void)** - Test if ready for more data.  
>   
> **void applyPatch(const uint16\_t \*patch, uint16\_t patchsize)** - Apply a code patch (See datasheet for details).  
>   
> **uint16\_t loadPlugin(char \*fn)** - Load the specified plug-in.  
>   
> **void GPIO\_digitalWrite(uint8\_t i, uint8\_t val)** - Write to a GPIO pin.  
>   
> **void GPIO\_digitalWrite(uint8\_t i)** - Write to all 8 GPIO pins at once.  
>   
> **uint16\_t GPIO\_digitalRead(void)** - Read all 8 GPIO pins at once.  
>   
> **boolean GPIO\_digitalRead(uint8\_t i)** - Read a single GPIO pin.  
>   
> **void GPIO\_pinMode(uint8\_t i, uint8\_t dir)** - Set the Pin Mode (INPUT/OUTPUT) for a GPIO pin.  
>   
> **boolean prepareRecordOgg(char \*plugin)** - Initialize chip for OGG recording.  
>   
> **void startRecordOgg(boolean mic)** - Start recording (mic = true for microphone input).  
>   
> **void stopRecordOgg(void)** - Stop the recording.  
>   
> **uint16\_t recordedWordsWaiting(void)** - Returns the number of words recorded.  
>   
> **uint16\_t recordedReadWord(void)** - Reads the next word from the buffer of recorded words.  
>   
> **uint16\_t recordedReadWord(void)** - Reads the next word from the buffer of recorded words.

# Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial

## Downloads and Links

# Library:

- [Adafruit VS1053 Library](https://github.com/adafruit/Adafruit_VS1053_Library "Link: https://github.com/adafruit/Adafruit\_VS1053\_Library")

# Files:

- [VS1053B (Codec chip) datasheet](http://www.adafruit.com/datasheets/vs1053.pdf "Link: http://www.adafruit.com/datasheets/vs1053.pdf")
- [Details about the Ogg vorbis encoder/recorder](http://www.adafruit.com/datasheets/VorbisEncoder170c.pdf)
- [App note on connecting to analog outputs!](http://www.adafruit.com/datasheets/vs10XXan_output.pdf)
- [Fritzing object in Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library)
- [EagleCAD PCB files on GitHub](https://github.com/adafruit/Adafruit-VS1053-Breakout-PCB)

# Schematic & Fabrication Print
![](https://cdn-learn.adafruit.com/assets/assets/000/011/221/medium800/adafruit_products_vs1053_v2.png?1380122647)

![](https://cdn-learn.adafruit.com/assets/assets/000/013/261/medium800/adafruit_products_vs1053dims.png?1388361970)


## Featured Products

### VS1053 Codec + MicroSD Breakout - MP3/WAV/MIDI/OGG Play + Record

[VS1053 Codec + MicroSD Breakout - MP3/WAV/MIDI/OGG Play + Record](https://www.adafruit.com/product/1381)
This breakout board is the ultimate companion for the VLSI VS1053B DSP codec chip. The VS1053 can decode a wide variety of audio formats such as MP3, AAC, Ogg Vorbis, WMA, MIDI, FLAC, WAV (PCM and ADPCM). It can also be used to record audio in both PCM (WAV) and compressed Ogg Vorbis. You can...

In Stock
[Buy Now](https://www.adafruit.com/product/1381)
[Related Guides to the Product](https://learn.adafruit.com/products/1381/guides)
### Adafruit METRO 328 Fully Assembled - Arduino IDE compatible

[Adafruit METRO 328 Fully Assembled - Arduino IDE compatible](https://www.adafruit.com/product/50)
We sure love the ATmega328 here at Adafruit, and we use them&nbsp;_a lot_&nbsp;for our own projects. The processor has plenty of GPIO, Analog inputs, hardware UART SPI and I2C, timers and PWM galore - just enough for most simple projects. When we need to go small, we use a <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/50)
[Related Guides to the Product](https://learn.adafruit.com/products/50/guides)
### Electret Microphone - 20Hz-20KHz Omnidirectional

[Electret Microphone - 20Hz-20KHz Omnidirectional](https://www.adafruit.com/product/1064)
This electret capsule microphone is the same one we use in our great microphone amplifier board. It contains a small vibrating element that will output a few millivolts peak-to-peak. You will need an op-amp to amplify the signal, some chips are designed with the amplifier built-in in which...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1064)
[Related Guides to the Product](https://learn.adafruit.com/products/1064/guides)
### Stereo 3.7W Class D Audio Amplifier - MAX98306

[Stereo 3.7W Class D Audio Amplifier - MAX98306](https://www.adafruit.com/product/987)
This incredibly small stereo amplifier is surprisingly powerful - able to deliver 2 x 3.7W channels into 3 ohm impedance speakers. Inside the miniature chip is a class D controller, able to run from 2.7V-5.5VDC. Since the amp is a class D, its incredibly efficient (over 90% efficient when...

In Stock
[Buy Now](https://www.adafruit.com/product/987)
[Related Guides to the Product](https://learn.adafruit.com/products/987/guides)

## Related Guides

- [Multi-tasking the Arduino - Part 2](https://learn.adafruit.com/multi-tasking-the-arduino-part-2.md)
- [Circuit Playground Sound-Controlled Robot](https://learn.adafruit.com/circuit-playground-sound-controlled-robot.md)
- [Circuit Playground: D is for Diode](https://learn.adafruit.com/circuit-playground-d-is-for-diode.md)
- [Adafruit Motor Shield](https://learn.adafruit.com/adafruit-motor-shield.md)
- [IR Sensor](https://learn.adafruit.com/ir-sensor.md)
- [Sous-vide controller powered by Arduino - The SousViduino!](https://learn.adafruit.com/sous-vide-powered-by-arduino-the-sous-viduino.md)
- [2.8" TFT Touchscreen](https://learn.adafruit.com/2-8-tft-touchscreen.md)
- [Adafruit IO Basics: NeoPixel Controller](https://learn.adafruit.com/adafruit-io-basics-neopixel-controller.md)
- [3D Printed Bone Conduction Transducer Box](https://learn.adafruit.com/3d-printed-bone-conduction-transducer-box.md)
- [Arduino Prototyping Mounting Plate](https://learn.adafruit.com/arduino-prototyping-mounting-plate.md)
- [Arduino Lesson 0. Getting Started](https://learn.adafruit.com/lesson-0-getting-started.md)
- [Adafruit Proto Shield for Arduino](https://learn.adafruit.com/adafruit-proto-shield-arduino.md)
- [Smart Cocktail Shaker](https://learn.adafruit.com/smart-cocktail-shaker.md)
- [Remote controlled door lock using a fingerprint sensor & Adafruit IO](https://learn.adafruit.com/remote-controlled-door-lock-using-a-fingerprint-sensor-and-adafruit-io.md)
- [Arduino Lesson 3. RGB LEDs](https://learn.adafruit.com/adafruit-arduino-lesson-3-rgb-leds.md)
