Skip to the content
PCBKitNew board
4 layers97 × 55 mmUNIT1 R1, the printed circuit board in 3D

NEMESIS (Non-periodic Event Monitoring & Evaluation of Stimulus-Induced States). A desktop app for Stentor habituation: live USB-microscope preview, Arduino stepper taps (Periodic/Poisson, seedable), independent MP4 recording, CSV v1.0 logging + run.json, and plotting for fast, reproducible analysis.

Size
97 × 55 mm
Copper layers
4
Thickness
1.6 mm
Parts
72
Nets
72
Pads
293
Tracks, vias
374, 86
Pours
12
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Sep 2025
Updated
15 Sep 2026

Overview

UNIT1 R1 is an open-source printed circuit board by svdrecbd, from the svdrecbd/NEMESIS repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 97 × 55 mm with 72 parts on 72 nets, routed with 374 tracks and 86 vias.

It is built around the RP2350A, W25Q128JVSIQ and 10103594-0001LF, with the IRF4905S, SM03B-SRSS-TB(LF)(SN) and SMBJ18CA among its other parts. Its parts include 32 capacitors, 16 resistors, 5 ICs, 4 diodes and 4 connectors. It belongs with the robots and motor control boards and the RP2350 boards of this library.

Main components

6

README

firmware/unit1/UNIT1_firmware/hardware/kicad/UNIT1_R1/README.md

UNIT1 R1 KiCad design

This directory contains the first electrically connected UNIT1 board design. It is a real KiCad hierarchy, not a wiring sketch. The RP2350A core comes from Raspberry Pi's official minimal reference; the second sheet adds the protected 12 V input, 5 V supply, DRV8461 motor stage, safe boot defaults, and the motor connector used by the firmware.

Status: R1-LAYOUT physical-design checkpoint; not released for fabrication. The PCB now has the full UNIT1 outline, mounting holes, barrel input, USB, RP2350A core, protected power stage, DRV8461, right-angle motor header, four copper layers, power/ground pours, and routed high-current motor/power paths. The unfinished logic fanout is intentionally left as ratsnest connections; no provisional crossing copper remains on the board.

External-interface contract

The finished enclosure is one self-contained controller. It has exactly three normal field connections:

ConnectionUNIT1 endpointPurpose
One qualified 12 V, center-positive adapterJ10 barrel inputPowers the logic and motor stage
Existing stepper motor cableJ11 1x4 male headerFour driver outputs to the two motor windings
NEMESIS computerBoard USB receptacleUSB CDC control and UF2 firmware updates

The legacy chain—adapter, external buck/Big Easy Driver, Arduino, breadboard, button/switch, and the wiring between them—is not part of UNIT1. With the adapter connected, UNIT1 supplies itself and drives the motor; the computer only sends commands and receives status over USB. USB power remains protected as a service/update source and cannot back-power the 12 V motor rail.

J10, J11, and the Micro-B USB receptacle are now placed on board edges. J10 uses the current-production Würth 694103107102 land pattern and vendor STEP model as a provisional mechanical match. That jack has a 1.3 mm inside-contact class, while third-party YU1204 listings commonly claim a 5.5 mm OD / 2.5 mm ID plug. That makes the present J10 likely incompatible, but the actual plugs still have to be gauged before a replacement is selected or released.

Design files

  • UNIT1_R1.kicad_sch — root RP2350A/USB/flash/reset schematic.
  • UNIT1_MOTOR_POWER.kicad_sch — protected input, AP63205, DRV8461, and J11.
  • UNIT1_R1.kicad_pcb — four-layer integrated UNIT1 physical-design checkpoint.
  • UNIT1_R1_placement_preview.png — current top-side 3D placement render.
  • UNIT1_R1_back_preview.png — back-side render; regenerate after identity or layout changes.
  • UNIT1_R1_DRC.json — current full-board KiCad DRC result.
  • UNIT1_R1_QA.md — fabrication, firmware, thermal, connector, and multi-week qualification gates.
  • UNIT1_R1.kicad_pro — KiCad project settings.
  • UNIT1_R1_schematic.pdf — rendered two-page review copy.
  • UNIT1_R1_ERC.json — KiCad 10 ERC result.
  • tools/generate_schematic.py — reproducible hierarchy generator.
  • tools/build_pcb.py — reproducible outline, placement, zone, and critical-route builder.
  • tools/check_release.py — fail-closed automated DRC/connectivity/identity gate.
  • tools/check_netlist.py — asserts the 16 critical control, motor, and power nets.
  • artwork/cell_geometry_lab_logo.webp — archived source artwork; deliberately not placed on the PCB.
  • RASPBERRY_PI_REFERENCE_LICENSE.txt — upstream MIT license and disclaimer.

