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 pads on the back of the PCM5102A (as shown below)
- 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)

