Skip to the content
PCBKitNew board
2 layers296 × 234 mmDeck, the printed circuit board in 3D

A full fledged DAW in TUI and GUI flavors: Run it in the terminal or run it as a desktop app (Desktop App Coming Soon..maybe)

Size
296 × 234 mm
Copper layers
2
Thickness
1.6 mm
Parts
281
Nets
186
Pads
1,310
Tracks, vias
4,032, 1,063
Pours
44
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Mar 2026
Updated
6 Oct 2026

Overview

Deck is an open-source printed circuit board by joshjetson, from the joshjetson/phosphor repository on GitHub, published under the MIT licence. It is a 2-layer board of 296 × 234 mm with 281 parts on 186 nets, routed with 4,032 tracks and 1,063 vias.

It is built around the 74AHCT125D, 74HC165D and 74HC4067D, with the SK6812MINI-E among its other parts. Its parts include 79 capacitors, 42 diodes, 33 switches, 19 resistors and 15 ICs.

Main components

4

README

hardware/deck-pcb/README.md

Phosphor Deck controller board

The circuit board for the Phosphor Deck: every knob, button, fader and pad on top, and the electronics that read them underneath. It is the board drawn on the schematics, and it runs the firmware in ../../firmware.

Rev A has not been made yet. It passes KiCad's design-rule check with no errors and no unconnected pins, but nobody has held one. Build the breadboard test in the firmware's README before ordering.

What to send a board house

Everything is in fab/:

  • gerbers.zip — the board itself: two copper layers, 296 × 234 mm, 1.6 mm.
  • bom.csv — every part, grouped, with the part to buy where there is one.
  • positions-bottom.csv — where each surface-mount part goes, for a house that assembles the underside.
  • jlc-bom.csv and jlc-cpl.csv — the same parts and places in the exact form JLCPCB asks for, with their LCSC part numbers.

The board is laid out so that a board house only has to assemble one side: every surface-mount part (chips, resistors, capacitors, LEDs, the Pico 2) is on the bottom. Everything on top is through-hole and soldered by hand: 61 switches, 10 knobs, 8 faders, the 16 pad sensors' tabs and the pedal header.

Ordering from JLCPCB, step by step

JLCPCB makes the board and solders every part on the underside for you. You then solder the top parts by hand.

  1. Upload the board. On jlcpcb.com, choose Order now and add fab/gerbers.zip. It reads the size (296 × 234 mm) and the two layers by itself.

  2. Choose the board options. Layers 2, thickness 1.6 mm, FR-4. Five boards is the smallest order. Green is the cheapest colour; any colour works. For the surface finish, lead-free HASL is fine; ENIG costs more and gives flatter pads. Leave the rest as it is.

  3. Turn on PCB Assembly. Choose:

    • PCBA type: Standard. Economic is cheaper, but it is meant for one side, usually the top, and JLC sells the Pico 2 for Standard only. If Economic offers Bottom Side when you order and you will solder the Pico yourself, Economic works too.
    • Assembly side: Bottom Side. Every machine part is underneath.
    • Assembly quantity: 2 or more; it can be fewer than the boards.
    • Let JLC add the edge rails, fiducials and tooling holes if it asks. Standard assembly needs them and the board has none of its own.
    • Tick Confirm parts placement: for a small fee, one of their engineers checks the placements and asks you before building.
  4. Upload the two parts files: fab/jlc-bom.csv as the BOM and fab/jlc-cpl.csv as the CPL (the placement file). Every line should match a part. If one is out of stock, pick a part with the same value, rating and size, or wait.

  5. Check the placement preview. It shows each part on the board, seen from underneath. The files already turn each part the way JLC's drawings need, but look at each kind once:

    • the chips (U1–U16): the dot that marks pin 1 sits on the board's pin-1 mark;
    • the LEDs (D1–D42): the LED's cut corner matches its outline, and the body sits over the light hole;
    • the big capacitor (C79): its + side sits on the + pad;
    • the Pico 2 (U15): its USB socket is at the same end as on the board drawing.

    The small resistors and capacitors can sit either way round. If a part is wrong, select it and turn it in the preview, or change its Rotation in jlc-cpl.csv and upload it again.

  6. Solder the top by hand when the boards arrive: the 61 switches, 10 knobs, 8 faders, the 16 pad sensors' tabs and the pedal header. If you left the Pico 2 off the order (mark it do not place on the parts page), solder it underneath by its edge pads.

The board is larger than 650 cm², so JLC adds a large-board fee to the assembly. Basic parts need no loading fee in an Economic order; in a Standard order every kind of part has a small one.

