Skip to the content
2 layers127 × 149 mmSpeakeasy panel 3x3, the printed circuit board in 3D

Speakeasy panel 3x3

W-Floyd/speakeasy1

ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

Size
127 × 149 mm
Copper layers
2
Thickness
1.6 mm
Parts
414
Nets
504
Pads
1,773
Tracks, vias
1,341, 954
Pours
9
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
28 May 2026
Updated
8 Aug 2026

Overview

Speakeasy panel 3x3 is an open-source printed circuit board by W-Floyd, from the W-Floyd/speakeasy repository on GitHub. It is a 2-layer board of 127 × 149 mm with 414 parts on 504 nets, routed with 1,341 tracks and 954 vias.

It is built around the ESP32-S3-MINI-1U-N4R2, MPM3810GQB-33-Z and MAX98357AETE+T, with the 210-A-SMD/02 and PH-6P立贴 among its other parts. Its parts include 45 capacitors, 45 resistors, 27 ICs, 18 connectors and 18 switches. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

Speakeasy

ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

Web Installer

Flash firmware directly from your browser at https://w-floyd.github.io/speakeasy/. Requires Chrome or Edge, or Firefox with the WebSerial extension.

The installer lets you pick your configuration interactively: protocol, server discovery, Bluetooth, IPv6, and WiFi TX power.

Firmware Variants

Two protocol stacks are available. Both Snapcast variants use CarlosDerSeher/snapclient under the hood — the difference is the surrounding framework:

ProtocolDiscoveryNotes
SendspinmDNSNative Music Assistant integration
Snapcast (ESPHome)mDNS or static IPsnapclient wrapped in ESPHome — Home Assistant integration
Snapcast (standalone)mDNS or manual IPsnapclient running bare ESP-IDF — no ESPHome/HA

Each variant is further configurable along these axes (ESPHome builds):

  • Bluetooth — BLE for WiFi provisioning via Improv; disable once set up to free ~100 KB RAM
  • IPv6 — dual-stack networking
  • WiFi TX power — stock, 9 dBm fixed, stock+ramp, or 9 dBm+ramp

Hardware

ComponentDetail
Board (ots)ESP32-S3 Supermini (ESP32-S3FH4R2) — 4MB flash, 2MB quad PSRAM. Hand-wired, or on the Speakeasy Lowcost PCB
Board (pcb)Custom Speakeasy PCB — ESP32-S3-MINI-1U-N4R2
DAC + AmplifierMAX98357A I2S DAC + Class D amplifier
I2S pins (ots)LRCLK: GPIO4, BCLK: GPIO5, DOUT: GPIO6
I2S pins (pcb)DOUT: GPIO4, BCLK: GPIO5, LRCLK: GPIO6

Architecture

Sendspin:

text
Music Assistant → Sendspin → ESP32 WebSocket → sendspin_media_source → speaker_source → I2S DAC

Two Home Assistant entities: sendspin_group_media_player (what MA controls) and the speaker_source player (drives I2S output).

Snapcast (ESPHome and standalone):

text
Snapcast server → CarlosDerSeher/snapclient → I2S DAC

ESPHome builds wrap snapclient as a media player entity exposed to Home Assistant. Standalone builds run snapclient directly on bare ESP-IDF with no ESPHome or HA integration.

Usage

bash
# Validate config without building
esphome config speakeasy-ss-mdns.yaml

# Compile firmware
esphome compile speakeasy-ss-mdns.yaml

# Flash over USB
esphome upload speakeasy-ss-mdns.yaml

# Flash OTA
esphome upload speakeasy-ss-mdns.yaml --device <ip>

# Stream logs
esphome logs speakeasy-ss-mdns.yaml --device <ip>

YAML filenames follow the pattern speakeasy-{protocol}-{options}.yaml. Protocol is ss (Sendspin) or sc (Snapcast). Options are mdns, bt (Bluetooth), 6 (IPv6), and WiFi power (w9, wr, w9r).

Configuration

Edit the substitutions at the top of the chosen variant YAML. For Snapcast variants with a static server address:

yaml
substitutions:
  snapcast_server_ip: "192.168.1.1"
  snapcast_server_port: "1704"

