Skip to the content
2 layers156 × 120.5 mmJukeboxPanelTwoBoards, the printed circuit board in 3D

JukeboxPanelTwoBoards

zutroy97/jukebox5

Upgrading an actual, old jukebox with Apple Music/Airplay.

Size
156 × 120.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
37
Nets
33
Pads
180
Tracks, vias
271, 1
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
28 Apr 2026
Updated
22 Aug 2026

Overview

JukeboxPanelTwoBoards is an open-source printed circuit board by zutroy97, from the zutroy97/jukebox5 repository on GitHub. It is a 2-layer board of 156 × 120.5 mm with 37 parts on 33 nets, routed with 271 tracks and 1 via.

Its parts include 12 connectors, 4 resistors and 2 capacitors.

README

README.md

A 1970s Jukebox, Reborn for AirPlay

My step-father bought a 1970s-era jukebox that, from what we can tell, spent a number of years in service at a Waffle House. We cleaned it up and gutted its electromechanical guts, original lighting, and speakers, replacing them with an early-90s Sony receiver, 6x9 car speakers, a powered subwoofer, and a Raspberry Pi running the fantastic shairport-sync. The jukebox is now an AirPlay speaker, reachable from any iPhone or Mac on the network.

It looked and sounded great — but the two 7-segment displays and the 12-button keypad were just sitting there dark, begging to be used again. This repo is what's driving them: the same Pi now also runs the original control panel, turning it into a "now playing" display and remote control for a Mac running Music.app.

Play something over AirPlay from another room, and the panel picks it up automatically: a rolling "songs played" counter ticks up on the original 3-digit display, and the jukebox's own numeric keypad lets you punch in a 3-digit code to queue a specific track from a shared playlist — the way the machine worked when it actually took quarters. Two 14-segment alphanumeric displays were added alongside the original panel to show artist, title, and album as they scroll by, since the jukebox never had anything capable of showing that on its own.

How it fits together

text
 Mac (Music.app) ──AirPlay──▶ shairport-sync ──MQTT──▶ Raspberry Pi ──▶ panel hardware
       ▲                                                    │
       └──────────────── SSH / JavaScript for Automation ◀──┘
  • shairport-sync receives the AirPlay stream and publishes track metadata and play/pause/stop events over MQTT.
  • The Pi subscribes, drives the physical panel in real time, and turns keypad presses into playback commands — sent back to the Mac either over MQTT or directly via JavaScript for Automation over SSH, whichever proves more reliable at the time.
  • A custom PCB and level shifter bridge the panel's original 5V shift-register and keypad-matrix electronics to the Pi's 3.3V GPIO, backed by a small Linux kernel driver that exposes the panel as a character device.

What's in here

PathWhat it is
src/The Python application: MQTT/AirPlay integration, keypad state machine, animated display rendering, playlist lookup
linux/jukeboxPanelModule/Kernel driver exposing the panel over /dev/jukebox_panel (text) and /dev/jukebox_panel_bin (binary, segment-level) protocols
hardware/KiCad schematics/PCB layouts for the panel driver board and level-shifter
systemd/Boot-time services: autostart, and a config-fetch step that pulls settings from the Mac
docs/Wiring diagrams, deployment notes, and a from-scratch functional specification of the whole system's behavior

Notable bits

  • Runs on a read-only root filesystem. The Pi is sandboxed with systemd (ProtectSystem=strict), so config changes happen by editing a file on the Mac, which the Pi fetches at boot — see docs/deployment.md.
  • Segment-by-segment reveal animations, not just instant text writes — characters materialize one LED segment at a time on both the alphanumeric and 7-segment displays.
  • A real hardware protocol, reverse-engineered and reimplemented: the panel's MM5450/MM5451 shift-register displays and matrix keypad are driven over a shared clock/data bus with no separate keypad wiring — see docs/SPECIFICATION.md for the full wire-level writeup.
  • Graceful degradation everywhere: a lost MQTT connection, a Mac that's unreachable at boot, or a corrupt config file each fall back to a safe, visible state instead of crashing.

Credit where it's due

None of this works without shairport-sync, Mike Brady's open-source AirPlay audio receiver. It's what turns the Pi into an AirPlay speaker in the first place, and its built-in MQTT metadata publisher — track info and play/pause/stop events over MQTT — is the signal this entire panel is built to react to. Everything in this repo is downstream of that project.

Parts

37
QtyValueFootprintReferences
8MountingHoleMountingHole:MountingHole_3.2mm_M3H2, H3, H4, H5, H6, H7, H8, H9
6TestPointTestPoint:TestPoint_THTPad_D2.5mm_Drill1.2mmTP_+5V1, TP_+5V2, TP_+5V3, TP_GND2, TP_GND3, TP_GND4
5Quad AlphanumericMyParts:Adafruit_1911_QuadAlphaNumA6, A7, A8, A9, A10
38P8CConnector_RJ:RJ45_Ninigi_GEJ10, J11, J12
2+3.3VConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3, J8
2+5VConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4, J9
2100uFCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC1, C2
210kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR1, R3
218kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR2, R4
2GNDConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5, J6
1Display HeaderConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ7
1Jukebox PanelPackage_DIP:DIP-10_W7.62mm_SocketJ2
1Raspberry_Pi_2_3Connector_IDC:IDC-Header_2x20_P2.54mm_HorizontalJ1

More from zutroy97/jukebox5

1
  • 2 layers164 × 58.5 mmJukeboxPanelTest, the printed circuit board in 3D

    JukeboxPanelTest

    zutroy97/jukebox5

    Upgrading an actual, old jukebox with Apple Music/Airplay.

    20 parts

Similar boards

  • 2 layers40 × 34 mmDD HIP9011, the printed circuit board in 3D

    DD HIP9011

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    37 parts1.2k
  • 2 layers53.9 × 23.2 mmAnalog, the printed circuit board in 3D

    Analog

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    37 parts1kGPL-3.0
  • 2 layers52 × 51.8 mmEsp32-homeassistant rf bridge, the printed circuit board in 3D

    Esp32-homeassistant rf bridge

    hackclub/OnBoard

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

    37 parts915
  • 2 layers87.8 × 59.8 mmFreeDeck SMD 2020-02, the printed circuit board in 3D

    FreeDeck SMD 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    37 parts772
  • 2 layers65 × 28 mmBMS Cell Module, the printed circuit board in 3D

    BMS Cell Module

    stuartpittaway/diyBMS

    Do it yourself battery management system for Lithium ion battery packs/cells

    37 parts676GPL-3.0
  • 2 layers48 × 32 mmFlatSat, the printed circuit board in 3D

    FlatSat

    Pwnsat/FlatSat

    Flatsat v1.0 is a hardware based platform for aerospace cybersecurity research

    37 parts575GPL-2.0
  • 2 layers38.1 × 153.7 mmDEFOG PANEL, the printed circuit board in 3D

    DEFOG PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    37 parts431
  • 2 layers47.8 × 27.4 mmVsf stm32h7b0, the printed circuit board in 3D

    Vsf stm32h7b0

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    37 parts341Apache-2.0

Questions

How big is the JukeboxPanelTwoBoards PCB?

It measures 156 × 120.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the JukeboxPanelTwoBoards use?

37 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 JukeboxPanelTwoBoards KiCad files?

From the zutroy97/jukebox5 repository on GitHub, at the commit this page was made from: the board is hardware/JukeboxPanelTwoBoards/JukeboxPanelTwoBoards.kicad_pcb and its schematic hardware/JukeboxPanelTest/JukeboxPanelTest.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the JukeboxPanelTwoBoards design in my own project?

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