Skip to the content
PCBKitNew board
6 layers140 × 100 mmSbc baseboard, the printed circuit board in 3D

Baseboard for remote management of an attached SBC: K64 MCU as USB HID to the target and Ethernet to the workstation, six switched USB-A ports, isolated SPDT relays, level-shifted console, switched target power

Size
140 × 100 mm
Copper layers
6
Thickness
1.67 mm
Parts
271
Nets
222
Pads
1,100
Tracks, vias
451, 189
Pours
91
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
13 Sep 2026
Updated
16 Oct 2026

Overview

Sbc baseboard is an open-source printed circuit board by calicopizzadelivery, from the calicopizzadelivery/sbc-development-baseboard repository on GitHub, published under the Apache-2.0 licence. It is a 6-layer board of 140 × 100 mm with 271 parts on 222 nets, routed with 451 tracks and 189 vias.

It is built around the MK20DX128VFM5, MK64FN1M0VLL12 and KSZ8081RNACA, with the FT231XS-R, USBLC6-2SC6 and TPS2553DBV among its other parts. Its parts include 102 resistors, 82 capacitors, 27 diodes, 16 ICs and 13 connectors. It belongs with the computers and single-board computers and home automation and IoT boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

12

README

README.md

sbc-development-baseboard

One board carrying the hardware you need to develop on and remotely manage an attached single-board computer: a microcontroller that is a USB device to the target and a console to you, four individually switched USB-A ports, an FTDI header straight to the workstation, two isolated SPDT relays on screw terminals, a level-shifted serial console, and a switched supply for the target itself.

It replaces a bench that currently takes an FRDM-K64F, a QT Py, an 8-channel relay board, a two-tier USB hub cascade and a CP2102N dongle, wired together by hand and documented in a port map that has to be re-surveyed whenever anything is replugged.

What it does

FunctionHow
Type at the targetUSB HID keyboard + mouse from the K64's device port
Cut power to any USB deviceFour USB-A ports on two stacked receptacles, each with its own current-limited switch
Hard power-cycle the targetSwitched +5V_TGT rail up to 3 A behind an eFuse, or any PSU up to 30 V / 5 A through an isolated relay
Toggle target I/O — FORCE_RECOVERY and friendsTwo SPDT relays, dry contacts, Phoenix terminals
Read the target's serial consoleMCU-owned UART, auto level translation 1.2–3.6 V
Read it from the workstation directlyFT231X on an internal hub port, standard 6-pin FTDI header, 3.3 V
Do all of it from somewhere else10/100 Ethernet to the workstation
Do all of it with no networkUSB CDC console over the onboard DAPLink

Every one of those is addressable from the same ASCII protocol the relay controller and the HID injector already speak — one line in, one line out, starting OK or ERR. See docs/protocol.md.

The shape of it

Block diagram

text
workstation ──USB-C──> hub ──> 4x USB-A (switched)     ──> whatever you hang on the bench
                           ──> FT231X, FTDI header     ──> target's console, direct
            ──RJ45───> K64 ──> USB-C device port       ──> target's USB host port
                           ──> UART + VREF             ──> target's console
                           ──> 2x SPDT dry contacts    ──> target's recovery/reset pins
                           ──> switched +5V, 3 A       ──> target's supply
 target PSU ──Phoenix──> isolated relay, NO, 5 A       ──> target's supply, any voltage
 5 V adapter ──barrel──> +5V, one rail, 4 A, 20 W      ──> everything but the passthrough

140 × 100 mm, four M3 corner holes. Your connectors leave the left edge, the target's the right; an LED on every rail, every switched output and every relay coil, and none on the passthrough, whose voltage is whatever you plugged in.

One USB-C for the workstation and a barrel jack for power (2026-10-10; two USB-C inlets, a PD charger beside the workstation port, until then). A workstation port that carries data offers 15 W at best, and four switched ports plus a target rail need more than that, so power has its own connector: a 5 V 4 A adapter on a 2.5 mm barrel jack, 20 W, which firmware budgets across the ports and the target rail. A USB-C PD sink feeding two 5 V bucks did that job first, and went because of what it cost the board rather than the bench: 339 parts became 270, and the one rail layer no longer carries a 3 A inlet beside two 6 A rails, which is where the router stalled at 98 open connections on six layers. Keeping power off the workstation link also means the board stays alive when that link is down, so the MCU can power-cycle the entire USB tree including its own path back to you.

Where the design came from

Most of the non-obvious decisions here are bench scars from the Jetson work, not preferences. They are written up in full in docs/hardware-spec.md; the short version:

  • Nothing the MCU depends on sits downstream of a switch it controls. The DAPLink, the Ethernet PHY and the MCU itself are all upstream. OFF ALL can never take out the console.
  • Rails boot to the state that does no harm. USB ports and the target rail come up powered; relays come up de-energized. Resistors set this while the MCU is still in reset, so a reset never drops a load or asserts recovery.
  • The device port cannot back-feed the target. Its VBUS is sense-only through a blocking element. This is the fix for the failure where cutting the target's power left it half-alive for 90 seconds because a self-powered FRDM-K64F was pushing 5 V up its own device port.
  • The relays are signal relays with gold-clad contacts. Switching a 1.8 V logic pin is a dry circuit; silver power-relay contacts grow an oxide film that such a signal cannot break down.
  • The MCU owns the target's console. No USB-UART bridge to wedge and look exactly like a target that is not booting.
  • The target's PSU passes through on its own nets. A 19 V / 3 A return current has no business on the board's ground plane or its USB shields. It crosses one relay contact — normally open — so nothing powers until the baseboard says so, and a dead baseboard leaves the target off.

