Setting Up a Raspberry Pi Zero 2 W as a Snapcast Client with WM8960 I2S Audio

Target System: Raspberry Pi OS Lite (Bookworm/Bullseye) – headless setup (no desktop)

This guide explains how to set up a Raspberry Pi Zero 2 W as a Snapcast client using the WM8960 I2S audio codec. It’s ideal for a minimal audio streaming setup in a multi-room audio environment.


1. Configure /boot/firmware/config.txt

Enable I2S and I2C interfaces and load the WM8960 overlay:

sudo nano /boot/firmware/config.txt

Add the following lines at the end of the file:

dtparam=i2s=on
dtparam=i2c_arm=on
dtoverlay=wm8960-soundcard

2. Update System and Install Required Packages

Run the following to update your system and install necessary tools and Snapcast client:

sudo apt update
sudo apt upgrade -y

sudo apt install --no-install-recommends \
  git \
  python3-venv \
  python3-pip \
  alsa-utils \
  btop \
  fish \
  snapclient

3. Verify Audio Device

Reboot your Pi:

sudo reboot

After rebooting, check if the sound card is recognized:

aplay -l

Run a quick speaker test (assuming hw:1,0 is the correct device):

speaker-test -D hw:1,0 -c 2

4. Configure Volume with alsamixer

Launch the volume mixer:

alsamixer
  • Press F6 to select the WM8960 soundcard (usually wm8960-soundcard)
  • Adjust Speaker, Playback, and Output Mixer to around 85–95%
  • Unmute channels by pressing M
  • Press Esc to exit

Save the audio settings:

sudo alsactl store

5. Configure Snapclient

Edit the Snapclient configuration file:

sudo nano /etc/snapclient.conf

Add or update the following entries:

server = 127.0.0.1
soundcard = hw:1,0

Replace 127.0.0.1 with the IP address of your Snapserver. Confirm your correct device ID with aplay -l if needed.


6. Enable and Start Snapclient

Enable the Snapclient service on boot and start it immediately:

sudo systemctl enable snapclient
sudo systemctl start snapclient

Check the service status:

sudo systemctl status snapclient

You should see output similar to:

Connected to 127.0.0.1
Player name: alsa, device: hw:1,0
...

Done!

Your Raspberry Pi Zero 2 W is now a fully functional Snapcast client using WM8960 I2S audio output. Enjoy synchronized multi-room audio!