Electrical path now captured

text
J10 barrel tip
  -> F10 2.5 A time-lag fuse
  -> Q10 IRF4905S reverse-polarity stage + D10 VGS clamp
  -> VM_RAW + D11 SMBJ18CA + C20/C21 bulk/high-frequency bypass
       |-> U10 AP63205 5 V buck -> D21 --+
       |                                  +-> +5V_SYS -> U2 3.3 V LDO -> RP2350A
USB VBUS -------------------------> D20 --+
       |
       +-> U11 DRV8461 VM -> J11 pins A1, A2, B1, B2

The Schottky source OR prevents the 12 V-derived supply from feeding the USB port and prevents USB from back-powering the buck. U11 VREF is grounded because the firmware enables the DRV8461 internal 3.3 V reference before motion.

Firmware-to-driver net contract

RP2350A GPIOUNIT1 netDRV8461 pin/function
16DRV_SPI_MISO20 / SDO
17DRV_SPI_CS_N18 / nSCS, 10 kOhm pull-up
18DRV_SPI_SCK22 / SCLK
19DRV_SPI_MOSI21 / SDI
20DRV_STEP23 / STEP, 10 kOhm pull-down
21DRV_DIR24 / DIR, 10 kOhm pull-down
22DRV_ENABLE25 / ENABLE, 10 kOhm pull-down
26DRV_SLEEP_N26 / nSLEEP, 10 kOhm pull-down
27DRV_FAULT_N16 / nFAULT, 10 kOhm pull-up

J11 is a board-mounted 1x4, 2.54 mm male header so the photographed one-piece 4-position Harwin-style female motor housing remains intact:

J11 pinDriver outputIntended winding label
1AOUT1A1 / A+
2AOUT2A2 / A-
3BOUT1B1 / B+
4BOUT2B2 / B-

Confirm both coil pairs and the physical housing order with an ohmmeter before connection. Never insert or remove J11 with power applied.

Verification result

KiCad 10.0.5 loads both pages, exports the netlist/PDF, and reports no new ERC violations from the UNIT1 motor/power sheet. The full hierarchy reports the same 135 items as the untouched Raspberry Pi reference: three reference-design ERC errors, 130 warnings for unavailable Raspberry Pi private library names (the symbols are embedded), and two off-grid warnings. The three inherited errors are two power-drive declarations and duplicate LDO output pins; none is introduced by the UNIT1 circuitry.

The exported netlist was also asserted for all nine MCU/DRV control nets, all four motor outputs, VM_RAW, Q1_GATE, and +5V_SYS. Root and child sheets have no reference-designator collisions.

The full R1-LAYOUT PCB DRC checkpoint has zero shorts, zero track crossings, and zero clearance violations. It reports 17 unconnected items: one inherited GPIO0 disconnect in the imported reference board and 16 deliberate UNIT1 ratsnest items covering the nine MCU/driver control paths, their boot-state pull branches, and VCP/C40. The remaining non-connectivity DRC entries are library/silkscreen cleanup, dangling ends created by those open routes, four starved thermals, and one C44/L20 courtyard overlap. This is a clean routing checkpoint, not an order-ready DRC result.

Schematic-parity mode at the preceding checkpoint reported 50 footprint identifier/value/field mismatches introduced by the physical-board import/generator. The generator now preserves library-qualified footprint IDs; the remaining field and mounting-hole parity items still require regeneration and review before release.

The back silkscreen identity is text-only and must read, exactly:

text
UNIT1 by The Laboratory of Cell Geometry
University of California, San Francisco
Designed & Manufactured in California

To regenerate the sheets:

