diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/README.md b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/README.md
new file mode 100644
index 00000000..772a5937
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/README.md
@@ -0,0 +1,5 @@
+# SparkFun Pro Micro - 5V/16MHz (DEV-12640)
+
+For more information about this board, visit the official SparkFun product page:
+
+[https://www.sparkfun.com/products/12640](https://www.sparkfun.com/products/12640)
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit.tsx b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit.tsx
new file mode 100644
index 00000000..365e8fb2
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit.tsx
@@ -0,0 +1,561 @@
+import { USB_MICRO_XNJ_JB } from "../SparkFun-microB-USB-Breakout/USB_MICRO_XNJ_JB"
+import { MIC5219_3_3YM5_TR } from "./imports/MIC5219_3_3YM5_TR"
+import { ATMEGA32U4_MU } from "./imports/ATMEGA32U4_MU"
+import { sel } from "tscircuit"
+
+const LEFT_PIN_LABELS = {
+ pin1: "TXO",
+ pin2: "RXI",
+ pin3: "GND",
+ pin4: "GND",
+ pin5: "2",
+ pin6: "3",
+ pin7: "4",
+ pin8: "5",
+ pin9: "6",
+ pin10: "7",
+ pin11: "8",
+ pin12: "9",
+}
+
+const RIGHT_PIN_LABELS = {
+ pin1: "RAW",
+ pin2: "GND",
+ pin3: "RST",
+ pin4: "VCC",
+ pin5: "A3",
+ pin6: "A2",
+ pin7: "A1",
+ pin8: "A0",
+ pin9: "15",
+ pin10: "14",
+ pin11: "16",
+ pin12: "10",
+}
+
+const HEADER_PIN_ORDER = [
+ "pin1",
+ "pin2",
+ "pin3",
+ "pin4",
+ "pin5",
+ "pin6",
+ "pin7",
+ "pin8",
+ "pin9",
+ "pin10",
+ "pin11",
+ "pin12",
+]
+
+const ProMicro5V16MHz = () => (
+
+ {/* USB Micro-B on the top short edge */}
+
+
+ {/* Left header (TXO, RXI, GND, GND, 2..9) */}
+
+
+ {/* Right header (RAW, GND, RST, VCC, A3..A0, 15, 14, 16, 10) */}
+
+
+ {/*
+ ────── TOP STRIP (between USB and MCU) ──────
+ Row A (y=+10.5): F1 fuse | D2 diode | U2 regulator
+ Row B (y= +8.5): R6/R7 USB data resistors | C3 reg bypass
+ Row C (y= +6.5): TX LED + R4 | RX LED + R5 | C1/C2 reg caps
+ All components live OUTSIDE the central 7x7mm MCU body.
+ */}
+
+ {/* Row A: power-input protection */}
+
+
+ {/* D1 omitted: parallel USB_VBUS->RAW with F1 triggers dual-net autorouter error */}
+
+
+
+ {/* Row C: TX/RX status LEDs - see routing note in README; wired via TX_LED/RX_LED nets */}
+
+
+
+
+
+
+
+
+ {/* ATmega32U4 MCU - centered */}
+
+
+ {/* Row B: USB data series resistors */}
+
+
+
+
+ {/* Regulator input/output caps, lined up to the right of the regulator */}
+
+
+
+
+
+
+ {/* UCAP capacitor, tucked left of the MCU */}
+
+
+ {/* 16 MHz SMD crystal below MCU (5.0 x 3.2 mm can, 2-pad SMT) */}
+
+
+ {/* RST pull-up resistor (right of ProMicro logo) */}
+
+
+ {/* 22 pF crystal load capacitors flanking Y1 */}
+
+
+
+
+ {/* 100 nF VCC decoupling caps - on either side of MCU body */}
+
+
+
+
+ {/*
+ Silkscreen labels:
+ - "ProMicro" sits in the gap between the MCU (top half) and the crystal (bottom half)
+ - "5V/16MHz" / "DEV-12640" sit at the very bottom edge
+ */}
+
+
+
+
+ {/* Reference designators printed on silkscreen, off to the side of components */}
+
+
+
+
+
+ {/* */}
+
+ {/* "16.000 / SPK W13" markings printed on the crystal can */}
+
+
+
+ {/* Crystal can body outline (silkscreen rectangle around Y1) */}
+ {/* */}
+
+
+ {/* SparkFun flame mark approximation (top-right corner) */}
+
+
+ {/* Bottom layer text */}
+
+
+ {/* Schematic netlabels */}
+
+
+
+
+)
+
+export default ProMicro5V16MHz
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-3d.snap.png b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-3d.snap.png
new file mode 100644
index 00000000..79b2e07e
Binary files /dev/null and b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-3d.snap.png differ
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-pcb.snap.svg b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-pcb.snap.svg
new file mode 100644
index 00000000..7a779579
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-pcb.snap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-schematic.snap.svg b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-schematic.snap.svg
new file mode 100644
index 00000000..2c8559c5
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/__snapshots__/SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit-schematic.snap.svg
@@ -0,0 +1,499 @@
+
\ No newline at end of file
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/ATMEGA32U4_MU.tsx b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/ATMEGA32U4_MU.tsx
new file mode 100644
index 00000000..d0ac97e5
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/ATMEGA32U4_MU.tsx
@@ -0,0 +1,557 @@
+import type { ChipProps } from "@tscircuit/props"
+
+const pinLabels = {
+ pin1: ["pin1"],
+ pin2: ["UVcc"],
+ pin3: ["D_NEG"],
+ pin4: ["D_POS"],
+ pin5: ["UGnd"],
+ pin6: ["UCap"],
+ pin7: ["VBus"],
+ pin8: ["pin8"],
+ pin9: ["pin9"],
+ pin10: ["pin10"],
+ pin11: ["pin11"],
+ pin12: ["pin12"],
+ pin13: ["RESET"],
+ pin14: ["VCC1"],
+ pin15: ["GND1"],
+ pin16: ["XTAL2"],
+ pin17: ["XTAL1"],
+ pin18: ["pin18"],
+ pin19: ["pin19"],
+ pin20: ["pin20"],
+ pin21: ["pin21"],
+ pin22: ["pin22"],
+ pin23: ["GND2"],
+ pin24: ["AVCC1"],
+ pin25: ["pin25"],
+ pin26: ["pin26"],
+ pin27: ["pin27"],
+ pin28: ["pin28"],
+ pin29: ["pin29"],
+ pin30: ["pin30"],
+ pin31: ["pin31"],
+ pin32: ["pin32"],
+ pin33: ["pin33"],
+ pin34: ["VCC2"],
+ pin35: ["GND3"],
+ pin36: ["pin36"],
+ pin37: ["pin37"],
+ pin38: ["pin38"],
+ pin39: ["pin39"],
+ pin40: ["pin40"],
+ pin41: ["pin41"],
+ pin42: ["AREF"],
+ pin43: ["GND4"],
+ pin44: ["AVCC2"],
+ pin45: ["EP"],
+} as const
+
+export const ATMEGA32U4_MU = (props: ChipProps) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ cadModel={{
+ objUrl:
+ "https://modelcdn.tscircuit.com/easyeda_models/assets/C112161.obj?uuid=f4f28d69e1114069a23b840a459c7d15",
+ stepUrl:
+ "https://modelcdn.tscircuit.com/easyeda_models/assets/C112161.step?uuid=f4f28d69e1114069a23b840a459c7d15",
+ pcbRotationOffset: 90,
+ modelOriginPosition: {
+ x: -0.000025400000026820635,
+ y: -0.000012700000070253736,
+ z: -0.02,
+ },
+ }}
+ {...props}
+ />
+ )
+}
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/MIC5219_3_3YM5_TR.tsx b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/MIC5219_3_3YM5_TR.tsx
new file mode 100644
index 00000000..e8a2869c
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/imports/MIC5219_3_3YM5_TR.tsx
@@ -0,0 +1,137 @@
+import type { ChipProps } from "@tscircuit/props"
+
+const pinLabels = {
+ pin1: ["IN"],
+ pin2: ["GND"],
+ pin3: ["EN"],
+ pin4: ["BYP"],
+ pin5: ["OUT"],
+} as const
+
+export const MIC5219_3_3YM5_TR = (props: ChipProps) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ cadModel={{
+ objUrl:
+ "https://modelcdn.tscircuit.com/easyeda_models/assets/C29613.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
+ stepUrl:
+ "https://modelcdn.tscircuit.com/easyeda_models/assets/C29613.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
+ pcbRotationOffset: 0,
+ modelOriginPosition: { x: 0, y: 0.000012700000070253736, z: -0.049083 },
+ }}
+ {...props}
+ />
+ )
+}
diff --git a/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/index.tsx b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/index.tsx
new file mode 100644
index 00000000..48402fca
--- /dev/null
+++ b/boards/SparkFun-Pro-Micro-5V-16MHz-DEV-12640/index.tsx
@@ -0,0 +1,3 @@
+import ProMicro5V16MHz from "./SparkFun-Pro-Micro-5V-16MHz-DEV-12640.circuit"
+
+export default ProMicro5V16MHz