I2S is a serial bus interface for connecting audio devices. The Raspberry Pi features the MCLK-less variant.
By default the interface is disabled. The easiest way to enable it is to download and execute the i2samp.sh
script as root:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
This is based on: https://learn.pimoroni.com/tutorial/phat/raspberry-pi-phat-dac-install
This script may modify the following files
/boot/config
/etc/modprobe.d/raspi-blacklist.conf
/etc/asound.conf
/etc/modules
$ cat /etc/asound.conf
pcm.speakerbonnet {
type hw card 0
}
pcm.dmixer {
type dmix
ipc_key 1024
ipc_perm 0666
slave {
pcm "speakerbonnet"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
channels 2
}
}
ctl.dmixer {
type hw card 0
}
pcm.softvol {
type softvol
slave.pcm "dmixer"
control.name "PCM"
control.card 0
}
ctl.softvol {
type hw card 0
}
pcm.!default {
type plug
slave.pcm "softvol"
}
The following table shows the relevant pins from the Pi’s header. For sound output only 3 pins are needed:LRCLK
, BCLK
and DOUT
Description | BCM | Pin | Pin | BCM | Description |
---|---|---|---|---|---|
01 | 02 | ||||
02 | 03 | 04 | |||
03 | 05 | 06 | |||
04 | 07 | 08 | 14 | ||
09 | 10 | 15 | |||
17 | 11 | 12 | 18 | I2S BCLK | |
27 | 13 | 14 | |||
22 | 15 | 16 | 23 | ||
17 | 18 | 24 | |||
10 | 19 | 20 | |||
09 | 21 | 22 | 25 | ||
11 | 23 | 24 | 08 | ||
26 | 07 | 26 | |||
00 | 27 | 28 | 01 | ||
05 | 29 | 30 | |||
06 | 31 | 32 | 12 | ||
13 | 33 | 34 | |||
I2S LRCLK | 19 | 35 | 36 | 16 | |
26 | 37 | 38 | 20 | I2S DIN | |
39 | 40 | 21 | I2S DOUT |
A number of I2S boards are available that combine a DAC with an amplifier allowing speakers to be attached directly.
This is based on the MAX98357A chip with a 3W Amplifier
Note:
This has about the same size as a Pi Zero and attaches like a shield covering all 40 pin.