Skip to the content
PCBKitNew board
4 layers44 × 44 mmBoot console, the printed circuit board in 3D

my-first-linux-board is a small F1C200S Linux board built around removable microSD storage, USB-C power and USB device data, a 3.3 V UART console, and power/status LEDs.

Size
44 × 44 mm
Copper layers
4
Thickness
1.6 mm
Parts
93
Nets
112
Pads
365
Tracks, vias
1,172, 165
Pours
5
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Sep 2026
Updated
19 Sep 2026

Overview

Boot console is an open-source printed circuit board by clarkmcc, from the clarkmcc/my-first-linux-board repository on GitHub. It is a 4-layer board of 44 × 44 mm with 93 parts on 112 nets, routed with 1,172 tracks and 165 vias.

It is built around the F1C200S, TPS62160DGKR and TPS2553DBVT-1, with the TPS386000RGPT, RT0603BRD0710KL and XFL4020-222MEC among its other parts. Its parts include 40 capacitors, 31 resistors, 7 ICs, 3 diodes and 3 connectors.

Main components

12

README

README.md

my-first-linux-board

my-first-linux-board is a small F1C200S Linux board built around removable microSD storage, USB-C power and USB device data, a 3.3 V UART console, and power/status LEDs. This repository contains the exact KiCad design used for the assembled board, the working Buildroot firmware source, the final JLCPCB fabrication package, and purchasing files.

The assembled board boots U-Boot 2026.01 and Linux 6.19.14 into a minimal BusyBox system. Both boot stages identify it as Clark's Board.

Top PCB render

Hardware

ItemFinal design
ProcessorAllwinner F1C200S with 64 MiB integrated DDR1
Board44 × 44 mm, four copper layers, R3 rounded corners
Power inputUSB-C, 5 V, TPS2553 current-limited input switch
RailsThree TPS62160 bucks for core, DDR, and I/O; TLV75528 analog LDO
StorageBottom-mounted microSD socket
ConsoleUART0 on a three-pin 3.3 V header: GND, TX, RX
USBNative USB peripheral connection over USB-C
IndicatorsFixed power LED and PC0-controlled active-low status LED
AssemblyComponents on top except the bottom microSD socket; through-hole UART header
Finish usedBlack solder mask, white silkscreen, ENIG

Open hardware/boot-console.kicad_pro in KiCad 10. The BOM, pinout, and component-purpose guide describe the final circuit.

The schematic PDF and combined copper-layer image are convenient read-only views of the same final design.

Firmware

The firmware directory is a Buildroot external tree. On macOS or another Docker host:

sh
cd firmware
./build-container.sh

The complete card image is generated at:

text
firmware/output/images/sdcard.img

The proven board configuration uses one-bit microSD transfers at 12.5 MHz. The physical board has four data traces, but Linux produced data errors in four-bit/25 MHz mode on the first assembly; the conservative setting boots reliably and is therefore the canonical configuration.

UART0 is 115200 baud, 8 data bits, no parity, and one stop bit. Linux also creates a composite USB device with a CDC ACM console and a CDC ECM Ethernet link. The board is 192.168.7.2/24; its small DHCP server assigns the attached host an address without advertising a default route or DNS server. On macOS, the gadget can enumerate before Network Settings creates a service. Find the interface whose MAC address is 02:00:00:00:07:01, assign the host side 192.168.7.1 for immediate access, and ask macOS to detect the new hardware:

sh
iface=$(for interface in $(ifconfig -l); do
  ifconfig "$interface" | grep -q 'ether 02:00:00:00:07:01' && echo "$interface"
done)
sudo ifconfig "$iface" inet 192.168.7.1 netmask 255.255.255.0 up
sudo networksetup -detectnewhardware

This address lasts until the interface is removed or reconfigured. After networksetup -detectnewhardware creates the service, give it the persistent static address used by this direct link. The service on the tested Mac is named Clark's Board Console + Ethernet:

sh
sudo networksetup -setmanual "Clark's Board Console + Ethernet" \
  192.168.7.1 255.255.255.0 0.0.0.0

If macOS uses a different service name, find it with networksetup -listallnetworkservices and substitute that name. DHCP did not activate this ECM link reliably, so keep the host address static.

Prometheus metrics are the only HTTP resource. Scrape them with:

sh
curl http://192.168.7.2/cgi-bin/metrics

The endpoint uses the Prometheus 0.0.4 text format and reports board identity, time, CPU, load, memory, VM, pressure, filesystem, microSD, network, socket, entropy, LED, service, USB gadget, and available thermal, CPU-frequency, and watchdog data. The root URL and every other HTTP path intentionally return 404.

SSH is available as root with a blank password:

sh
ssh root@192.168.7.2

This passwordless access is intended for a directly attached development cable. The first boot stores a generated SSH host key on the FAT boot partition so the host fingerprint remains stable while the read-only root stays unchanged.

The status LED appears at:

text
/sys/class/leds/boot-console:green:status

It uses the CPU activity trigger by default. Manual control:

sh
LED=/sys/class/leds/boot-console:green:status
echo none > "$LED/trigger"
echo 1 > "$LED/brightness"
echo 0 > "$LED/brightness"

See firmware/README.md for build details and firmware/docs/BRINGUP.md for bench bring-up.

Manufacturing and purchasing

The fabrication package retains the routed board exactly. USB impedance was not matched to a specific JLCPCB controlled-impedance stackup, so select and verify a stackup before changing USB routing or ordering a controlled-impedance revision.

Validation status

  • The assembled board reaches a Linux login prompt over UART.
  • The status LED works through the Linux LED subsystem after correcting duplicate PC0 pin ownership.
  • KiCad ERC and DRC pass on the final source.
  • The saved fabrication package matches the final KiCad source.
  • Power/reset calculations and saved transient results are documented in docs/POWER-VERIFICATION.md.

Generated firmware images, Buildroot downloads, compiler output, KiCad backups, caches, and editor state are intentionally excluded from Git.

Parts

93
QtyValueFootprintReferences
19100n / 100VCapacitor_SMD:C_0603_1608MetricC3, C4, C5, C10, C11, C12, C13, C15, C16, C17, C18, C19, C20, C22, C30, C36 +3
610u / 10VCapacitor_SMD:C_0805_2012MetricC26, C27, C31, C37, C39, C41
61u / 25VCapacitor_SMD:C_0603_1608MetricC24, C25, C28, C29, C43, C44
647k / 1%Resistor_SMD:R_0603_1608MetricR7, R8, R9, R10, R11, R22
410k / 0.1%Resistor_SMD:R_0603_1608MetricR14, R16, R18, R20
44.7u / 10VCapacitor_SMD:C_0603_1608MetricC8, C14, C21, C23
4M2.5 / 2.7mmMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4
32.2uH / XFL4020Inductor_SMD:L_Coilcraft_XxL4020L1, L2, L3
322u / 16VCapacitor_SMD:C_0805_2012MetricC38, C40, C42
3820R / 0.05%Resistor_SMD:R_0603_1608MetricR24, R26, R28
3TPS62160DGKRPackage_SO:MSOP-8_3x3mm_P0.65mmU2, U3, U4
21k / 1%Resistor_SMD:R_0603_1608MetricR30, R31
2200k / 1%Resistor_SMD:R_0603_1608MetricR3, R4
22k / 0.1%Resistor_SMD:R_0603_1608MetricR1, R2
230p / C0G / 1%Capacitor_SMD:C_0603_1608MetricC1, C2
25.1k / 1%Resistor_SMD:R_0603_1608MetricR5, R6
2Green LED / low currentLED_SMD:LED_0603_1608MetricD2, D3
11.8k / 0.1%Resistor_SMD:R_0603_1608MetricR25
1100k / 1%Resistor_SMD:R_0603_1608MetricR21
115.8k / 0.1%Resistor_SMD:R_0603_1608MetricR19
12.67k / 0.1%Resistor_SMD:R_0603_1608MetricR27
122RResistor_SMD:R_0603_1608MetricR12
124 MHz / CL 18 pFBootConsole:Raltron_H130A_5032Y1
1340R / 0.1%Resistor_SMD:R_0603_1608MetricR23
148.7k / 0.1%Resistor_SMD:R_0603_1608MetricR17
149.9k / 1%Resistor_SMD:R_0603_1608MetricR29
155.6k / 0.1%Resistor_SMD:R_0603_1608MetricR15
167.3k / 0.1%Resistor_SMD:R_0603_1608MetricR13
1F1C200sBootConsole:F1C200s_QFN88_10x10_P0.4_EP6.74U1
1GND / TX / RXConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1RESETButton_Switch_SMD:SW_SPST_TL3305ASW1
1TLV75528PDBVRPackage_TO_SOT_SMD:SOT-23-5U6
1TPS2553DBVTPackage_TO_SOT_SMD:SOT-23-6U5
1TPS386000RGPTBootConsole:TPS386000_RGP20_EP2.8U7
1USB-C / USB4105-GF-AConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6D1
1microSD / 104031-0811Connector_Card:microSD_HC_Molex_104031-0811J2

