
Standalone scoring box
AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.
Usb scoring platform is an open-source printed circuit board by AndrewCraswell, from the AndrewCraswell/agency repository on GitHub, published under the MIT licence. It is a 4-layer board of 165 × 100 mm with 224 parts on 235 nets, routed with 3,037 tracks and 653 vias.
It is built around the 74LVC125APW,118-JSM, SN74AHCT541PWRE4 and ESP32-S3-WROOM-1-N8R8, with the LTC3130IMSE-1#PBF, 4N32M and AP2112K-3.3TRG1 among its other parts. Its parts include 96 resistors, 68 capacitors, 13 ICs, 11 diodes and 9 connectors. It belongs with the ESP32 boards of this library.
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open
usb-scoring-platform.kicad_pro in KiCad 10; schematic and PCB are the editable source, with no generator required.
Frozen reference: do not overwrite when developing the dedicated virtual or standalone boards. See the hardware index for their status. This remains a supplier-review draft, not released for fabrication, sale or connection to fencers. The prioritized design review is the single record of findings and closure evidence. Do not interpret a clean ERC/DRC result as electrical safety, firmware readiness or supplier acceptance.
The PCB is 165 x 100mm (approximately 6.50 x 3.94 inches), four layers, nominal 1.6mm. The current native export contains 223 fitted parts with manufacturer, MPN and footprint fields, plus bare J14 programming pads (224 PCB footprints total). Use the exported BOM for procurement, not older quotes or component counts.
The power budget retains 20mA isolated startup and 75mA acquisition allocations. Whole-input startup, attached-PD suspend consumption, transitions and thermal behavior remain unmeasured. The regulator's two nominal manufacturer-model load steps pass; that is not proof of these whole-board conditions.
| Connection | Selected part / interface | Purpose and delivery requirement |
|---|---|---|
| J1 | USB4105-GF-A USB-C | Computer power/data or standalone PD input; one populated port. |
| J13 | CETUS J1B1211CCD Ethernet jack with W5500 | Wired network, including Cyrano software integration; cable enters at the bottom edge. |
| Favero DATA ports | Two TE 5520250-2 sockets, optocoupler outputs | FA-05-compatible lamp repeater interface; mouths face the top edge. These are neither Ethernet nor RS-422. Actual repeater loading/timing still needs testing. |
| HUB75 signal and power | Fitted connectors identified in the BOM | Selected external display: Waveshare RGB-Matrix-P5-64x32 (SKU 25848), 320x160mm, 5V, 1/16 scan. Panel, ribbon and power harness are separate from the bare PCB assembly. Do not connect the panel in laptop mode. |
| Internal connection | Part | Purpose |
|---|---|---|
| J3 / J4 | HTSW-103-07-L-S, 3-pin internal headers | Left/right fencer harnesses, on opposite board edges. These are not the external female banana sockets. |
| J5 | HTSW-101-07-L-S internal header | Harness to the metal-piste reference socket; not protective earth. |
| J2 | HTSW-105-07-L-S | STM32 SWD programming access. |
| J6 | HTSW-106-07-L-S | ESP32 UART recovery/programming access. |
| J12 | HTSW-103-07-L-S | Primary-side PD service; do not bridge its USB_GND to scoring-side programmer ground. |
| J14 | Bare underside pads, no fitted connector | U21 pogo programming: VLO reference, USB_GND, SWDIO, SWCLK, NRST. |
| U13 / BZ1 | TSOP38438 / PS1240P02BT | 38kHz IR receiver and externally driven sounder. Remote protocol/range and acoustic operation remain bench checks. |
The user selected the Waveshare P5 panel on Amazon (ASIN B0CLV5MHPX). Desk review retains J7 with unused E held low and records FM6127 initialization for display firmware. The shared-power design envelope is 26.4W, one panel, with at most 50C local ambient around U6; target 45C or less during commissioning. These are reviewed design limits, not measured performance or an automatic thermal cutoff. See load allocations and derating. No order is authorized.
The owner's Ok Fencing cable is already validated; do not reopen that compatibility decision. The mating banana sockets, harness termination, strain relief and enclosure attachment still need an explicit supplier responsibility and quote. J3 is left and J4 right when viewed from the component side with USB/Ethernet along the bottom. J5 is on the bottom edge. Internal header pitch is 2.54mm; it does not define the external banana spacing. Physical A/B/C roles are below.
No-owner-soldering delivery requires more than an SMT quote:
U21's programming file is implemented; the complete scoring/application firmware is not. "Ready to start programming" must not be represented as a fully functioning or qualified scoring machine.
For ESP32 recovery, J6 pin 3 is the board's TX (connect to programmer RX), pin 4 is board RX (programmer TX), pin 2 is scoring-side GND, pin 5 EN and pin 6 BOOT. Use 3.3V logic; pin 1 is APP_3V3, not permission to back-power the board. Power the application branch normally, hold BOOT low while releasing reset, then release BOOT after boot strapping. Keep this programmer ground separate from primary-side J12/J14 USB_GND. Physical recovery is not yet tested.
For the prototype order choose standard green solder mask and white silkscreen. The saved black KiCad rendering does not set the fabrication color. The crest logo has been removed; retain the existing small text. Do not reuse the earlier tscircuit fabrication package.
Target stackup: JLC04161H-7628, nominal 1.6mm, outer 1oz / inner 0.5oz copper. Top-to-bottom copper/dielectric thicknesses are 0.035 / 0.2104 / 0.0152 / 1.065 / 0.0152 / 0.2104 / 0.035mm. Prepreg Er is 4.4 and core Er 4.6. Supplier confirmation of the actual stackup and impedance remains required.
USB trunks target 0.32mm width / 0.25mm gap, with narrower escapes and layer-transition discontinuities. Ethernet routing and these nominal geometries are not measured impedance or signal-integrity approval. There are no dedicated chassis mounting holes: connector locating holes are not standoff holes. Use an insulating prototype carrier and keep conductive mounting hardware away from isolation regions.
Run from this directory:
./export-manufacturing.ps1The script creates a new ignored output directory, runs native ERC/DRC with schematic parity and zone refill, checks assembly ordering fields and reference agreement, and exports:
pcb-fabrication.zip: four copper layers, mask/paste/silkscreen, outline and separate plated/unplated drill files.bom.csv and placement.csv: separate assembly inputs, including through-hole parts but excluding bare J14.jlcpcb-bom.csv and jlcpcb-placement.csv: upload-column versions of those same rows. Exact MPNs are preserved; no
LCSC matches or part-specific rotation corrections are invented. Positions remain native footprint origins in mm, not
independently verified component centroids. Supplier placement preview/review remains required.programming/U21/: freshly built controller image and programming instructions.README.md, design-review.md and usb-acquisition-power.md: the matching handoff and open findings.The latest checked board export is output/assembly-sourced-capacitors/: 223 matching assembly references and zero
configured ERC, DRC, unconnected or schematic-parity findings. An export is a review package, not authorization to
manufacture. Re-export after any subsequent design change.
The refreshed JLCPCB draft 0f5a45675ffe4595850ae7ab1a859877 accepted the current Gerbers, BOM and placement upload. It
detected all 223 parts, with two top-side Standard assemblies requested. The corrected BOM supplies exact catalog
codes for capacitor references previously assigned the wrong part. Eight 1uF parts still have exact-match shortages. The
29 100nF parts now specify stocked Yageo CC0603KRX7R9BB104 / C14663; C63 specifies stocked Murata GRM21BR61A106KE19L /
C77073. C52/C53 and C70 also have reviewed, same-rating/package replacements. Upload validation must confirm these
identities and reselect J1 if reupload clears its assembly checkbox. J8 and U6 have no exact public-inventory search
result. Do not proceed with these unresolved matches or assume shortages are procured. See the design review for
details. Earlier 230-part drafts are stale. No order, payment or paid matching request was submitted; no complete
assembly price or procurement readiness is established.
The owner authorized the $10 assisted part-selection service but subsequently paused submission. Do not submit or pay without renewed direction. Supplier support described a route for through-hole assembly and LTM2884 process review; that is not acceptance of this board or reflow profile.
C56 now selects TDK C1608X5R1C475K080AC; C64/C65 select Yageo CC0603JRNPO9BN180. Older capacitor candidates are superseded. J2/J6 header sourcing quantities remain unresolved. Do not substitute ordinary PBT TSW for high-temperature LCP HTSW without process review, or automatically replace a specified X7R capacitor with X5R.
Use design-review.md for prioritized remaining work, exact part checks and evidence. Local electrical simulations, native board checks and firmware tests do not establish FIE homologation or safe field use. The unused isolation pour extensions have been removed; approximate same-layer separation is now 2.50–2.65mm. The union of copper across all four layers has no primary/secondary projected overlap and a 2.50mm projected gap. The review records the low-voltage prototype source/grounding constraints; a certified system insulation rating and physical tests remain separate requirements, not consequences of a clean DRC.
Supplier matching, assembly/programming acceptance and final CAM/placement review remain before ordering. Startup/current/suspend, sensing/timing, USB behavior, repeaters and other physical measurements require the assembled prototype; they are not a circular requirement to already own the PCB before ordering it. Keep fencers disconnected until applicable electrical safety checks pass.
Repository verification currently has a separate TypeScript scoring-domain coverage shortfall; the last recorded run passed 950 tests but did not meet its 100% coverage thresholds. Do not lower thresholds or report a clean full-repo pass.
Authentic retained CAD sources are listed in CAD model sources. U18/U19/U20 exact body models are absent and J13's referenced installed-library model is unavailable. Check drawings and pad geometry where models are missing; do not invent bodies as proof of mechanical fit.
Design for 3-10 units per month. Prioritize dependable operation, straightforward assembly and repair, and inexpensive design changes. A higher module cost is acceptable when it saves meaningful engineering, assembly, or support effort.
Each channel now uses 220-ohm excitation, 390-ohm sense series and 1k sense pull-down, all 1%. R8/R11/R14/R17/R20/R23/R26 use YAGEO RC0603FR-07390RL; R65-R71 use RC0603FR-071KL. Only fourteen existing resistor values/order codes changed: no added components, pads, routes or placement changes. The lower sense impedance shortens cable discharge; the unchanged excitation resistors still bound a grounded 3.6V source to 16.53mA. Keep the BAT54S clamps and require CORE_3V3 >=3V.
U8/U9 remain Nexperia 74LVC125APW. Its Rev. 12 datasheet specifies 2.25V minimum high output at 18mA with VCC=3V through 125 C. COMP1-7 receive PA1/PA3/PA0/PB0/PB13/PB11/PB14, respectively: LEFT_A/B/C, RIGHT_A/B/C and PISTE. Use VREFINT/2 and HYST=1, with 200us reference-scaler plus 5us comparator startup. The unchanged 0.556-0.651V threshold envelope includes reference, offset and hysteresis allowances from DS12288 Rev 6.
Use 40us slots: clear every output low for 10us, disable for 1us, enable one high source for 28us, disable for 1us. Sample all seven receivers 38us into each slot. Foil/sabre source order is LEFT_B, RIGHT_B, PISTE; epee uses LEFT_A, RIGHT_A, PISTE. This is 120us per source-identified frame. The 280us seven-source sweep is for characterization only. Never power both fencers' sources simultaneously: that loses piste-side discrimination.
Preserve source identity and timestamps; decode only complete frames and never mix guard/piste data across frames. Guard/piste inhibition acts immediately, not through the positive-contact filter. Brownout, capture loss, invalid frames and ambiguous topology inhibit scoring and reset qualification.
The C contact filter requires at least 250us of asserted input before passing it to the existing weapon core. False inputs reset immediately. Invalid, duplicate or backward timestamps reset it; sample intervals above 125us restart qualification. Do not backdate filtered assertions. The core then applies its existing 100us sabre, 2ms epee and 13ms foil minimum.
Native tests exercise both fencers at every integer-microsecond phase for frame periods 120-125us. They reject 99us sabre, 1,999us epee and 12,999us foil pulses, and register 1ms sabre, 10ms epee and 15ms foil pulses before they end. Rejection includes 30us analog release extension; detection includes 120us onset/frame-assembly delay. Repeated 60us contacts with 165us gaps never qualify, including that tail. This is a bounded filter-plus-core timing test, not a full electrical-to-weapon decoder or proof against arbitrarily short interruptions.
Run pnpm --filter @repo/scoring-circuit simulate. The pair/reset and seven-conductor models cover rest, target,
off-target, piste, reciprocal targets, crossed blades, seven-way shorts, source changes and both leakage directions.
With 10nF cable/30pF input stress, the weak seven-short sample is 0.6715V and settled value 0.6784V. The
positive-leakage clear case reaches 0.5498V, the 500-ohm pair 0.8543V, and disconnected input 0.1222V. The 3.6V
positive-leakage release tail is 20.72us, below the timing test's 30us allowance. The original 60us/165us interrupted
fixture now produces high/low/high rather than hiding the interruption.
The 121uA leakage and 10nF capacitance are chosen stresses, not guaranteed temperature limits. Clear margin is only 6mV under that stress. Characterize real cables, thresholds, capture latency, leakage and current on the prototype. The filter is implemented and host-tested. These checks are not FIE approval or safe externally powered/shared-piste operation.
The STM32 scan driver now configures the seven comparators and performs the clear/break/source/sample/release sequence. It returns only complete three-source frames after releasing the outputs. A late transition, backward clock, lost supply permission, locked comparator or timestamp overflow shuts down the drive outputs; it never fabricates missed samples. Calls must be serialized and scheduled from an actual hardware timer at the returned deadline. Interrupt latency and sequential comparator-read skew still require measurement; this is not a claim that a desktop poll loop can meet those deadlines.
The conductor decoder maps complete frames to raw epee, foil and sabre observations. It rejects missing source responses, incorrect timing/source order, nonreciprocal readings and ambiguous crossed-blade/target networks. Guard and piste readings inhibit immediately. Its output still requires the existing positive-contact filter before scoring; invalid frames require resetting qualification. This conservative prototype interpretation can suppress ambiguous legitimate contacts and is not complete FIE behavior.
Startup output masks were also corrected to match this PCB: PC0-PC6 drive low, PC7-PC12 and PD2 hold active-low buffer enables high, and PA2/PA8 hold Favero/audio inactive. USB, UART, SWD and comparator pins are not driven as outputs. The previous masks came from an obsolete board and included current USB/comparator pins. The normal target entry point still fails closed at its unimplemented startup checks; neither this driver nor decoder is silently enabled in a customer firmware image. Hardware-timer dispatch, measured supply validation and USB capture delivery remain integration work. ST register selections follow the pinned CMSIS device header and ST's comparator input definitions.
Use physical cord roles when implementing acquisition; older software's abstract conductor names are not a pinout:
| Harness pin | Our physical name | Foil / sabre | Epee |
|---|---|---|---|
| 1 | A, outer contact 15mm from the centre | Conductive jacket | First tip wire |
| 2 | B, centre contact | Foil tip wire / sabre weapon | Second tip wire |
| 3 | C, outer contact 20mm from the centre | Guard / weapon return | Guard |
Foil normally closes B-C and opens it when the tip is pressed; a target connects B to the opposing A. Epee closes A-B at the tip. Sabre uses B-C for the weapon and opposing A for the jacket. PISTE is a separate observed conductor, not board ground. The foil/epee contact roles and unequal spacing follow m.29.2(a) and m.31.3 in the retained FIE material rules. The fixtures establish reachable paths, not which redundant physical contact caused them: reciprocal sabre targets plus crossed blades can join all six cord wires. The decoder rejects that ambiguous topology rather than attributing a hit without sufficient evidence.
Prototype decision: retain and wire the existing BAT54S clamps for passive-cable bench development. No extra fault-protection subsystem is added. This is a circuit-selection decision, not power-off/ESD qualification or approval to connect fencers. It covers the intended passive cord/contact network, not conductors powered by another apparatus, externally charged/shared piste networks, or accidental USB/PD contact. Those cases still need an explicit electrical envelope and protection review before field use. The Nexperia BAT54S pin table identifies pin 1 as the lower diode anode, pin 2 as the upper diode cathode, and pin 3 as their junction; the wired GND/CORE_3V3/SENSE assignments match that arrangement.
The existing chosen cable stress of seven 10nF capacitances charged to 3.6V holds at most 0.252uC and 0.454uJ. This finite stored charge is different from a continuously powered external conductor; it does not establish real cable capacitance, ESD immunity or the rail's discharge behavior. C14 is nominally 4.7uF, but its effective capacitance and the actual power-down waveform still require checking. Do not count typical regulator discharge as protection.
Power-off protection is not qualified. The selected buffer specifies at most 20uA power-off leakage per input/output at 5.5V and 125 C; that protects its output path, not the whole conductor interface. D3-D9 still connect the sense nodes to CORE_3V3 through BAT54S clamps. An externally driven conductor can inject into that rail when it is off, and AP2112K must not be assumed to sink that current. Review that path before powered external-fault or fencer testing. Neither the buffer's power-off specification nor the clamps authorize applying 20V PD to any conductor.
All seven selected comparator pins are STM32 TT_a analog inputs. The STM32 DS12288 Rev 6, tables 14-17, distinguishes the 4.0V absolute input limit from the TT_xx operating ceiling of VDD + 0.3V; comparator operation also requires its specified analog supply and input range. Table 15's zero positive-injection entry is not evidence of an internal upper clamp: footnote 3 says positive injection does not occur below the specified maximum input voltage. Neither statement qualifies comparator operation while unpowered. The identified rail-feed path is the external BAT54S upper diode, not an assumed STM32 protection diode. Removing that diode alone would not establish a protected interface.
AP2112's typical 60-ohm output discharge applies with EN low, not as a guaranteed rail clamp after input power disappears. Keep passive-cable power-down and sustained external-voltage fault tests separate. The former has finite stored cable charge; the latter can continuously raise CORE_3V3 through D3-D9 even with series resistance. Before choosing replacement protection, specify the external fault voltage, source resistance, polarity and duration; the existing own-board short-circuit model supplies none of those requirements. Do not add a fault-protection IC or rail shunt against an invented fault envelope. Do not substitute a generic diode simulation for those guarantees. See AN4899 section 5.2.1, and AP2112 electrical characteristics.
Leakage and capacitance are chosen stresses, not guaranteed worst cases or FIE evidence. BAT54S hot-leakage curves are typical, not maximum ratings. The models do not prove exhaustive contacts, resistance diagnostics, clamp behavior or capture timing. Do not treat continuity as a 450/475-ohm diagnostic or the passive-release tail as acceptable scoring error. The seven upper-clamp rail connections are now routed; completed routing is not a measured operating result.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 29 | 10k 1% | Resistor_SMD:R_0603_1608Metric | R12, R15, R18, R21, R24, R27, R45, R46, R47, R48, R49, R50, R51, R72, R73, R74 +13 |
| 16 | 100nF 10V | Capacitor_SMD:C_0603_1608Metric | C8, C9, C10, C11, C13, C16, C19, C20, C23, C24, C25, C26, C27, C29, C30, C34 |
| 9 | 220R 1% | Resistor_SMD:R_0603_1608Metric | R7, R10, R13, R16, R19, R22, R25, R38, R41 |
| 8 | 1k 1% | Resistor_SMD:R_0603_1608Metric | R65, R66, R67, R68, R69, R70, R71, R87 |
| 8 | 1uF 10V | Capacitor_SMD:C_0603_1608Metric | C2, C3, C15, C21, C33, C37, C38, C70 |
| 7 | 100nF | Capacitor_SMD:C_0603_1608Metric | C35, C57, C58, C59, C60, C61, C62 |
| 7 | 390R 1% | Resistor_SMD:R_0603_1608Metric | R8, R11, R14, R17, R20, R23, R26 |
| 7 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D3, D4, D5, D6, D7, D8, D9 |
| 6 | 100k 1% | Resistor_SMD:R_0603_1608Metric | R3, R92, R93, R111, R112, R113 |
| 6 | 10k | Resistor_SMD:R_0603_1608Metric | R5, R6, R28, R29, R34, R35 |
| 6 | DMN2056U-7 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 4 | 49.9R 1% | Resistor_SMD:R_0603_1608Metric | R99, R100, R101, R102 |
| 3 | 100k | Resistor_SMD:R_0603_1608Metric | R33, R37, R44 |
| 3 | 100nF 16V | Capacitor_SMD:C_0603_1608Metric | C4, C31, C32 |
| 2 | 100nF 50V | Capacitor_SMD:C_0603_1608Metric | C69, C71 |
| 2 | 100nF 50V | Capacitor_SMD:C_0805_2012Metric | C46, C50 |
| 2 | 10k 0.1% | Resistor_SMD:R_0603_1608Metric | R95, R97 |
| 2 | 10nF | Capacitor_SMD:C_0603_1608Metric | C54, C55 |
| 2 | 10uF 10V | Capacitor_SMD:C_0603_1608Metric | C22, C28 |
| 2 | 18pF C0G | Capacitor_SMD:C_0603_1608Metric | C64, C65 |
| 2 | 1N4004-E3/54 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D10, D11 |
| 2 | 1k 1W | Resistor_SMD:R_2512_6332Metric | R88, R89 |
| 2 | 22nF 50V X7R | Capacitor_SMD:C_0603_1608Metric | C42, C66 |
| 2 | 22uF 10V X7R | Capacitor_SMD:C_1210_3225Metric | C6, C7 |
| 2 | 27pF C0G - tune | Capacitor_SMD:C_0603_1608Metric | C17, C18 |
| 2 | 330R 1% | Resistor_SMD:R_0603_1608Metric | R105, R106 |
| 2 | 4.7k 1% | Resistor_SMD:R_0603_1608Metric | R114, R115 |
| 2 | 47k | Resistor_SMD:R_0603_1608Metric | R30, R31 |
| 2 | 4N32M | ScoringPlatform:4N32M | U16, U17 |
| 2 | 5520250-2 | ScoringPlatform:RJ14 | J9, J10 |
| 2 | 6.8nF | Capacitor_SMD:C_0603_1608Metric | C52, C53 |
| 2 | 680k | Resistor_SMD:R_0603_1608Metric | R40, R43 |
| 2 | 74LVC125APW | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U8, U9 |
| 2 | 82R | Resistor_SMD:R_0603_1608Metric | R39, R42 |
| 2 | SN74AHCT541PWR | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U14, U15 |
| 2 | SN74AXC1T45DCKR | ScoringPlatform:SN74AXC1T45DCKR | U10, U11 |
| 2 | SS14 | Diode_SMD:D_SMA | D1, D2 |
| 1 | 1.37k 1% | Resistor_SMD:R_0603_1608Metric | R98 |
| 1 | 100R | Resistor_SMD:R_0603_1608Metric | R32 |
| 1 | 100nF 25V | Capacitor_SMD:C_0603_1608Metric | C48 |
| 1 | 10R 1% | Resistor_SMD:R_0603_1608Metric | R103 |
| 1 | 10nF 10V | Capacitor_SMD:C_0603_1608Metric | C12 |
| 1 | 10nF 50V | Capacitor_SMD:C_0603_1608Metric | C45 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C63 |
| 1 | 10uF 16V | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | 10uF 16V X7R | Capacitor_SMD:C_1206_3216Metric | C49 |
| 1 | 10uF 50V | Capacitor_SMD:C_1210_3225Metric | C47 |
| 1 | 12.4k 1% | Resistor_SMD:R_0603_1608Metric | R104 |
| 1 | 120R@100MHz | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 140k 0.1% | Resistor_SMD:R_0603_1608Metric | R94 |
| 1 | 150k 1% | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | 172k 0.1% | Resistor_SMD:R_0603_1608Metric | R96 |
| 1 | 1M 1% | Resistor_SMD:R_0603_1608Metric | R107 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R36 |
| 1 | 1uF 50V | Capacitor_SMD:C_0603_1608Metric | C1 |
| 1 | 1uF 50V | Capacitor_SMD:C_0805_2012Metric | C36 |
| 1 | 1uF 50V X7R | Capacitor_SMD:C_0805_2012Metric | C40 |
| 1 | 22nF | Capacitor_SMD:C_0603_1608Metric | C51 |
| 1 | 25MHz CL18pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y2 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C56 |
| 1 | 4.7uF 10V | Capacitor_SMD:C_0603_1608Metric | C14 |
| 1 | 4.7uF 16V X5R | Capacitor_SMD:C_0805_2012Metric | C41 |
| 1 | 4.7uF 50V X7R | Capacitor_SMD:C_1812_4532Metric | C39 |
| 1 | 47k 1% | Resistor_SMD:R_0603_1608Metric | R116 |
| 1 | 47uF 10V X5R | Capacitor_SMD:C_1812_4532Metric | C43 |
| 1 | 645004114822 - panel 5V | ScoringPlatform:HUB75_POWER | J8 |
| 1 | ABM3B-8.000MHZ-B2-T | Crystal:Crystal_SMD_Abracon_ABM3B-4Pin_5.0x3.2mm | Y1 |
| 1 | AP2112K-3.3TRG1 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | AP63203WU-7 | Package_TO_SOT_SMD:TSOT-23-6 | U7 |
| 1 | ESP 3.3V UART recovery | ScoringPlatform:Samtec_HTSW-106-07-L-S | J6 |
| 1 | ESP BOOT | Button_Switch_SMD:SW_SPST_TL3342 | SW3 |
| 1 | ESP RESET | Button_Switch_SMD:SW_SPST_TL3342 | SW2 |
| 1 | ESP32-S3-WROOM-1-N8R8 | RF_Module:ESP32-S3-WROOM-1 | U2 |
| 1 | GCT USB4105-GF-A | ScoringPlatform:USB4105_GF_A | J1 |
| 1 | J1B1211CCD | ScoringPlatform:J1B1211CCD | J13 |
| 1 | LEFT WEAPON A B C | ScoringPlatform:Samtec_HTSW-103-07-L-S | J3 |
| 1 | LTC3130IMSE-1#PBF | ScoringPlatform:LTC3130_MSE | U19 |
| 1 | LTM2884IY#PBF | ScoringPlatform:LTM2884_BGA | U18 |
| 1 | PD service: GND SDA SCL | ScoringPlatform:Samtec_HTSW-103-07-L-S | J12 |
| 1 | PISTE - NOT protective earth | ScoringPlatform:Samtec_HTSW-101-07-L-S | J5 |
The 208 most common of 224 parts.

AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.


AnotherMike-exe/KiCadBlocks
Reusable KiCad 10 PCB layout blocks: module reference boards, design block fragments and host setup docs

jgazeley/accord
Raspberry Pi Pico W firmware and keyless-entry hardware for a 2001 Honda Accord.



thomasparlette/BoardLayout
This repository contains the active R10 eight-layer KiCad candidate for a custom controller in a 1997 Mercury Grand Marquis EEC-V enclosure. The design is still ROUTINGINCOMPLETE.

TIGP-Experimental-Methods/class-board-2026
TIGP class instrument 2026: one board, five blocks - KiCad hardware, ESP32-S3 firmware, phone PWA, Python API, workbook

It measures 165 × 100 mm and has 4 copper layers, 1.6 mm thick.
224 parts, built around the 74LVC125APW,118-JSM, SN74AHCT541PWRE4, ESP32-S3-WROOM-1-N8R8 and LTC3130IMSE-1#PBF. 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.
From the AndrewCraswell/agency repository on GitHub, at the commit this page was made from: the board is packages/scoring-circuit/usb-scoring-platform/usb-scoring-platform.kicad_pcb and its schematic apps/scoring/docs/specifications/boards/open-piste/upstream/ESP32ScoringDevice_PCB_THT_Rev1.2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).