# Adafruit TLV320DAC3100 I2S DAC

## Overview

![front view of the breakout](https://cdn-learn.adafruit.com/assets/assets/000/136/044/medium800/adafruit_products_6309-04.jpg?1743086838 )

We stock a lot of chips and development boards that are able to do high quality digital I2S out, which makes for great quality audio playback. That's great when you have enough processing power to decode WAVs or MP3s in real time. However, most give you stereo _line-out_ which cannot connect to headphones...until now!

![back view of the board](https://cdn-learn.adafruit.com/assets/assets/000/136/045/medium800/adafruit_products_6309-02.jpg?1743086887 )

We really love the sounds coming out of the **Adafruit TLV320DAC3100&nbsp;I2S DAC with Stereo Headphone and Mono Speaker output** - it's got clean, excellent-quality, stereo audio that can connect directly to your 16Ω headphones and/or a 4Ω-8Ω speaker. This makes it excellent for all-in-one audio projects without needing an external amplifier. Please note that while it does not need a MCLK signal (you can configure it to use BCLK as the PLL input) it _does_ require I2C configuration! You will need a microcontroller with our library (Arduino, CircuitPython or Python) to set up the board for audio playback.

![headphone jack](https://cdn-learn.adafruit.com/assets/assets/000/136/046/medium800/adafruit_products_6309-03.jpg?1743086953 )

This breakout makes amplified I2S digital audio easy. You can power it with 3V (headphone only) or 5VDC (for speaker support) and provide BCLK (bit clock), WSEL (left/right word select), and DIN (data in). Then configure the board with I2C to determine the gain and which output you want activated. There's tons of configuration options available, but we've used it mostly for 16-bit I2S audio. There's a built-in PLL that will generate an MCLK signal from BCLK for you, so it can be used by any I2S source.

Audio output from the headphone is AC-coupled. Audio from the speaker is a class-D amplifier and must be connected to a speaker only. If you need an external amplifier, use the headphone jack.

![front view with headers](https://cdn-learn.adafruit.com/assets/assets/000/136/047/medium800/adafruit_products_6309-01.jpg?1743086998 )

There's a few extra breakouts on this board: MIC and BIAS are connected to the 'fourth' contact on headsets that often have a microphone. You can configure the amp to provide a 2V bias voltage which will let you detect when a headset+mic is plugged in, and also detect when the headset button is pressed. There's also AIN1/AIN2 which are alternative mix-ins for the audio outputs, not I2S encoders. There is one 'GPIO' pin which can also be used as an IRQ line.

![top angle view of the breakout](https://cdn-learn.adafruit.com/assets/assets/000/136/048/medium800/adafruit_products_6309-00.jpg?1743087031 )

Note that this board can be powered from 3~5VDC but all logic level is 3.3V only (it's quite rare for an I2S microcontroller/computer to have 5V logic!)

Each order comes with one Adafruit TLV320DAC3100 DAC breakout and some header you can solder on for breadboard usage.

# Adafruit TLV320DAC3100 I2S DAC

## Pinouts

![back and front view](https://cdn-learn.adafruit.com/assets/assets/000/136/067/medium800/adafruit_products_double.jpg?1743171747 )

## Power Pins

- **VIN** - this is the power pin. It can be powered with 3.3 to 5VDC, however, the data lines are 3.3V logic only. If you want to use the speaker output, you need to provide 5V.
- **GND** - common ground for power and logic

Warning: The board needs to be powered with 5V if you are using the speaker output.

## I2C Logic Pins

This I2S DAC **requires I2C configuration!** You will need a microcontroller with our library (Arduino, CircuitPython or Python) to set up the board for audio playback.

- **SCL** - I2C clock pin, connect to your microcontroller's I2C clock line. There's a **10K pullup** on this pin.
- **SDA** - I2C data pin, connect to your microcontroller's I2C data line. There's a **10K pullup** on this pin.

Warning: This I2S DAC requires I2C configuration! You will need a microcontroller with our library (Arduino, CircuitPython or Python) to set up the board for audio playback.

## I2S Pins

- **DIN** (Data In) - This is the pin that has the actual data coming in, both left and right data are sent on this pin, the WSEL pin indicates when left or right is being transmitted.
- **WSEL** (Word Select or Left/Right Clock) - this is the pin that tells the DAC when the data is for the left channel and when it's for the right channel.
- **BCK** (Bit Clock) - This is the pin that tells the amplifier when to read data on the data pin.
- **MCK** (Main clock, optional) - This pin is optional for the TLV320DAC3100 because you can configure the I2C driver to use BCK as the PLL input.

## Audio Output

You'll want to disable speaker output when using the headphone output for the best possible sound quality. The class-D amplifier for the speaker can cause some noise on the headphone output.

### Speaker

- **SPK+** - This is the speaker positive output
- **SPK-** - This is the speaker negative output
- The speaker output is also available via the **JST-PH port**

### Headphone

- **HPR** - This is the right channel headphone output
- **HPL** - This is the left channel headphone output
- **3.5mm output jack** - This is the onboard headphone jack. It can provide stereo audio that can connect directly to your 16Ω headphones.

Info: Disable the speaker output when using the headphone output for the best possible sound quality.

## Additional Pins

- **MIC** and **BIAS** - **MIC** is the mic detection pin and **BIAS** is the microphone bias pin. These pins are&nbsp;connected to the 'fourth' contact on the 3.5mm output jack. The fourth contact is for headsets that often have a microphone. You can configure the amp to provide a 2V bias voltage which will let you detect when a headset with a mic is plugged in, and also detect when the headset button is pressed.&nbsp;
- **AIN1** and **AIN2&nbsp;** - These pins&nbsp;are alternative mix-ins for the audio outputs (not I2S encoders).
- **IO&nbsp;** - This is an additional GPIO pin that can be used as an interrupt line.
- **RST&nbsp;** - This is the reset pin. The DAC needs to be reset before use by toggling this pin from low to high.

## Mic Detect Jumper

On the back of the board is the mic detect jumper. By default, the mic contact from the headphone jack is connected to the mic detect pin on the DAC. If you cut the jumper, you can disconnect the mic contact from mic detect and then solder the center pad to the GND pad.

# Adafruit TLV320DAC3100 I2S DAC

## CircuitPython

It's easy to use the **TLV320DAC3100** with CircuitPython, and the&nbsp;[Adafruit\_CircuitPython\_TLV320](https://github.com/adafruit/Adafruit_CircuitPython_TLV320) module. This module allows you to easily write Python code to configure this I2S DAC.

## CircuitPython Microcontroller Wiring

First wire up the I2S DAC to your board exactly as follows. The following is the DAC wired to a Feather RP2040 with the headphone output:

- **Board 3.3V** to **DAC VIN (red wire)**
- **Board GND** to **DAC GND (black wire)**
- **Board SCL** to **DAC SCL (yellow wire)**
- **Board SDA** to **DAC SDA (blue wire)**
- **Board D9** to **DAC BCK (green wire)**
- **Board D10** to **DAC WSEL (orange wire)**
- **Board D11** to **DAC DIN (white wire)**
- **DAC 3.5mm output** to **headphone**** s**
- **Board D12&nbsp;** to&nbsp;**DAC RST (purple wire)**

![](https://cdn-learn.adafruit.com/assets/assets/000/136/728/medium640/adafruit_products_Screenshot_2025-05-07_at_1.07.42%E2%80%AFPM.jpg?1746648718)

Warning: If you want to use speaker output, you'll need to power the DAC with 5V.

## CircuitPython Usage

To use with CircuitPython, you need to first install the **Adafruit\_CircuitPython\_TLV320** library, and its dependencies, into the **lib** folder on your **CIRCUITPY** drive. Then you need to update **code.py** with the example script.

Thankfully, we can do this in one go. In the example below, click the **Download Project Bundle** button below to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

Your **CIRCUITPY/lib** folder should contain the following folder and file:

- **adafruit\_bus\_device/**
- **adafruit\_tlv320.mpy**

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/TLV320DAC3100_Examples_TLV320_CircuitPython_WAV.png )

Danger: The DAC must be reset before initialization by toggling the RST pin to LOW and then back to HIGH.

## CircuitPython Tone Playback
https://github.com/adafruit/Adafruit_CircuitPython_TLV320/blob/main/examples/tlv320_simpletest.py

Once the code starts running, you'll begin hearing a one second 440Hz tone, every other second.

## WAV Playback

Download and copy this WAV audio file to your **CIRCUITPY** drive.

[StreetChicken.wav](https://cdn-learn.adafruit.com/assets/assets/000/136/075/original/StreetChicken.wav?1743182281)
Then, update the **code.py** file with the code below:

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/TLV320DAC3100_Examples/TLV320_CircuitPython_WAV/code.py

Once the code starts running, you'll hear the Street Chicken WAV file play once.

# Adafruit TLV320DAC3100 I2S DAC

## Python Docs

# Adafruit TLV320DAC3100 I2S DAC

## Arduino

Using the TLV320DAC3100 breakout with Arduino involves wiring up the breakout to your Arduino-compatible microcontroller, installing the [Adafruit\_TLV320\_I2S](https://github.com/adafruit/Adafruit_TLV320_I2S) library, and running the provided example code.

## Wiring

You can power the I2S DAC with 3.3 to 5VDC, however, the data lines are 3.3V logic only. You'll want to use a 3.3V logic level board.&nbsp;

Additionally, if you are using the speaker output, you'll want to power the board with 5V.

Here is an Adafruit Metro RP2040 wired up to the DAC for speaker output:

- **Board 5V** to **DAC VIN (red wire)**
- **Board GND** to **DAC GND (black wire)**
- **Board SCL** to **DAC SCL (yellow wire)**
- **Board SDA** to **DAC SDA (blue wire)**
- **Board D9** to **DAC BCK (green wire)**
- **Board D10** to **DAC WSEL (orange wire)**
- **Board D11** to **DAC DIN (white wire)**
- **Board D7&nbsp;** to&nbsp;**DAC RST (purple wire)**
- **DAC JST-PH** to **speaker (red and black wires)**

![](https://cdn-learn.adafruit.com/assets/assets/000/136/729/medium640/adafruit_products_metrodac.jpg?1746649082)

## Library Installation

You can install the **Adafruit\_TLV320\_I2S** library for Arduino using the Library Manager in the Arduino IDE.

![arduino ide menu](https://cdn-learn.adafruit.com/assets/assets/000/136/072/medium800/adafruit_products_Arduino_Open_Library_Manager.png?1743181354 )

Click the **Manage Libraries ...** menu item, search for **Adafruit\_TLV320\_I2S** , and select the **Adafruit TLV320 I2S** library:

![adafruit tlv320 library listing](https://cdn-learn.adafruit.com/assets/assets/000/136/073/medium800/adafruit_products_Screenshot_2025-03-28_130432.png?1743181507 )

If asked about dependencies, click "Install all".

![install busio](https://cdn-learn.adafruit.com/assets/assets/000/136/074/medium800/adafruit_products_Screenshot_2025-03-28_130442.png?1743181530 )

If the "Dependencies" window does not come up, then you already have the dependencies installed.

Warning: If the dependencies are already installed, you must make sure you update them through the Arduino Library Manager before loading the example!

## Sine Tone Example
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/TLV320DAC3100_Examples/TLV320_Tone_Arduino/TLV320_Tone_Arduino.ino

Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. You'll see the TLV320DAC3100 recognized over I2C. Then, you'll hear a sine wave play through the headphone or speaker output.

## Audio Playback Example Code

This example plays a PCM audio file when the Boot button is pressed. Check out [this Python script to convert WAV files to PCM files](https://github.com/adafruit/Adafruit_Media_Converters).

Click the button below to download the source code and header file. Unzip it, and open it with the Arduino IDE.

[TLV320_Audio_Playback_Arduino.zip](https://cdn-learn.adafruit.com/assets/assets/000/136/137/original/TLV320_Audio_Playback_Arduino.zip?1743619780)
When you open the code in the Arduino IDE, you will see the Arduino sketch code in one tab, and the header file in a second tab.

![both tabs in audio example](https://cdn-learn.adafruit.com/assets/assets/000/136/136/medium800/adafruit_products_Screenshot_2025-04-02_144815.png?1743619742 )

Once you've uploaded the sketch to your board, you'll hear the startup tone play in a loop with a short pause.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/TLV320DAC3100_Examples/TLV320_Audio_Playback_Arduino/TLV320_Audio_Playback_Arduino.ino

# Adafruit TLV320DAC3100 I2S DAC

## Arduino Docs

# Adafruit TLV320DAC3100 I2S DAC

## Downloads

## Files

- [TLV320DAC3100 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/136/051/original/TLV320DAC3100_Low-Power_Stereo_Audio_DAC_With_Audio_Processing_and_Mono_Class-D_Speaker_Amplifier_datasheet_%28Rev._C%29_-_tlv320dac3100.pdf)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-TLV320DAC3100-I2S-DAC-PCB)
- [3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/6309%20TLV320DAC3100%20I2S%20DAC)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20TLV320DAC3100%20I2S%20DAC.fzpz)

## Schematic and Fab Print
![schematic](https://cdn-learn.adafruit.com/assets/assets/000/136/052/medium800/adafruit_products_schem.png?1743088037 )

![fabrication print](https://cdn-learn.adafruit.com/assets/assets/000/136/053/medium800/adafruit_products_fab.png?1743088062 dimensions are in inches)

![](https://cdn-learn.adafruit.com/assets/assets/000/136/339/medium800/adafruit_products_6309_TLV320DAC3100_I2S_DAC.jpg?1744828225 )


## Primary Products

### Adafruit TLV320DAC3100 - I2S DAC with Headphone and Speaker Out

[Adafruit TLV320DAC3100 - I2S DAC with Headphone and Speaker Out](https://www.adafruit.com/product/6309)
We&nbsp;stock a lot of chips and development boards&nbsp;that are able to do high quality digital I2S out, which makes for great quality audio playback. That's great when you have enough processing power to decode WAVs or MP3s in real time. However, most give you stereo...

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

## Featured Products

### Cell-phone TRRS Headset - Earbud Headphones w/ Microphone

[Cell-phone TRRS Headset - Earbud Headphones w/ Microphone](https://www.adafruit.com/product/1966)
These earbud headphones are the perfect accessory for your FONA - they've been tested to work with our modules - but can be used with any iOS or Android device that uses a TRRS pinout.&nbsp; The buds themselves are&nbsp;16mm in diameter with a nice 40" long. &nbsp;They come with a...

In Stock
[Buy Now](https://www.adafruit.com/product/1966)
[Related Guides to the Product](https://learn.adafruit.com/products/1966/guides)
### Mono Enclosed Speaker - 3W 4 Ohm

[Mono Enclosed Speaker - 3W 4 Ohm](https://www.adafruit.com/product/3351)
Listen up! This 2.8" x 1.2" speaker&nbsp;is&nbsp;a&nbsp;great addition to any audio project where you need 4 ohm impedance and 3W or less of power. We particularly like this&nbsp;speaker&nbsp;as it is&nbsp;small and enclosed for good audio volume and quality. It has a handy JST 2PH...

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

## Related Guides

- [Chip's Challenge on Fruit Jam and Metro RP2350](https://learn.adafruit.com/256-color-gaming-on-the-metro-rp2350.md)
- [Larsio Paint Music](https://learn.adafruit.com/larsio-paint-music.md)
- [HalloWing Jump Scare Trap](https://learn.adafruit.com/hallowing-jump-scare-trap.md)
- [MIDI Solenoid Drum Kit](https://learn.adafruit.com/midi-solenoid-drum-kit.md)
- [MagTag Weekly Showtimes Event Notifier](https://learn.adafruit.com/magtag-weekly-event-showtimes-display.md)
- [CircuitPython BLE Multi-Temperature Monitoring](https://learn.adafruit.com/circuitpython-multi-temperature-ble-monitoring.md)
- [Square NeoPixel Display with Black LED Acrylic](https://learn.adafruit.com/sqaure-neopixel-display-with-black-led-acrylic.md)
- [MacroPad Braille Keycaps](https://learn.adafruit.com/macropad-braille-keycaps.md)
- [MQTT in CircuitPython](https://learn.adafruit.com/mqtt-in-circuitpython.md)
- [Adafruit Microphone Amplifier Breakout](https://learn.adafruit.com/adafruit-microphone-amplifier-breakout.md)
- [Adafruit Pixel Shifter](https://learn.adafruit.com/adafruit-pixel-shifter.md)
- [Adafruit IoT Button with NeoPixel BFF](https://learn.adafruit.com/adafruit-iot-button-with-neopixel-bff.md)
- [Adafruit ICM20649 Wide-Range 6-DoF IMU Accelerometer and Gyro](https://learn.adafruit.com/adafruit-icm20649-wide-range-6-dof-imu-accelerometer-and-gyro.md)
- [Wireless Security Camera with the Arduino Yun](https://learn.adafruit.com/wireless-security-camera-arduino-yun.md)
- [Qualia S3 iOS Photo Display with itsaSNAP](https://learn.adafruit.com/qualia-s3-ios-photo-display-with-itsasnap.md)
