NOTE: This is a DIY project, those that prefer Off-the-shelf devicea you can buy and use right away, there is a project for that here: https://github.com/RealDeco/sendspin-guition
A tiny Sendspin media player with cover art display and a weather clock, built around the ESP32-S3 Zero.
This project turns a small, inexpensive ESP32 board into a compact audio receiver for your amplifier capable of doing multi-room audio in sync, with a screen for album art, song, artist, and a weather clock when not playing, OR a Button to control with, or with nothing so you can hide it behind the tv/stereo.
Each version can be built with one of these options:
- Display
- No display
- Big button
That gives a total of 9 variants:
| Sendspin Zero Control Analog | |
| Sendspin Zero Control Digital | |
| Sendspin Zero Display + Button Analog |
| SendspinZero Speaker | |
| Sendspin Supermini Headphones |
This started as a fun experiment: I wanted to see if the ESP32-S3 Zero would work with Sendspin. Since it has 2 MB of PSRAM, I figured it might be possible—and it turns out, it is.
Once that worked, I thought: instead of building yet another “Sendspin speaker”, why not make a tiny receiver for my amplifier?
So I:
- Replaced the MAX98357 with a PCM5102A DAC
- Designed a custom case
- Added a display for cover art and a weather clock
…and this is the result 🙂
All parts were sourced from AliExpress and added up to just over $10 (last checked).
-
1 × ESP32-S3 Zero https://www.aliexpress.com/item/1005009890203011.html
(be sure you select esp32-s3, not esp32-c3 which the page defaults to.)
-
1 × PCM5102A DAC https://www.aliexpress.com/item/1005008130629022.html
-
1 × 1.54" LCD screen https://www.aliexpress.com/item/1005008703777053.html
-
If you plan to mount everything inside the case, do NOT solder header pins to the DAC, ESP32, or display. → Solder wires directly to the boards instead, otherwise they won’t fit.
-
If your display already has pins: → You may need to bend two pins slightly to make room for the audio jack.
| ESP32-S3 GPIO | PCM5102A Pin |
|---|---|
| GPIO4 | LRCK |
| GPIO5 | BCK |
| GPIO6 | DIN |
| ESP32-S3 GPIO | Display Pin |
|---|---|
| GPIO7 | SCL |
| GPIO8 | SDA |
| GPIO9 | RST |
| GPIO10 | DC |
| GPIO11 | BL |
- GND
- 3.3V
Make sure to:
- Solder the 4 control pads on the back of the PCM5102A (also shown below):
- H1L -> L
- H2L -> L
- H3L -> H
- H4L -> L
- Solder the bridge near SCK on the front (some boards come pre-soldered)
This version has no display and is the easiest build—under $10 🙂
(For display or button versions, pin usage is the same)
Your soundbar will love you for it 😉
3D files are in 3D_Files
| ESP32-S3 GPIO | TOSLINK |
|---|---|
| GPIO4 | VIN (DATA) |
| 3.3V | VCC |
| GND | GND |
- Single: https://www.aliexpress.com/item/1005011593001325.html
- 1–10 pcs: https://www.aliexpress.com/item/1005008393864163.html
- Cables: https://www.aliexpress.com/item/1005008202856228.html
- 1 × M2.6×10 self-tapping screw
Simplest version of all: just two wires and a resistor.
3D files are in 3D_Files
| ESP32-S3 GPIO | RCA |
|---|---|
| GPIO4 | VIN (DATA) |
| GND | GND |
-
1 pcs. 332-470ohm resistor https://www.aliexpress.com/item/1005005252979796.html
-
RCA female: https://www.aliexpress.com/item/1005010424983352.html
-
Cables: https://www.aliexpress.com/item/1005008202856228.html
Instead of a display, you can use a large illuminated button.
- Single click → Play / pause
- Double click → Next track
- Triple click → Previous track
- Hold → Toggle Sendspin / Home Assistant control mode
In HA mode, clicks are exposed for automations.
3D files are in 3D_Files
| ESP32-S3 GPIO | Button |
|---|---|
| GPIO1 | 1 |
| GPIO2 | 3 |
| GPIO3 | 4 |
| GND | 2 + 5 |
22mm Bicolor (RG) Black 3–6V https://www.aliexpress.com/item/1005004920346156.html
This version uses a combo board with a rotary encoder + button + display i found cheap on aliexpress.
3D files are in 3D_Files
(Same as display version + these)
| ESP32-S3 GPIO | Combo Board |
|---|---|
| GPIO12 | TRA |
| GPIO13 | TRB |
| GPIO43 (TX) | PSH |
| GPIO44 (RX) | KO |
(TX = GPIO43, RX=GPIO44 on the zero board)
ESP32-S3 Zero and PCM5102A as above +
https://www.aliexpress.com/item/1005009900611104.html
3D files are in 3D_Files
Same as SendspinZero-Display + SendspinZero-Button
same components as the other versions (esp32-s3 + PCM5102A DAC + Button) +
NO 3D files made for this device.
This is the only device with amplifier onboard, it's mono so for stereo speakers you need a module for each speaker and have them playing as stereo in MA.
(remove two pins from the spacer and solder the boards together)
| ESP32-S3 GPIO | MAX98357 |
|---|---|
| VCC (5V) | Vin |
| GND | GND |
| not used | SD |
| not used | GAIN |
| GPIO2 | DIN |
| GPIO3 | BCLK |
| GPIO4 | LRC |
GAIN pin can be connected to GND for 12db gain. (or with 100k resistor to GND for 15db gain)
same esp32-s3 zero as the other versions +
3D files are in 3D_Files
This is the only device based on esp32-s2 Supermini due to it's battery connection.
| ESP32-S3 GPIO | DAC |
|---|---|
| VCC (3V) | VCC |
| GND | GND |
| GPIO6 | DIN |
| GPIO7 | BCK |
| GPIO5 | WS |
| ESP32-S3 GPIO | Touch board |
|---|---|
| VCC (3V) | VCC |
| GND | GND |
| GPIO4 | I/O |
| ESP32-S3 GPIO | battery |
|---|---|
| + pole on back | + |
| - pole on back | - |
-
1 × ESP32-S3 Supermini https://www.aliexpress.com/item/1005010376539004.html
-
1 × Headphone amplifier DAC https://www.aliexpress.com/item/1005008889469187.html
-
1 × Touch sensor https://www.aliexpress.com/item/4000540638639.html
-
1 × 3.7V 802035-500Mah Battery (bought mine on temu but can be found on aliexpress too)
-
1 x 4mm switch https://www.aliexpress.com/item/1005010432259017.html
(3D file includes both with and without hole for switch)
This device differs from the others by being an input device instead of an output device.
When the Sendspin Source role is supported in ESPHome, it will allow external audio devices such as turntables, radios, cassette decks, CD players, and other devices with audio output to be connected to Music Assistant and played in sync across your Sendspin devices.
Important to remove two capasitors from the PCM1808 or the sound would not be clear:
pcm1808capasitors.mp4
3D files are in 3D_Files
| ESP32S3 Zero | PCM1808 pin |
|---|---|
| 5V | 5V |
| GND | GND |
| 3.3V | 3.3V |
| GPIO 3 | BCK |
| GPIO 4 | OUT |
| GPIO 5 | LRC |
| GPIO 6 | SCK |
| 3.5mm jack | PCM1808 pin |
|---|---|
| Right | RIN |
| GND | - (GND) |
| Left | LIN |
-
1 × ESP32-S3 Zero https://www.aliexpress.com/item/1005009890203011.html
(be sure you select esp32-s3, not esp32-c3 which the page defaults to.)
-
1 × PCM1808 ADC https://www.aliexpress.com/item/1005008885079639.html
-
1 × 3.5mm female Jack https://www.aliexpress.com/item/1005008243857446.html
-
10 short cords.
EOL