sh
python3 -m venv .venv-hardware
.venv-hardware/bin/pip install -r tools/requirements.txt
.venv-hardware/bin/python tools/generate_schematic.py \
  --symbol-dir /path/to/KiCad/10.0/symbols
kicad-cli sch erc --format json --severity-all \
  --output UNIT1_R1_ERC.json UNIT1_R1.kicad_sch
kicad-cli sch export pdf --output UNIT1_R1_schematic.pdf UNIT1_R1.kicad_sch
.venv-hardware/bin/python tools/check_netlist.py --kicad-cli /path/to/kicad-cli
kicad-cli sch export netlist --format kicadxml \
  --output /tmp/UNIT1_R1.xml UNIT1_R1.kicad_sch
/path/to/kicad-python tools/build_pcb.py \
  --netlist /tmp/UNIT1_R1.xml --footprint-root /path/to/KiCad/footprints
kicad-cli pcb drc --refill-zones --save-board --format json \
  --output UNIT1_R1_DRC.json UNIT1_R1.kicad_pcb
python3 tools/check_release.py

check_release.py is expected to fail at the current R1-LAYOUT checkpoint. It must not be bypassed to order a mission board; manual gates and qualification evidence are tracked in UNIT1_R1_QA.md.

Fabrication release gates

The rest of schematic capture and placement can continue now. These items must be resolved before ordering boards:

  1. Trace the YU1204 12 V / 4 A and XSJ-1205000HUS 12 V / 5 A supplies to their legacy loads; then gauge both plugs and verify a real plug against J10 before retaining the provisional Würth footprint. Both labels indicate center-positive.
  2. Measure TP1 on the working Big Easy Driver rig and confirm the target phase current. Current equivalence cannot be inferred from the knob position.
  3. Verify the installed motor's two coil pairs with an ohmmeter. The photographed 17HS19-2004S1 housing and black/green/red/blue order match the published pinout.
  4. Add USB ESD protection and decide whether R1 keeps the reference Micro-B receptacle or migrates to USB-C.
  5. Finish the 16 visible UNIT1 ratsnest connections, relocate the pull network, close VCP/C40, fix the C44/L20 courtyard, complete ground thermals, and clean silkscreen/library-rule noise without reintroducing crossings.
  6. Validate the PWP-28 exposed-pad land pattern and 2 oz stackup/thermal target, then run full ERC/DRC, fabrication-output inspection, current-limited bring-up, and the one-to-one golden-rig calibration before experimental use.

Primary source designs

  • Raspberry Pi, RP2350A Minimal KiCAD, R4/S1, 2026-07-03.
  • Raspberry Pi, Hardware design with RP2350.
  • Texas Instruments, DRV8461 65-V, 3-A stepper motor driver.
  • Diodes Incorporated, AP63200/AP63201/AP63203/AP63205.
  • SparkFun ROB-12859 Big Easy Driver v1.6 schematic and current guidance.

Parts

