Skip to the content
PCBKitNew board
2 layers80 × 92 mmSpotify pad, the printed circuit board in 3D

A small macropad to get comfortable with 3d design, cad, printing, and pcb design

Size
80 × 92 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
15
Pads
58
Tracks, vias
63, 15
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
29 Aug 2026
Updated
4 Sep 2026

Overview

Spotify pad is an open-source printed circuit board by brady-27, from the brady-27/Macropad repository on GitHub. It is a 2-layer board of 80 × 92 mm with 12 parts on 15 nets, routed with 63 tracks and 15 vias.

Its parts include 3 switches, 1 capacitor, 1 resistor, 1 IC and 1 connector. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

PCB/README.md

Spotify Pad

A media macropad: 3 hotswap MX keys (⏮ ⏯ ⏭), an EC11 rotary encoder for volume (push = mute), and a 1.54" ST7789 240×240 color display showing the current song, artist, and album cover. Brain: Seeed Studio XIAO RP2040 (USB-C).

Board: 80 × 92 mm, 2 layers. Passes KiCad DRC with 0 errors, all nets routed, ground pours on both sides. Schematic and PCB netlists verified identical.

Files

  • spotify-pad.kicad_pro / .kicad_sch / .kicad_pcb — full KiCad 7 project (opens fine in KiCad 8/9 too, they read v7 files)
  • footprints/SpotifyPad.pretty/ — project-local footprints (self-contained, including the XIAO RP2040 DIP footprint and the Kailh hotswap socket)
  • gerbers/ — ready-to-order gerbers + Excellon drill files (zip the folder and upload to JLCPCB / PCBWay as-is)
  • BOM.csv — parts list (~$15 in parts + switches/caps)
  • firmware/ — CircuitPython boot.py + code.py for the XIAO
  • host/spotify_display.py — desktop script that feeds song info + cover art to the display via USB serial (Spotify Web API)

How it works

The three keys and the encoder send standard USB media keys — they work immediately with Spotify, YouTube, anything, on any OS, no software needed.

The display can't pull album art on its own (the XIAO has no WiFi), so the little spotify_display.py script runs on your computer, polls the Spotify API, and streams the title/artist/cover over the same USB cable.

Wiring (already routed on the PCB)

XIAO pinSignalGoes to
D0SW_BACKKey 1 (⏮)
D1SW_PLAYKey 2 (⏯)
D2SW_NEXTKey 3 (⏭)
D3ENC_SWEncoder push
D4ENC_AEncoder channel (east pad)
D5ENC_BEncoder channel (west pad)
D6LCD_RSTDisplay RES
D7LCD_CSDisplay CS
D8 (SCK)LCD_SCKDisplay SCL
D9LCD_DCDisplay DC
D10 (MOSI)LCD_MOSIDisplay SDA
3V3+3V3Display VCC, R1→BLK, C1

All switches go to ground; firmware uses internal pull-ups. R1 (0Ω) ties the display backlight to 3V3 permanently — leave it off and bodge BLK to a spare pin if you ever want PWM dimming.

Build notes

  1. Hotswap sockets go on the BACK of the board (the side without silkscreen labels). Switches click in from the front.
  2. The XIAO solders on the front at the top-left, USB-C facing the top edge. Use the castellated edge pads flush, or 7-pin headers.
  3. The display plugs into the 1×8 socket, module resting over the silkscreen outline. Check your module's pin order against the silk (BLK CS DC RES SDA SCL VCC GND, left→right) — most 1.54"/1.3" ST7789 modules match, a few vendors swap pins.
  4. Encoder: any EC11 with switch; 20mm shaft fits standard knobs.

Firmware

  1. Hold BOOT on the XIAO while plugging in → drag-drop CircuitPython UF2 (circuitpython.org/board/seeeduino_xiao_rp2040)
  2. Copy firmware/boot.py and firmware/code.py to the CIRCUITPY drive
  3. Copy adafruit_hid, adafruit_st7789, adafruit_display_text from the Adafruit CircuitPython bundle into CIRCUITPY/lib/
  4. For the display feed: pip install spotipy pyserial pillow requests, create a (free) Spotify developer app, export the credentials, run python host/spotify_display.py

Ordering the PCB

Upload a zip of gerbers/ to JLCPCB: 2 layers, 1.6mm, any color (it's a Spotify pad — green solder mask, obviously). Default options are fine.

Parts

12
QtyValueFootprintReferences
4M3SpotifyPad:MountingHole_3.2mm_M3H1, H2, H3, H4
3MX_HOTSWAPSpotifyPad:SW_Hotswap_Kailh_MXSW1, SW2, SW3
10RSpotifyPad:R_0805_2012MetricR1
110uFSpotifyPad:C_0805_2012MetricC1
1EC11SpotifyPad:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmRE1
1LCD_1.54in_ST7789SpotifyPad:PinSocket_1x08_P2.54mm_VerticalJ1
1XIAO-RP2040SpotifyPad:XIAO-RP2040-DIPU1

Questions

How big is the Spotify pad PCB?

It measures 80 × 92 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Spotify pad use?

12 parts. 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 Spotify pad KiCad files?

From the brady-27/Macropad repository on GitHub, at the commit this page was made from: the board is PCB/spotify-pad.kicad_pcb and its schematic PCB/spotify-pad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Spotify pad design in my own project?

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

Similar boards

  • 2 layersNrf bga, the printed circuit board in 3D

    Nrf bga

    github-linguist/linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    12 parts14kMIT
  • 2 layers66.9 × 74.5 mmDeskHop, the printed circuit board in 3D

    DeskHop

    hrvach/deskhop

    Fast Desktop Switching Device

    12 parts7.9kGPL-3.0
  • 2 layers40 × 15 mmSensors, the printed circuit board in 3D

    Sensors

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    12 parts3kApache-2.0
  • 2 layers42.7 × 56.5 mmTle6240 driver, the printed circuit board in 3D

    Tle6240 driver

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    12 parts1.2k
  • 2 layers49 × 25 mm5v boost regulator, the printed circuit board in 3D

    5v boost regulator

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    12 parts915
  • 2 layers28.3 × 10.3 mmTap Photosensor PCB, the printed circuit board in 3D

    Tap Photosensor PCB

    VoronDesign/Voron-Tap

    Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

    12 parts716GPL-3.0
  • 2 layers25.4 × 70.4 mmTpmsniffer, the printed circuit board in 3D

    Tpmsniffer

    stacksmashing/pico-tpmsniffer

    A simple, very experimental TPM sniffer for LPC bus

    12 parts696