

Chainaxe
This directory contains the editable Rev A.1 KiCad baseline.
- Size
- 100 × 70 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 163
- Nets
- 78
- Pads
- 521
- Tracks, vias
- 0, 0
- Pours
- 1
- Routed
- Not yet
- KiCad
- KiCad 7 (file 20221018)
- Created
- 14 Dec 2023
- Updated
- 16 Aug 2026
Overview
Chainaxe is an open-source printed circuit board by johnny9, from the johnny9/chainaxe repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 100 × 70 mm with 163 parts on 78 nets.
It is built around the ESP32-S3-WROOM-1-N16R8, EMC2305-1-AP-TR and TPD4E05U06DQAR. Its parts include 49 resistors, 27 capacitors, 6 ICs, 6 transistors and 6 connectors. It belongs with the ESP32 boards of this library.
Main components
3ESP32-S3-WROOM-1-N16R8
SMD,25.5x18mm-103.5dBm -40℃~+65℃ 2.4GHz 20.5dBm 355mA 3V~3.6V 95mA ESP32-S3R8 On-board PCB Antenna UART、SPI、I2C、GPIO、I2S、USB SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesEMC2305-1-AP-TR
QFN-16-EP(4x4)-40℃~+125℃ 3V~3.6V 625uA I2C、SMBus QFN-16-EP(4x4) Brushed DC Motor Drivers ROHSMicrochip TechnologyBrushed DC Motor DriversTPD4E05U06DQAR
USON-10-40℃~+125℃ 0.5pF 10nA 14V 2.5A@8/20us 40W@8/20us 5.5V 6.5V ESD Four channels IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Unidirectional USON-10(1x2.5) ESD and Surge Protection (TVS/ESD) ROHSTexas InstrumentsESD Protection Devices
README
hardware/chainaxe/README.mdChainAxe KiCad project
This directory contains the editable Rev A.1 KiCad baseline.
Files
chainaxe.kicad_pro— KiCad project settings and provisional net classes.chainaxe.kicad_sch— annotated preliminary schematic.chainaxe.kicad_pcb— 100 × 70 mm unrouted placement baseline.chainaxe.kicad_dru— conservative prototype rules.pin-net-audit.csv— exhaustive expected/actual connection contract for every schematic pin.symbols/ChainAxe.kicad_symandsym-lib-table— project-local custom symbols.ChainAxe.pretty/andfp-lib-table— nine pinned project-local manufacturer-derived/audited footprints.
Open chainaxe.kicad_pro in KiCad 9. KiCad may update generated metadata when the project is first saved; review that diff before committing it.
The source package is structurally checked by scripts/validate_design.py. The exhaustive pin-net-audit.csv contract is independently checked against physical symbol-pin endpoints by scripts/validate_schematic_pinmap.py; that validator explicitly converts KiCad library Y-up coordinates to schematic Y-down coordinates. scripts/validate_pcb_geometry.py checks different-net pad intersections, NPTH/copper conflicts, body/courtyard collisions, and undocumented edge overhangs. All three are dependency-free CI checks. This build environment does not include kicad-cli, so a local KiCad 9 ERC/DRC run remains mandatory before any fabrication export; none of the source validators replaces it.
Fan startup is hardware-defined: R105 holds FAN_ARM low, while R106–R109 hold the four EMC2305 PWM inputs to U8 low. This keeps the open-drain fan sinks released (the supported-fan full-speed-safe state) even if firmware asserts FAN_ARM before configuring the EMC2305. J30's audit enumerates every USB4105-GF-A signal/power contact; its A9/B9 VBUS and A12/B12 ground contacts are stacked on their shared logical nets. The official footprint numbers all four conductive shell stakes as S1, so one audited S1 pin owns that common shell net.
C112 is the populated 100 nF USBLC6 VBUS bypass and must sit directly beside U9 pins 5/2. C3, the optional 220 µF 3V3 bulk footprint, is native DNP until AP64501 loop and load-transient validation proves an appropriate bulk value.
Design status
This is an engineering-entry design, not an order-ready board. The schematic and PCB capture the intended architecture, safe startup states, connector map, and major candidate parts. The following remain release blockers:
- real-mating-part fit and keyed circuit-view checks for J1, J2–J6, J10, and USB-C; J6's exact connector/part remains a stop-order choice;
- fan current, inrush, reverse-polarity FET, connector, copper, and thermal calculations;
- AP64501 feedback, compensation, inductor, capacitance, and thermal verification;
- ESD/TVS clamping analysis and final ordering codes;
- exact first hashboard SKU/profile, including RESET policy and local voltage-off behavior;
- KiCad ERC, PCB synchronization, routing, stack-up impedance calculation, and DRC; and
- JLCPCB assembly preview, BOM/CPL reconciliation, and first-article review.
Do not generate production Gerbers from this baseline without closing the stop-order gates in ../../design-review-checklist.md.
PCB intent
The PCB is intentionally unrouted. The fan-current band stays at the top/right edge, the J10 interface lane stays at the left edge, and the ESP32-S3 antenna faces the bottom board edge with a 15 mm keepout. The USB_90OHM_PLACEHOLDER and FAN_POWER_PROVISIONAL net classes are reminders, not validated geometries.
Parts
163| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 4.7k | Resistor_SMD:R_0402_1005Metric | R85, R86, R87, R88, R100, R101, R102 |
| 4 | 100k GATE OFF | Resistor_SMD:R_0402_1005Metric | R200, R203, R206, R209 |
| 4 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C2, C100, C102 |
| 4 | 100p TACH FILTER DNP | Capacitor_SMD:C_0402_1005Metric | C200, C201, C202, C203 |
| 4 | 10uF 50V X7R | Capacitor_SMD:C_1210_3225Metric | CIN1, CIN2, CIN3, CIN4 |
| 4 | 2N7002 OPEN-DRAIN PWM | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4 |
| 4 | 36k TACH PULLUP | Resistor_SMD:R_0402_1005Metric | R201, R204, R207, R210 |
| 4 | M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 0R HIGH OPTION DNP | Resistor_SMD:R_0402_1005Metric | R94, R96, R98 |
| 3 | 22uF 10V X7R | Capacitor_SMD:C_0805_2012Metric | COUT1, COUT2, COUT3 |
| 3 | 4.7k DEFAULT LOW | Resistor_SMD:R_0402_1005Metric | R93, R95, R97 |
| 3 | SS14 1A 40V | Diode_SMD:D_SMA | D1, D2, D3 |
| 3 | TPD4E05U06DQAR | ChainAxe:TI_DQA0010A_USON10_2.5x1.0_P0.5 | U10, U11, U13 |
| 2 | 3V3 | TestPoint:TestPoint_Pad_D1.0mm | TP5, TP13 |
| 2 | 470uF 25V LOW ESR | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C20, C21 |
| 2 | DMP3013SFV-7 PROVISIONAL | ChainAxe:PowerDI3333-8_DMP3013SFV | Q5, Q6 |
| 1 | 10.5k COMP — DS41980 TABLE 1 | Resistor_SMD:R_0402_1005Metric | R65 |
| 1 | 100R QOD LINK — PROVISIONAL | Resistor_SMD:R_0402_1005Metric | R51 |
| 1 | 100k | Resistor_SMD:R_0402_1005Metric | R50 |
| 1 | 100k 1% | Resistor_SMD:R_0402_1005Metric | R70 |
| 1 | 100k 1% PWM1 SAFE LOW | Resistor_SMD:R_0402_1005Metric | R106 |
| 1 | 100k 1% PWM2 SAFE LOW | Resistor_SMD:R_0402_1005Metric | R107 |
| 1 | 100k 1% PWM3 SAFE LOW | Resistor_SMD:R_0402_1005Metric | R108 |
| 1 | 100k 1% PWM4 SAFE LOW | Resistor_SMD:R_0402_1005Metric | R109 |
| 1 | 100k ARM OFF | Resistor_SMD:R_0402_1005Metric | R105 |
| 1 | 100k EN OFF | Resistor_SMD:R_0402_1005Metric | R84 |
| 1 | 100k ESP-SIDE PLUG PULLDOWN | Resistor_SMD:R_0402_1005Metric | R83 |
| 1 | 100k OE DISABLE | Resistor_SMD:R_0402_1005Metric | R80 |
| 1 | 100k RESET BIAS-DN DNP | Resistor_SMD:R_0402_1005Metric | R92 |
| 1 | 100k RESET BIAS-UP DNP | Resistor_SMD:R_0402_1005Metric | R91 |
| 1 | 100n 25V BOOTSTRAP | Capacitor_SMD:C_0402_1005Metric | C15 |
| 1 | 100n TMUX VDD | Capacitor_SMD:C_0402_1005Metric | C103 |
| 1 | 100n U12 VCC | Capacitor_SMD:C_0402_1005Metric | C104 |
| 1 | 100n U6 VCCA | Capacitor_SMD:C_0402_1005Metric | C80 |
| 1 | 100n U6 VCCB | Capacitor_SMD:C_0402_1005Metric | C81 |
| 1 | 100nF 50V X7R — U9 VBUS BYPASS | Capacitor_SMD:C_0402_1005Metric | C112 |
| 1 | 10k BOOT pull-up | Resistor_SMD:R_0402_1005Metric | R111 |
| 1 | 10k EN pull-up | Resistor_SMD:R_0402_1005Metric | R110 |
| 1 | 10k RESET OE DISABLE | Resistor_SMD:R_0402_1005Metric | R89 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C70 |
| 1 | 10n SOFT START | Capacitor_SMD:C_0402_1005Metric | C16 |
| 1 | 12k 1% | Resistor_SMD:R_0402_1005Metric | R60 |
| 1 | 1M SHIELD | Resistor_SMD:R_0402_1005Metric | R116 |
| 1 | 1n 2kV SHIELD | Capacitor_SMD:C_0805_2012Metric | C111 |
| 1 | 1n CT TO VIN — PROVISIONAL | Capacitor_SMD:C_0402_1005Metric | C50 |
| 1 | 1u | Capacitor_SMD:C_0805_2012Metric | C101 |
| 1 | 1u EN delay | Capacitor_SMD:C_0402_1005Metric | C110 |
| 1 | 1u HB_3V3 LOCAL | Capacitor_SMD:C_0402_1005Metric | C52 |
| 1 | 1u U5 VIN BYPASS | Capacitor_SMD:C_0402_1005Metric | C51 |
| 1 | 2.7n COMP — DS41980 TABLE 1 | Capacitor_SMD:C_0402_1005Metric | C17 |
| 1 | 22.1k 1% — DS41980 TABLE 1 | Resistor_SMD:R_0402_1005Metric | RFB2 |
| 1 | 220uF LOW ESR — DNP POST-LOOP VALIDATION | Capacitor_SMD:CP_Elec_8x10.2 | C3 |
| 1 | 22R USB D+ | Resistor_SMD:R_0402_1005Metric | R114 |
| 1 | 22R USB D- | Resistor_SMD:R_0402_1005Metric | R115 |
| 1 | 22k CLK STRAP | Resistor_SMD:R_0402_1005Metric | R103 |
| 1 | 27k 1% | Resistor_SMD:R_0402_1005Metric | R71 |
| 1 | 3.3uH SRP5030T-3R3M | Inductor_SMD:L_Bourns-SRP5030TA_5.7x5.2mm | L1 |
| 1 | 33R RX PROVISIONAL | Resistor_SMD:R_0402_1005Metric | R82 |
| 1 | 33R TX | Resistor_SMD:R_0402_1005Metric | R81 |
| 1 | 33k ADDR STRAP | Resistor_SMD:R_0402_1005Metric | R104 |
| 1 | 5.1k CC1 | Resistor_SMD:R_0402_1005Metric | R112 |
| 1 | 5.1k CC2 | Resistor_SMD:R_0402_1005Metric | R113 |
| 1 | 56p COMP POLE DNP — DS41980 TABLE 1 C6 | Capacitor_SMD:C_0402_1005Metric | C18 |
| 1 | 69.8k 1% — DS41980 TABLE 1 | Resistor_SMD:R_0402_1005Metric | RFB1 |
| 1 | AP64501SP-13 — 3V3 BUCK PROVISIONAL | ChainAxe:AP64501_SO8EP | U3 |
| 1 | BITMAIN HASHBOARD DATA 2x9 / 18 POS | ChainAxe:PM200-2-09-W-4.3_THT | J10 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_CK_RS282G05A3 | SW1 |
| 1 | BZX84C12LT1G 12V VGS clamp | Package_TO_SOT_SMD:SOT-23 | ZD1 |
| 1 | DBG_RX | TestPoint:TestPoint_Pad_D1.0mm | TP9 |
| 1 | DBG_TX | TestPoint:TestPoint_Pad_D1.0mm | TP8 |
| 1 | EMC2305-1-AP-TR | ChainAxe:EMC2305_QFN16_4x4_P0.65_EP2.2 | U2 |
| 1 | ESP32-S3-WROOM-1-N16R8 | ChainAxe:ESP32-S3-WROOM-1_v1.8 | U1 |
| 1 | EXP_GPIO5 | TestPoint:TestPoint_Pad_D1.0mm | TP10 |
| 1 | EXP_GPIO6 | TestPoint:TestPoint_Pad_D1.0mm | TP11 |
| 1 | FAN 1 — G 12 T P | ChainAxe:0353180420_THT | J2 |
| 1 | FAN 2 — G 12 T P | ChainAxe:0353180420_THT | J3 |
| 1 | FAN 3 — G 12 T P | ChainAxe:0353180420_THT | J4 |
| 1 | FAN 4 — G 12 T P | ChainAxe:0353180420_THT | J5 |
| 1 | FAN INPUT 12V ONLY — 0455580003 | ChainAxe:0455580003_THT | J1 |
| 1 | FAN_12V | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
The 120 most common of 163 parts.
Questions
How big is the Chainaxe PCB?
It measures 100 × 70 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Chainaxe use?
163 parts, built around the ESP32-S3-WROOM-1-N16R8, EMC2305-1-AP-TR and TPD4E05U06DQAR. 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 Chainaxe KiCad files?
From the johnny9/chainaxe repository on GitHub, at the commit this page was made from: the board is hardware/chainaxe/chainaxe.kicad_pcb and its schematic hardware/chainaxe/chainaxe.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Chainaxe design in my own project?
Its repository publishes it under the CERN-OHL-S-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 layers110 × 100 mm

- 4 layers170.2 × 92 mm

CM4 JBOD Control Board
ApplePie420/OpenJBOD-CM4
This project is heavily inspired by the work of TheGuyDanish, specifically his OpenJBOD thingamajig.
78 parts3 - 2 layers53.1 × 81.9 mm

PTN PumpControlBoard
lhr-solar/PS-PumpController
Controls speed of liquid cooling pump and fans for the main battery pack. Additionally, interprets data from temperature sensors and flowrate sensors for fan/pump control loop
115 parts1 - 4 layers60 × 84 mm

StratosCore Claude
pantojinho/StratosCore
StratosCore is an open-source portable field, aviation, meteorological, navigation and radio computer based on the ESP32-S3-WROOM-1-N16R8.
277 parts1 - 4 layers66 × 142 mm

- 2 layers24.4 × 35.8 mm

- 4 layers40 × 9 mm

UDB S
Unified-Daughterboard/UDB-S
Narrow variant unified daughterboards for custom keyboard designers and users
11 parts82MIT - 4 layers20.6 × 51.1 mm