WiFi TX Power

The compact PCB antenna on the ESP32-S3 Supermini self-interferes at high TX power, causing Sendspin time sync failures. 8.5 dBm is the recommended cap. Ramp variants expose a Home Assistant number entity (WiFi TX Power) and automatically step power up in 0.25 dBm increments if WiFi drops, allowing recovery from weak-signal situations without raising the baseline permanently.

Standalone Snapcast

Standalone builds are configured via kconfig defaults in snapclient-kconfig/. The manual variant requires editing CONFIG_SNAPSERVER_HOST in snapclient-kconfig/sdkconfig.manual before building.

FAQ

Audio keeps cutting out with brief snippets then reconnecting.

Sendspin time sync is failing. Check logs for Time message X/8 timed out. Known causes on this hardware:

  • WiFi TX power too high — lower toward 8.5 dBm
  • WiFi power saving enabled — ensure power_save_mode: none

Parts

414
QtyValueFootprintReferences
183NPTHNPTHKiKit_MB_10_1, KiKit_MB_10_2, KiKit_MB_10_3, KiKit_MB_10_4, KiKit_MB_10_5, KiKit_MB_10_6, KiKit_MB_11_1, KiKit_MB_11_2, KiKit_MB_11_3, KiKit_MB_11_4, KiKit_MB_11_5, KiKit_MB_11_6, KiKit_MB_12_1, KiKit_MB_12_2, KiKit_MB_12_3, KiKit_MB_12_4 +167
36MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H1, H1, H1, H1, H1, H1, H1, H1, H2, H2, H2, H2, H2, H2, H2 +20
18100nFEasyEDA:C0402C3, C3, C3, C3, C3, C3, C3, C3, C3, C6, C6, C6, C6, C6, C6, C6 +2
185.1kEasyEDA:R0402R1, R1, R1, R1, R1, R1, R1, R1, R1, R2, R2, R2, R2, R2, R2, R2 +2
9100kEasyEDA:R0402R5, R5, R5, R5, R5, R5, R5, R5, R5
910kEasyEDA:R0402R3, R3, R3, R3, R3, R3, R3, R3, R3
910uFEasyEDA:C0603C1, C1, C1, C1, C1, C1, C1, C1, C1
910uFEasyEDA:C0402C2, C2, C2, C2, C2, C2, C2, C2, C2
91kEasyEDA:R0402R4, R4, R4, R4, R4, R4, R4, R4, R4
91uFEasyEDA:C0402C5, C5, C5, C5, C5, C5, C5, C5, C5
9210-A-SMD/02EasyEDA:CONN-SMD_210-A-SMD-02J2, J2, J2, J2, J2, J2, J2, J2, J2
93V3TestPoint:TestPoint_Pad_D1.5mmTP1, TP1, TP1, TP1, TP1, TP1, TP1, TP1, TP1
9BOOTEasyEDA:SW-SMD_L3.9-W3.0-P4.45SW1, SW1, SW1, SW1, SW1, SW1, SW1, SW1, SW1
9ESP32-S3-MINI-1U-N4R2EasyEDA:BULETM-SMD_ESPRESSIF_ESP32-S3-MINI-1U-N8U1, U1, U1, U1, U1, U1, U1, U1, U1
9GNDTestPoint:TestPoint_Pad_D1.5mmTP2, TP2, TP2, TP2, TP2, TP2, TP2, TP2, TP2
9MAX98357AETE+TEasyEDA:TQFN-16_L3.0-W3.0-P0.50-BL-EP1.5U2, U2, U2, U2, U2, U2, U2, U2, U2
9MPM3810GQB-33-ZEasyEDA:QFN-12_L3.0-W2.5_MPM3810AGQB-AEC1U3, U3, U3, U3, U3, U3, U3, U3, U3
9PH-6P立贴EasyEDA:CONN-SMD_6P-P2.0-L14.0-W5.4J1, J1, J1, J1, J1, J1, J1, J1, J1
9RSTEasyEDA:SW-SMD_L3.9-W3.0-P4.45SW2, SW2, SW2, SW2, SW2, SW2, SW2, SW2, SW2
9RXD0TestPoint:TestPoint_Pad_D1.5mmTP4, TP4, TP4, TP4, TP4, TP4, TP4, TP4, TP4
9TXD0TestPoint:TestPoint_Pad_D1.5mmTP3, TP3, TP3, TP3, TP3, TP3, TP3, TP3, TP3
6FiducialFiducialKiKit_FID_B_1, KiKit_FID_B_2, KiKit_FID_B_3, KiKit_FID_T_1, KiKit_FID_T_2, KiKit_FID_T_3