72
QtyValueFootprintReferences
11100nRPI_COMPILED:generic_capc1005x50C2, C8, C10, C11, C12, C13, C14, C15, C16, C17, C18
610kR_0603_1608MetricR30, R31, R32, R33, R34, R35
4M3MountingHole_3.2mm_M3MH1, MH2, MH3, MH4
310uRPI_COMPILED:generic_capc2012x125C1, C5, C19
31kRPI_COMPILED:generic_resc1005x35R2, R4, R6
20RPI_COMPILED:generic_resc1005x35R9, R10
2100nC_0603_1608MetricC31, C43
2100n 50VC_0805_2012MetricC21, C41
210n 50VC_0805_2012MetricC44, C45
215pRPI_COMPILED:generic_capc1005x50C3, C4
222u 10VC_1206_3216MetricC32, C33
227RPI_COMPILED:generic_resc1005x35R7, R8
24.7uRPI_COMPILED:generic_capc1005x50_wideC6, C7
2434133025816RPI_COMPILED:wurthelek_434133025816SW1, SW2
1100kR_0603_1608MetricR20
1100u 35VCP_Radial_D8.0mm_P3.50mmC46
110103594-0001LFRPI_COMPILED:amphenol_10103594-0001lfJ1
110kRPI_COMPILED:generic_resc1005x35R1
110u 35VC_1206_3216MetricC30
112 V VGS CLAMPD_SOD-123D10
112MHzRPI_COMPILED:generic_xtalcc320x250x80-4X1
11u 10VC_0603_1608MetricC42
11u 16VC_0805_2012MetricC40
12.5 A TIME-LAGFuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF10
13.3uRPI_COMPILED:abracon_aota-b201610s3r3-101-tL1
133RPI_COMPILED:generic_resc1005x35R3
14.7uRPI_COMPILED:generic_capc1005x50C9
14.7u >=2.7AL_6.3x6.3_H3L20
1470u 35VCP_Radial_D10.0mm_P5.00mmC20
1AP63205WU-7TSOT-23-6U10
1DRV8461SPWPRHTSSOP-28-1EP_4.4x9.7mm_P0.65mm_EP2.75x6.2mm_ThermalViasU11
1IRF4905STO-263-3_TabPin2Q10
1MOTOR — MALE DUPONTPinHeader_1x04_P2.54mm_HorizontalJ11
1NCP1117ST33T3GRPI_COMPILED:onsemi_ncp1117st33t3gU2
1RP2350ARPI_COMPILED:rpi_rp2350a_viasU1
1SM03B-SRSS-TB(LF)(SN)RPI_COMPILED:jst_sm03b-srss-tb-lf--sn-J4
1SMBJ18CAD_SMBD11
1SS14 BUCK ORD_SMAD21
1SS14 USB ORD_SMAD20
1W25Q128JVSIQRPI_COMPILED:generic_soic127p790x195-8U3
1WURTH 694103107102 — VERIFY FITBarrelJack_Wuerth_694103107102_1.35x3.9mmJ10

Questions

How big is the UNIT1 R1 PCB?

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

What parts does the UNIT1 R1 use?

72 parts, built around the RP2350A, W25Q128JVSIQ, 10103594-0001LF and IRF4905S. 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 UNIT1 R1 KiCad files?

From the svdrecbd/NEMESIS repository on GitHub, at the commit this page was made from: the board is firmware/unit1/UNIT1_firmware/hardware/kicad/UNIT1_R1/UNIT1_R1.kicad_pcb and its schematic firmware/unit1/UNIT1_firmware/hardware/kicad/UNIT1_R1/UNIT1_MOTOR_POWER.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the UNIT1 R1 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

  • 2 layers52 × 51 mmRPI RP2350A MINIMAL R4-S1, the printed circuit board in 3D

    RPI RP2350A MINIMAL R4-S1

    Vandewaetere/gitea-kicad-viewer

    View KiCad projects in Gitea: interactive schematic, PCB, 3D and BOM right in the file view. No external requests, works for private repos.

    43 parts1MIT
  • 4 layers77.5 × 96.1 mmRPI RP2350A MINIMAL R4-S1, the printed circuit board in 3D

    RPI RP2350A MINIMAL R4-S1

    cmoulang/rp3250b-pcb

    Project to build an RP2350B based PCB using the Raspberry Pi minimal PCB as a starting point.

    63 parts
  • 4 layers80 × 60 mmBee core v01-kicad9-bringup, the printed circuit board in 3D

    Bee core v01-kicad9-bringup

    TheronRogers/bee-whoop-tailsitter

    Bee whoop-scale dual-motor dual-elevon tailsitter — VibeCAD airframe + Bee Core RP2350 bring-up electronics

    69 parts
  • 2 layers77.5 × 48.5 mmE Ink Badge, the printed circuit board in 3D

    E Ink Badge

    Acidicts/E-Ink-Badge

    Inspired by Github Universe 2024 badge

    78 parts
  • 2 layers29 × 49 mmSecukey, the printed circuit board in 3D

    Secukey

    Eladji/secukey

    a yubikey like pcb design

    44 parts
  • 2 layers79 × 78 mmHB UNI-644, the printed circuit board in 3D

    HB UNI-644

    FUEL4EP/HomeAutomation

    Home Automation repository of FUEL4EP

    71 parts15CC0-1.0
  • 2 layers80 × 55 mmBraking shunt, the printed circuit board in 3D

    Braking shunt

    HacklabJKL/sergei_cnc2

    Second version of Hacklab's custom built CNC machine

    19 parts6