Status

Specification, a generated schematic (KiCad 10, a root sheet and eight sub-sheets, ERC clean) and a generated, placed six-layer board, both in hardware/kicad/sbc-baseboard/ with a PDF of the schematic for review. The board is placed and bulk-routed by the house standard's engine (see hardware/kicad/README.md) and is being routed again for the barrel-jack inlet (2026-10-10; the board routed before it, with the PD inlet and the two bucks, stopped at 98 open connections on six layers and 116 on four); the hand pass that finishes the routing is open. No firmware.

Next: the routing and the hand pass on the board, then firmware.

Layout

text
docs/hardware-spec.md   block diagram, part selection, power and pin budgets,
                        safe states, and the open questions
docs/protocol.md        the console protocol, across both transports
docs/block-diagram.*    the diagram above, SVG source and rendered PNG
scripts/block-diagram.py regenerates both; run it with every configuration change
hardware/kicad/         the KiCad project (sbc-baseboard/) and the generator that
                        produced its first pass (gen/) — see hardware/kicad/README.md
hardware/datasheets/    the parts that matter

Related

Licence

Apache-2.0. See LICENSE.

Parts

271
QtyValueFootprintReferences
40100nC_0603_1608MetricC104, C206, C207, C208, C209, C210, C211, C213, C301, C302, C305, C309, C310, C403, C404, C405 +24
3710kR_0603_1608MetricR203, R204, R208, R209, R210, R211, R214, R308, R403, R405, R406, R407, R408, R409, R410, R411 +21
121kR_0603_1608MetricR101, R309, R310, R426, R429, R432, R435, R438, R705, R803, R806, R809
9100kR_0603_1608MetricR102, R104, R216, R401, R402, R701, R802, R805, R808
9LED GREENLED_0603_1608MetricD401, D402, D403, D404, D405, D504, D505, D601, D703
610uC_0805_2012MetricC105, C212, C214, C426, C504, C709
6470R_0603_1608MetricR103, R501, R502, R503, R507, R605
6PESD5V0S1ULD_SOD-882D501, D502, D503, D506, D701, D702
6USBLC6-2SC6SOT-23-6U202, U401, U408, U409, U410, U411
51uC_0603_1608MetricC203, C401, C402, C411, C413
522uC_1206_3216MetricC418, C420, C422, C424, C710
523.7kR_0603_1608MetricR425, R428, R431, R434, R437
52u2C_0603_1608MetricC201, C202, C304, C602, C605
5330R_0603_1608MetricR205, R206, R207, R301, R302
5TPS2553DBVSOT-23-6U403, U404, U405, U406, U407
41N4148WD_SOD-123D801, D803, D805, D807
45.1kR_0603_1608MetricR201, R202, R422, R423
475R_0603_1608MetricR303, R304, R305, R306
4M3MountingHole_3.2mm_M3_PadH1, H2, H3, H4
32.2kR_0603_1608MetricR801, R804, R807
322uC_0805_2012MetricC106, C107, C308
333R_0603_1608MetricR307, R602, R603
3LED REDLED_0603_1608MetricD802, D804, D806
21.8kR_1206_3216MetricR810, R811
212pC_0603_1608MetricC204, C205
218pC_0603_1608MetricC606, C607
222pC_0603_1608MetricC306, C307
227R_0603_1608MetricR504, R505
22N7002SOT-23Q801, Q802
233pC_0603_1608MetricC415, C416
24.7kR_0603_1608MetricR212, R213
247pC_0603_1608MetricC502, C503
247u/10VC_1210_3225MetricC101, C102
2600R@100MHzL_0603_1608MetricFB201, FB301
2COM/NO/NCPhoenixContact_MC_1,5_3-G-3.5_1x03_P3.50mm_HorizontalJ11, J12
2G6K-2F-Y DC5Relay_DPDT_Omron_G6K-2F-YK801, K802
2LED AMBERLED_0603_1608MetricD102, D103
2USB-A x2USB_A_Wuerth_61400826021_Horizontal_StackedJ4, J5
1+5V_TGT outPhoenixContact_MSTBA_2,5_2-G-5,08_1x02_P5.08mm_HorizontalJ14
1100u/10VCP_Elec_8x10.5C103
110nC_0603_1608MetricC712
112.0k 1%R_0603_1608MetricR404
1120pC_0603_1608MetricC108
1196kR_0603_1608MetricR703
11nC_0603_1608MetricC711
11n/2kVC_1206_3216MetricC303
120kR_0603_1608MetricR707
124MHzCrystal_SMD_3225-4Pin_3.2x2.5mmY401
125MHzCrystal_SMD_3225-4Pin_3.2x2.5mmY301
132.768kHzCrystal_SMD_3215-2Pin_3.2x1.5mmY201
1453kR_0603_1608MetricR105
1470n/4AL_1210_3225MetricL101
147kR_0603_1608MetricR215
14u7C_0805_2012MetricC410
15 V in, 2.5 mmBarrelJack_Kycon_KLDX-0202-xC_HorizontalJ2
16.04k 1%R_0603_1608MetricR708
16.49k 1%R_0603_1608MetricR311
175kR_0603_1608MetricR702
18MHzCrystal_SMD_3225-4Pin_3.2x2.5mmY601
1AO3400ASOT-23Q803
1BAT54D_SOD-123D201
1ConsolePhoenixContact_MC_1,5_4-G-3.5_1x04_P3.50mm_HorizontalJ13
1DAP RESETSW_SPST_PTS645Sx43SMTR92SW601
1DMP3013SFVDiodes_PowerDI3333-8Q101
1FT231XSSSOP-20_3.9x8.7mm_P0.635mmU501
1FTDI headerPinHeader_1x06_P2.54mm_HorizontalJ9
1GPIO + I2CPinHeader_2x06_P2.54mm_VerticalJ15
1JW1FSN-DC5VRelay_SPDT_Panasonic_JW1_FormCK803
1KSZ8081RNAQFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmU301
1LTV-817DIP-4_W7.62mmU801
1MK20DX128VFM5QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mmU601
1MK64FN1M0VLL12LQFP-100_14x14mm_P0.5mmU201
1PSU in (isolated)PhoenixContact_MSTBA_2,5_2-G-5,08_1x02_P5.08mm_HorizontalJ18
1PSU out (isolated)PhoenixContact_MSTBA_2,5_2-G-5,08_1x02_P5.08mm_HorizontalJ19
1RESETSW_SPST_PTS645Sx43SMTR92SW201
1RGB heartbeatLED_RGB_1210D202
1RJ45 magjack 10/100RJ45_Kycon_G7LX-A88S7-BP-xx_HorizontalJ10
1RTS/DTRSolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP501
1SMAJ5.0AD_SMAD101
1SWDPinHeader_2x05_P1.27mm_VerticalJ16