Questions

How big is the Boot console PCB?

It measures 44 × 44 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Boot console use?

93 parts, built around the F1C200S, TPS62160DGKR, TPS2553DBVT-1 and TPS386000RGPT. 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 Boot console KiCad files?

From the clarkmcc/my-first-linux-board repository on GitHub, at the commit this page was made from: the board is hardware/boot-console.kicad_pcb and its schematic hardware/boot-console.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Boot console design in my own project?

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

Similar boards

  • 4 layers129 × 79.5 mmStimjim, the printed circuit board in 3D

    Stimjim

    open-ephys/stimjim

    A precise intra and extracellular electrical stimulator

    236 parts7
  • 6 layers120.9 × 90 mmSvayamV3 IIK, the printed circuit board in 3D

    SvayamV3 IIK

    si-nalsal/pcb-mantis

    A servo-based UAV flight controller built around the STM32H743IIK6 (Cortex-M7, UFBGA-201, 0.65 mm pitch). The board distributes power to a fixed-wing/multirotor airframe with 16 PWM servo outputs, redundant IMU and…

    290 partsCERN-OHL-S-2.0
  • 6 layers450 × 235 mmBaseline, the printed circuit board in 3D

    Baseline

    DeadlySIn777/Controller

    Unfinished CNC controller motherboard: native KiCad sources, rules, DSN and global routing review

    2,723 parts
  • 4 layers150 × 100 mmPower profiler carrier, the printed circuit board in 3D

    Power profiler carrier

    Guiimartinho/open-power-profiler

    Open-source PPK2-class power profiler built on the Raspberry Pi Pico 2: 100 kSPS, 100 nA to 1 A auto-ranging, source meter and ampere meter modes, USB stream.

    425 partsMIT
  • 4 layers25 × 44 mmNordic clicker, the printed circuit board in 3D

    Nordic clicker

    yohummus/nordic-clicker

    Simple and small remote control based on the nRF52840 SoC

    58 parts
  • 4 layers50 × 65 mmFeroFlyF405, the printed circuit board in 3D

    FeroFlyF405

    Ozonised/FeroFlyF405

    FeroFlyF405 an open source STM32F405 based flight controller running INAV

    150 parts44CERN-OHL-P-2.0
  • 2 layers52 × 56.6 mmMuMo v2-Node, the printed circuit board in 3D

    MuMo v2-Node

    Strooom/MuMo-V2-Node-PCB

    PCB design for the Museum Monitor V2

    79 parts17
  • 2 layers100 × 100 mmSplitflap, the printed circuit board in 3D

    Splitflap

    besi/split-flap-clock

    Split Flap clock or calendar utilising four 28BYJ-48 stepper motors.

    91 parts1