imrishabh18/rp2040-motor-controller
An RP2040-based NEMA17 stepper-motor controller with USB-C programming and PD motor-power negotiation, DRV8825 dual H-bridge drive, current/temperature telemetry, protected power filtering, status RGB LED, buzzer alarm, and optional magnetic encoder.
- Version
- 1.0.41
- License
- unset
- Stars
- 3
reports/validate-final.log
$ bun scripts/validate-build.ts
{
"generatedAt": "2026-10-01T18:25:45.728Z",
"input": "dist/index/circuit.json",
"sha256": "e5202595aa4c10929f651206a45ae468966620d6bd001efa8dc505b09c02bee0",
"versions": {
"tscircuit": "0.0.2702",
"@tscircuit/core": "0.0.2032",
"@tscircuit/cli": "0.1.2212",
"@tscircuit/common": "0.0.48",
"@tscircuit/capacity-autorouter": "0.0.899",
"@tscircuit/checks": "0.0.232",
"circuit-json": "0.0.491",
"circuit-to-svg": "0.0.423"
},
"commonGround": {
"groundNetDeclarations": 1,
"checkedGroundPorts": 40,
"checkedCurrentSenseChannels": 2,
"checkedMotorOutputs": 4
},
"temperatureTelemetry": {
"i2cAddress": "0x48",
"sdaGpio": 26,
"sclGpio": 27,
"alertGpio": null,
"unusedGpio": 24,
"alertPolicy": "RP2040 software using I2C temperature",
"enableGpio": 22,
"sensorDistanceMm": 5.699999999999999,
"checkedElectricalGroups": 11,
"hardwareInterlock": "PD-gated MCU enable",
"autonomousBoardTemperatureShutdown": false,
"status": "pass"
},
"pdVoltageControl": {
"status": "pass",
"gpios": [
4,
5,
6
],
"cfgPhysicalPins": [
9,
2,
3
],
"inverted": true,
"startupRequestV": 5
},
"outerMotorPower": {
"status": "pass",
"motorNets": 11,
"checkedTraceCount": 30,
"checkedTraceIds": [
"pcb_trace_9",
"pcb_trace_10",
"pcb_trace_11",
"pcb_trace_12",
"source_trace_253_retained_24",
"source_trace_239_retained_28",
"source_trace_197_retained_41",
"source_trace_196_retained_42",
"source_trace_195_retained_43",
"source_trace_194_retained_44",
"source_trace_193_retained_45",
"source_trace_192_retained_46",
"source_trace_155_retained_57",
"source_trace_153__source_trace_156__source_trace_160__source_trace_161__source_trace_280_retained_58",
"source_trace_153_retained_59",
"source_trace_153__source_trace_156__source_trace_160__source_trace_161__source_trace_280_retained_60",
"source_trace_153__source_trace_156__source_trace_160__source_trace_161__source_trace_280_retained_61",
"source_trace_153__source_trace_156__source_trace_160__source_trace_161__source_trace_280_retained_62",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_79",
"source_trace_172_retained_80",
"source_trace_124_retained_81",
"source_trace_159_retained_82",
"source_trace_123_retained_83",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_84",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_85",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_86",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_87",
"source_trace_158_retained_88",
"source_trace_120__source_trace_122__source_trace_123__source_trace_124__source_trace_154__source_trace_157__source_trace_158__source_trace_159__source_trace_171__source_trace_172__source_trace_281_retained_89",
"decouple_MOTOR_VBUS_CAP"
],
"wireLengthMmByLayer": {
"top": 172.69625123976542,
"bottom": 237.5658338743287
},
"allowedWireLayers": [
"top",
"bottom"
],
"throughViasAllowed": true
},
"jlcClearances": {
"padToPad": [],
"padToTrace": [],
"traceToTrace": [],
"viaToPad": [],
"viaToTrace": [],
"motorPowerToPad": []
},
"embeddedErrors": [],
"routingErrors": [],
"warnings": {
"source_refdes_convention_warning": 8,
"pcb_trace_warning": 81,
"source_component_pins_underspecified_warning": 10,
"source_no_power_pin_defined_warning": 15,
"source_no_ground_pin_defined_warning": 8,
"schematic_component_styling_warning": 9,
"source_part_not_found_warning": 1,
"supplier_footprint_mismatch_warning": 58
}
}