The 261 most common of 271 parts.

Questions

How big is the Sbc baseboard PCB?

It measures 140 × 100 mm and has 6 copper layers, 1.67 mm thick.

What parts does the Sbc baseboard use?

271 parts, built around the MK20DX128VFM5, MK64FN1M0VLL12, KSZ8081RNACA and FT231XS-R. 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 Sbc baseboard KiCad files?

From the calicopizzadelivery/sbc-development-baseboard repository on GitHub, at the commit this page was made from: the board is hardware/kicad/sbc-baseboard/sbc-baseboard.kicad_pcb and its schematic hardware/kicad/sbc-baseboard/daplink.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Sbc baseboard design in my own project?

Its repository publishes it under the Apache-2.0 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

  • 4 layers116 × 62 mmAccesscontrol, the printed circuit board in 3D

    Accesscontrol

    catphish/accesscontrol

    64 parts
  • 4 layers100 × 60 mmKigeyes power io board, the printed circuit board in 3D

    Kigeyes power io board

    jrymk/KigEyes

    Video passthrough and electronic eye for Kigurumi masks

    280 parts
  • 2 layers405 × 135 mmKeyboard, the printed circuit board in 3D

    Keyboard

    jasperhax0r/CompaqPortableKeyboard

    Mechanical Keyboard for the original Compaq Portable XT-Class

    188 parts2MIT
  • 4 layers99.9 × 99.9 mmEcu dev board, the printed circuit board in 3D

    Ecu dev board

    D3stan/ecu-dev-board

    265 parts1
  • 2 layers159 × 99 mmController f407, the printed circuit board in 3D

    Controller f407

    wa1hco/rotator_controller

    Clean slate rebuild of full featured rotator controller.

    122 partsGPL-3.0
  • 6 layers53.3 × 101.6 mmMega2560plus, the printed circuit board in 3D

    Mega2560plus

    sneakylizard123-4/Mega2560plus

    Mega 2560+ is an upgraded version of the Arduino Mega 2560. It keeps the same form factor and pinout as the original so it still works with every Mega shield, but it adds an onboard sensor suite and an ESP32-S3…

    149 parts
  • 4 layers144 × 127 mmFrothfet, the printed circuit board in 3D

    Frothfet

    hoeken/frothfet

    Yarrboard load controller board with current sense, volt sense, fuses, and sender support.

    394 parts14GPL-3.0
  • 4 layers100 × 100 mmPhmod, the printed circuit board in 3D

    Phmod

    gallicchio/AMOD-and-RFMOD

    The tutorial's 2x12 adapter (/mudd/133electronics/icepi-zero-dac-adc/adapterboard/) with a 2 x 6 right-angle Pmod socket on a 15 mm extension of its right-hand end, so an Icepi Zero can drive AMOD-A's and RF-MOD's Pmod…

    234 parts