Things to know before ordering

  • The LED light holes. The LEDs sit underneath and shine up through small holes. KiCad's own footprint for them puts their pads 0.25 mm from the hole's corners; the rest of the board keeps 0.3 mm. Most board houses accept this for internal cutouts — ask yours.
  • The buttons are 6 × 6 mm tactile switches under printed caps, because the panel's buttons sit closer together than keyboard switches allow. Pick the switch height that meets your caps through the top plate.
  • The faders are centred at 167 mm, 2 mm lower than the first panel drawing: a PTA4543's body is 60 mm long. The top plate's slots run from 143 to 191 mm.
  • Lights on narrow buttons are dots. The transport and function buttons are too narrow for a light inside the cap, so theirs sits just above as a dot in the top plate.
  • The Pico 2 is soldered flat by its edges on the underside. Its USB socket points along the board, so use a right-angle micro-USB cable to the Raspberry Pi.

Making it again

The board is generated, not drawn: generate.py places every part from the panel drawing and wires it from firmware/deck-layout.json, Phosphor's own control table, so the board, the firmware and the app share one table. route.sh runs the lot — placement, routing with Freerouting, ground pours, the design-rule check, and the files in fab/:

text
KICAD=/Applications/KiCad/KiCad.app \
FREEROUTING=freerouting-2.4.1.jar \
JAVA=<a Java 25 runtime>/bin/java \
./route.sh

It needs KiCad 10 and Freerouting 2.4, which needs Java 25. Routing takes about five minutes a try. The router's result varies a little from run to run and now and then leaves a connection unrouted, so the script tries up to three times and writes fab/ only from a board with no errors and nothing unconnected; drc.rpt is the check that board passed. A ground fill covers both sides, tied together by stitching vias wherever one fits.

Parts

281
QtyValueFootprintReferences
57100nC_0603_1608MetricC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +41
42SK6812MINI-ELED_SK6812MINI-E_3.2x2.8mm_P1.5mm_ReverseMountD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26
234x10kR_Array_Convex_4x0603RN1, RN2, RN10, RN11, RN12, RN13, RN14, RN15, RN16, RN17, RN18, RN19, RN20, RN21, RN22, RN23 +7
2010nC_0603_1608MetricC55, C56, C57, C58, C59, C60, C61, C62, C63, C64, C65, C66, C67, C68, C69, C70 +4
1610kR_0603_1608MetricR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16
1274HC165SOIC-16_3.9x9.9mm_P1.27mmU1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12
6M3MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6
274HC4067SOIC-24W_7.5x15.4mm_P1.27mmU13, U14
2LOOPSW_PUSH_6mmSW5, SW13
11-16SW_PUSH_6mmSW60
11000u 10VCP_Elec_8x10C79
1100kR_0603_1608MetricR18
110uC_0805_2012MetricC77
117-32SW_PUSH_6mmSW61
11kR_0603_1608MetricR17
1330R_0603_1608MetricR19
174AHCT125SOIC-14_3.9x8.7mm_P1.27mmU16
1ACTION 1SW_PUSH_6mmSW33
1ACTION 2SW_PUSH_6mmSW35
1ACTION 3SW_PUSH_6mmSW37
1ACTION 4SW_PUSH_6mmSW39
1ACTION 5SW_PUSH_6mmSW41
1ACTION 6SW_PUSH_6mmSW43
1ACTION 7SW_PUSH_6mmSW45
1ACTION 8SW_PUSH_6mmSW47
1ARMSW_PUSH_6mmSW55
1BACKSW_PUSH_6mmSW16
1BROWSESW_PUSH_6mmSW17
1CLICKSW_PUSH_6mmSW6
1COPYSW_PUSH_6mmSW27
1COUNT INSW_PUSH_6mmSW7
1DELETESW_PUSH_6mmSW29
1DOWNSW_PUSH_6mmSW22
1DUPLICATESW_PUSH_6mmSW30
1FADER 1Potentiometer_Bourns_PTA4543_Single_SlideRV1
1FADER 2Potentiometer_Bourns_PTA4543_Single_SlideRV2
1FADER 3Potentiometer_Bourns_PTA4543_Single_SlideRV3
1FADER 4Potentiometer_Bourns_PTA4543_Single_SlideRV4
1FADER 5Potentiometer_Bourns_PTA4543_Single_SlideRV5
1FADER 6Potentiometer_Bourns_PTA4543_Single_SlideRV6
1FADER 7Potentiometer_Bourns_PTA4543_Single_SlideRV7
1FADER 8Potentiometer_Bourns_PTA4543_Single_SlideRV8
1FUNCTIONRotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC1
1GRIDSW_PUSH_6mmSW11
1KNOB 1RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC3
1KNOB 2RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC4
1KNOB 3RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC5
1KNOB 4RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC6
1KNOB 5RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC7
1KNOB 6RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC8
1KNOB 7RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC9
1KNOB 8RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC10
1LASTSW_PUSH_6mmSW14
1LEFTSW_PUSH_6mmSW20
1LOCKSW_PUSH_6mmSW15
1MASTERSW_PUSH_6mmSW12
1MENUSW_PUSH_6mmSW19
1MUTESW_PUSH_6mmSW53
1MY PAGESW_PUSH_6mmSW51
1NAVIGATERotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC2
1NEWSW_PUSH_6mmSW32
1OVERDUBSW_PUSH_6mmSW4
1PAD 1PinHeader_1x02_P2.54mm_VerticalFSR1
1PAD 10PinHeader_1x02_P2.54mm_VerticalFSR10
1PAD 11PinHeader_1x02_P2.54mm_VerticalFSR11
1PAD 12PinHeader_1x02_P2.54mm_VerticalFSR12
1PAD 13PinHeader_1x02_P2.54mm_VerticalFSR13
1PAD 14PinHeader_1x02_P2.54mm_VerticalFSR14
1PAD 15PinHeader_1x02_P2.54mm_VerticalFSR15
1PAD 16PinHeader_1x02_P2.54mm_VerticalFSR16
1PAD 2PinHeader_1x02_P2.54mm_VerticalFSR2
1PAD 3PinHeader_1x02_P2.54mm_VerticalFSR3
1PAD 4PinHeader_1x02_P2.54mm_VerticalFSR4
1PAD 5PinHeader_1x02_P2.54mm_VerticalFSR5
1PAD 6PinHeader_1x02_P2.54mm_VerticalFSR6
1PAD 7PinHeader_1x02_P2.54mm_VerticalFSR7
1PAD 8PinHeader_1x02_P2.54mm_VerticalFSR8
1PAD 9PinHeader_1x02_P2.54mm_VerticalFSR9
1PADS ▲SW_PUSH_6mmSW58
1PADS ▼SW_PUSH_6mmSW59