More from W-Floyd/speakeasy

7
  • 2 layers84 × 149 mmSpeakeasy panel 2x3, the printed circuit board in 3D

    Speakeasy panel 2x3

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    267 parts1
  • 2 layers127 × 149 mmSpeakeasy panel 3x3, the printed circuit board in 3D

    Speakeasy panel 3x3

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    243 parts1
  • 2 layers84 × 106 mmSpeakeasy panel 2x2, the printed circuit board in 3D

    Speakeasy panel 2x2

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    181 parts1
  • 2 layers84 × 149 mmSpeakeasy panel 2x3, the printed circuit board in 3D

    Speakeasy panel 2x3

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    153 parts1
  • 2 layers84 × 106 mmSpeakeasy panel 2x2, the printed circuit board in 3D

    Speakeasy panel 2x2

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    105 parts1
  • 2 layers41 × 41 mmSpeakeasy, the printed circuit board in 3D

    Speakeasy

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    25 parts1
  • 2 layers41 × 41 mmSpeakeasy Lowcost, the printed circuit board in 3D

    Speakeasy Lowcost

    W-Floyd/speakeasy

    ESPHome firmware for a custom ESP32-S3 WiFi speaker that integrates with Music Assistant via the Sendspin protocol or Snapcast for synchronized multi-room audio.

    6 parts1

Similar boards

  • 4 layers93.2 × 35 mmMk2 routed, the printed circuit board in 3D

    Mk2 routed

    Woz4tetra/auto-battlebot

    This project brings aim-assist and autonomous control to combat robots.

    75 parts3
  • 2 layers141 × 87.9 mmXiao corne, the printed circuit board in 3D

    Xiao corne

    Nianzu/xiao_corne

    77 parts
  • 4 layers65.1 × 132.8 mmFX580 Main EPD LAYOUT V8, the printed circuit board in 3D

    FX580 Main EPD LAYOUT V8

    ThVerstappen/AI-Fx580VNX

    Revision mới nhất hoàn tất ngày 11/10/2026. Mở FX580MainEPDLAYOUTV8.kicadpro bằng KiCad 10.0.5; PCB và schematic cùng tên. Thư viện local dùng ${KIPRJMOD}/lib.

    132 parts
  • 2 layers139.7 × 64.8 mmSprig console, the printed circuit board in 3D

    Sprig console

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    42 parts1.1kMIT
  • 2 layers90.5 × 50 mmMain control board, the printed circuit board in 3D

    Main control board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    42 parts1.1k
  • 2 layers89 × 55.5 mmMintypcb, the printed circuit board in 3D

    Mintypcb

    jackw01/pi-tin

    Open source raspberry pi handheld retro gaming console

    129 parts75CERN-OHL-W-2.0
  • 4 layers48 × 35.1 mmMicro esp32-s3, the printed circuit board in 3D

    Micro esp32-s3

    atomic14/esp32-tv-hardware

    This is Work In Progress - I'm still working on this.

    81 parts29

Questions

How big is the Speakeasy panel 3x3 PCB?

It measures 127 × 149 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Speakeasy panel 3x3 use?

414 parts, built around the ESP32-S3-MINI-1U-N4R2, MPM3810GQB-33-Z, MAX98357AETE+T and 210-A-SMD/02. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Speakeasy panel 3x3 KiCad files?

From the W-Floyd/speakeasy repository on GitHub, at the commit this page was made from: the board is pcb/speakeasy/speakeasy/Speakeasy_panel_3x3.kicad_pcb and its schematic pcb/speakeasy/speakeasy/Speakeasy Lowcost.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Speakeasy panel 3x3 design in my own project?

Its repository states no licence, so its author keeps all rights: ask W-Floyd before reusing the design.