imrishabh18/rp2040-motor-controller

This circuit module provides a microcontroller-based NEMA17 stepper motor driver with integrated USB-C Power Delivery, temperature sensing, and safety interlocks.

Version
1.0.16
License
unset
Stars
0

verification.md

# NEMA 17 motor-cap verification

Revision **1.0.16-nema17.1**. The local board is 42.30 × 42.32 mm, four layers and 1.6 mm thick, with four Ø3.3 mm holes on a 31 × 31 mm square. The outline follows PD-Stepper V1.1, commit `3c40073a0ec51653f6ea48c70f365bd7f9f3bdcc`. The original 50 × 49 mm thermal revision is preserved separately.

## Automated results

| Check | Result |
|---|---|
| TypeScript | Passed |
| Fresh tscircuit build | Passed |
| Embedded circuit errors | **0** |
| Independent routing DRC | **0** |
| `tsci check` | **Errors: 0** |
| Netlist preflight | Passed |
| PCB placement | **Errors: 0, warnings: 0** |
| Schematic placement | No collisions, overlaps or outside-sheet elements |
| Gerber short detection | **No shorts on top, inner1, inner2 or bottom** |
| Circuit/schematic/routing regression | **11 tests passed; 1011 assertions** |
| Reference firmware | **11 tests passed** |
| Live dev preview | Connected and settled at **0 errors** on localhost:3020 |
| Ground | **One GND declaration; 22 required ground terminals checked**, including all four mounting rings |
| Drill export | One plated L1–L4 drill span; no blind/buried via drill files |

`tsci check` reports **169 warnings** for supplier lookups, component metadata/courtyards, schematic styling and trace-length guidance. The schematic placement tool retains spacing/alignment/style suggestions; its actual collision and boundary checks are clear. Warnings were not suppressed. The connected-net width regression reports **47 warnings / 47 allowed**, across **11 trace IDs / 22 allowed**. Power-pad clearance and motor-trace checks also pass.

## Copper and connectivity

The MCU and motor circuits are routed together, so they do not create independently scoped GND nets. The ground test follows electrical edges, not matching names, and checks the four mounting rings, power returns and sense circuitry. Temperature tests verify 13 distinct electrical groups and reject disconnected or bypassed interlocks. Ordinary routing checks inspect the physical copper continuity and clearances.

Motor routes widen to 1 mm away from package escapes. Their length-weighted average widths are approximately 0.970, 0.924, 0.959 and 0.930 mm for A+, A−, B+ and B−. The shortest-width sections are 0.350, 0.350, 0.350 and 0.250 mm respectively. The A− regression requires minimum width ≥0.15 mm, no narrow run longer than 5 mm, over 75% of the route at ≥0.85 mm, and average width >0.8 mm. These are geometry checks, not measured current/thermal ratings.

The BOOT symbol was moved away from RUN in the schematic to remove a 12-unit ground-wire detour. A regression bounds the controller's schematic trace excursions. The saved PCB routes preserve the checked copper and reject changed input geometry, connectivity or design rules. No DRC check is disabled.

## Exact artifact and tools

- Artifact: `dist/index/circuit.json`
- SHA-256: `08b26f63613f23157b00e266f24c8216b944f4af548ad9a653b72798587bc0b1`
- Validation timestamp: `2026-09-10T17:30:53.186Z`
- Runtime: Bun 1.3.14

| Package | Version |
|---|---|
| `tscircuit` | `0.0.2463` |
| `@tscircuit/core` | `0.0.1844` |
| `@tscircuit/cli` | `0.1.2021` |
| `@tscircuit/common` | `0.0.48` |
| `@tscircuit/capacity-autorouter` | `0.0.899` |
| `@tscircuit/checks` | `0.0.183` |
| `circuit-json` | `0.0.485` |
| `circuit-to-svg` | `0.0.413` |

Run `bun install --frozen-lockfile`, then `bun run verify`. Preserve the common-module patch and the saved routing plan. After changing the circuit, regenerate and recheck routing rather than only changing its expected input.

`dist/index/gerbers.zip` contains all four copper layers, mask, paste, silkscreen, outline, plated/nonplated drills and the CLI's raw BOM/PnP. Use the separate `assembly-bom.csv` and `assembly-pick-and-place.csv` for assembly: those omit bare test pads and mounting rings. J1 is a top-entry JST PH header, C131334. No manufacturer order or online publication was made.

## Mechanical and hardware acceptance

Print `mechanical/mounting-template.svg` at 100% and confirm the 31 mm hole pitch. The reference targets NEMA 17 motor tie screws; the user's exact motor model was not supplied. Check its rear mounting pattern, shaft/bearing protrusion and screw length. This layout assumes 6 mm insulated spacers with components facing away from the motor; do not place solder joints against the metal end plate. The PD-Stepper cover and heatspreader are not directly interchangeable with this layout.

The TMP102 is 4.125 mm from the driver center and measures nearby PCB temperature. The MicroPython reference warns at 65°C, stops at 75°C and requires explicit rearm below 60°C. The hardware gate acts on ALERT, while firmware latches the stop. Integrate the protection into the motor application and bench-test cutoff, sensor failure, watchdog and thermal lag with the actual motor and enclosure. The board and firmware have not been tested on physical hardware or flashed.