Simple PI SendSpin client
A minimal Raspberry Pi OS Lite image for Raspberry Pi that runs SendSpin - a high-quality audio streaming protocol for Home Assistant's Music Assistant.
- Minimal footprint - Built on Raspberry Pi OS Lite with only essential packages installed
- Onboard audio by default - Uses the Raspberry Pi's 3.5mm headphone jack out of the box, no extra hardware required
- Optional USB DAC support - Switch to a USB audio device via
/etc/asound.confif you want higher-quality output - Auto-start service - SendSpin starts automatically on boot in headless mode via systemd
- Low latency - Direct ALSA hardware access for minimal audio buffering
- Raspberry Pi optimized - Built specifically for Pi 3/4 hardware
- Raspberry Pi 3 Model B / B+
- Raspberry Pi 4 Model B
Download the latest image from Releases
Look out for the *.img.xz files. The *.CREDENTIALS.txt files contains the initial root password.
dd if=spis-0.1.0-aarch64.img of=/dev/sdX bs=4M status=progress
syncUse Rufus or the Raspberry PI Imager
- Insert SD card into Raspberry Pi
- (Optional) Connect a USB DAC if you don't want to use the onboard headphone jack
- Power on
- The player will automatically connect to Music Assistant on your network
- Default credentials:
root/ a randomly generated password published alongside the release as*-CREDENTIALS.txt(change immediately!)
Ethernet: Works automatically via DHCP
WiFi: SSH into the device and configure via the points below
- SSH into the device (via Ethernet, or a monitor/keyboard connected directly)
- Set the WiFi country (required before the radio can be used, see Troubleshooting below):
Navigate to
raspi-config
5 Localisation Options→L4 WLAN Countryand select your country. - Connect to a network using
nmtui(interactive) ornmcli:nmtui # or non-interactively: nmcli connect "SSID" password "your-password"
- Verify the connection:
nmcli device status ip a
Changing the hostname also changes the name of the SendSpin device in Music Assistant.
hostnamectl set-hostname mynewnameBy default, the system uses the onboard 3.5mm headphone jack (ALSA card Headphones). To use a USB DAC or another device instead:
- List audio devices:
aplay -l - Edit
/etc/asound.confand change the config to your device's card number - Restart sendspin:
systemctl restart sendspin
Every tagged push (v*) triggers .github/workflows/build-image.yml, which builds a ready-to-flash image and publishes it as a GitHub Release:
spis-<version>-aarch64.img.xz- the flashable imagespis-<version>-aarch64-CREDENTIALS.txt- the random root password generated for that build (you'll be forced to change it on first login)version-info- build version metadata
See INSTALL.md for complete step-by-step instructions to build your own image from scratch.
This method is recommended if you want to:
- Customize the installation
- Understand how the system works
- Build for different hardware configurations
- Troubleshoot issues
Check buffer settings in /etc/asound.conf. Increase buffer_size if needed:
buffer_size 16384
# Check service status
systemctl status sendspin
# View logs
journalctl -u sendspin -e
# Manual test
sendspin --headless# List USB devices
lsusb
# Check ALSA devices
aplay -l
# Check kernel messages
dmesg | grep -i audio- Tycho-MEC/SASS for the base of this fork
- SendSpin by the SendSpin team
- Raspberry Pi OS
- Home Assistant and Music Assistant