The 251 most common of 281 parts.

Questions

How big is the Deck PCB?

It measures 296 × 234 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Deck use?

281 parts, built around the 74AHCT125D, 74HC165D, 74HC4067D and SK6812MINI-E. 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 Deck KiCad files?

From the joshjetson/phosphor repository on GitHub, at the commit this page was made from: the board is hardware/deck-pcb/deck.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Deck design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers181 × 97 mmOpenDeck r3.0.1, the printed circuit board in 3D

    OpenDeck r3.0.1

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    235 parts960Apache-2.0
  • 2 layers228.6 × 177.8 mmPi Backplane Connector, the printed circuit board in 3D

    Pi Backplane Connector

    freesurfer-rge/slothpu16

    Further Adventures in Electronics

    217 partsMIT
  • 2 layers273.8 × 109 mmTrueStrike42, the printed circuit board in 3D

    TrueStrike42

    byungyoonc/TrueStrike42

    TrueStrike42 is a columnar staggered unibody split keyboard designed to maximize performance and minimize finger fatigue.

    167 parts24
  • 2 layers319 × 142.5 mmGhoost Board, the printed circuit board in 3D

    Ghoost Board

    Broccoliux/Broccoli-board

    A fully custom 100% mechanical keyboard with a custom black PCB, hot-swap clicky switches, and full RGB where every internal component is hand soldered and nothing is by assemble.

    368 parts3
  • 2 layers278.9 × 138.4 mmTrueStrike56, the printed circuit board in 3D

    TrueStrike56

    byungyoonc/TrueStrike56

    TrueStrike56 is a columnar staggered unibody split hall effect keyboard with popular 4x6_4 layout.

    211 parts3MIT
  • 4 layers516.6 × 112.1 mmApex pcb design, the printed circuit board in 3D

    Apex pcb design

    HashirX-ux/Apex

    Apes is a wireless keyboard built for productivity.

    479 parts2MIT
  • 2 layers133.5 × 86 mmNexus PCB, the printed circuit board in 3D

    Nexus PCB

    HashirX-ux/Nexus

    A customizable mechanical macropad for productivity, shortcuts, and macros. Built with QMK firmware support.

    75 parts2MIT
  • 2 layers228.6 × 91.4 mmN teller xl diy, the printed circuit board in 3D

    N teller xl diy

    atoomnetmarc/n-teller-xl-diy

    n-teller-xl-diy is an IoT device that displays the number of checked in participants and visitors at the hackerspace called Revelation Space (or RevSpace).

    161 parts1Apache-2.0