techmannih/nema34-mounted-stepper-controller

A USB-C PD-powered RP2040 motor controller with protected 48 V power, DRV8262 dual-bridge drive for a NEMA34 motor, regenerative-braking resistor, isolated sensing, hardware interlocks, and telemetry/status interfaces.

Version
0.3.113
License
unset
Stars
1

engineering/rp2040-redesign.json

{
  "revision": "0.5.0-RP2040-DRAFT",
  "base_commit": "50350344ec36ee153ca9e64e8e67c66ce1141f8a",
  "architecture": [
    "RP2040",
    "DRV8262DDVR + MCP4822-E/SN",
    "TPS26750SRSMR",
    "AS5600-ASOM (optional DNP)"
  ],
  "status": "native-cad-verified-hardware-unqualified",
  "hardware_tested": false,
  "fabrication_orderable": false,
  "reviewed_at": "2026-11-06T05:23:07.958126+00:00",
  "native": {
    "board_sha256": "000495f20437bd5cbef3d1ed4b5b1eb64360de8e61818af3300d16093b128255",
    "raw_drc_sha256": "59f88b91e3711459db6a614f829700e99769ae9a4d5094bf33352c7f388f8852",
    "raw_erc_sha256": "4401065c2db42d5534e88347980335fda4a198516bb37fb2fc569abc822fa4c6",
    "errors": 8,
    "retained_usb_hole_errors": 8,
    "other_errors": 0,
    "warnings": 488,
    "unconnected_items": 0,
    "schematic_parity": 0,
    "erc_findings": 0,
    "archive": "engineering/rp2040-native-review.zip",
    "gui_screenshot": "docs/drv8262-kicad-drc.png",
    "gui_schematic_parity": "not run; CLI parity checked separately",
    "gui_screenshot_sha256": "9d3bf1986dddbed6621945ec08cb5864080639f7728542ee8ceadee3af6baacd",
    "gui_screenshot_current": false,
    "gui_status": "Actual GUI capture before R35/C97 reference alignment: 8 USB errors, 494 cosmetic warnings, 0 unconnected; final text-only correction yields 488 warnings in CLI. All other native geometry and filled power copper are exactly unchanged. GUI parity not run; final CLI parity and ERC zero."
  },
  "input_sha256": {
    "index.circuit.tsx": "8adf5b50c0ef045fa1df9f517fe2be44f0376a5550d084afd0b52256dc45caa0",
    "schematic-pages.tsx": "65c0a40fdf4819fe08b72380409158af565bd36fb2884db0bfc9e7afa360dff5",
    "hardware-contract.json": "d7e2b6fd88cc14468efb1d6bae08572feac7461e618300b8c4c45b1cec98b579",
    "board-standards.json": "1c834b8befaf2d3f4d961e51878d879a6e829733552474217cdf56df9f6116e0",
    "docs/firmware-pinmap.json": "75b8338ebf536ebf7277fadb87bdfa7b1fabb1a9d5373b44d40aa1962ff28d89",
    "release/pd1180-commissioning-firmware.zip": "97744bfc457583d4acb50ffb6e8e77bbddd7aa5a209cff6b3dbce9269b988277"
  },
  "native_checks": {
    "local_bypass_paths": 58,
    "kelvin_terminal_only_branches": 4,
    "usb_reference_paths": 4,
    "power_copper_evidence": "engineering/rp2040-copper-evidence.zip",
    "source_rules": "docs/source-design-rules-check.json",
    "all_checks": "docs/verification.json"
  },
  "firmware": {
    "compiled_architecture": "RP2040",
    "image_bytes": 90588,
    "physical_programming_verified": false,
    "all_four_qualification_flags": false,
    "commissioning_rpm_limit": 10,
    "requested_commissioning_current_rms_a": 0.8,
    "nominal_peak_dac_reference_v": 0.359,
    "physical_current_calibrated": false
  },
  "remaining": [
    "Eight J1/J10 hole-clearance errors remain as explicitly requested; this is an engineering review exception, not fabrication acceptance. Cosmetic silkscreen findings remain visible.",
    "The enlarged bulk bank passes the nominal-delay 6 A winding simulation with the allocated reserve (54.321 V peak), but the 100 us delay screen reaches 54.745 V and fails that reserve. Hardware timing, load and full-current operation remain unqualified.",
    "DDV top-side heatsink/TIM/mechanical clearance and motor-current operating envelope are not qualified.",
    "Stocked replacements and exact package identities pass the fresh five-board lot check; inventory is unreserved. Use docs/stock-report.json at allocation.",
    "Rear fastening, single-shaft encoder magnet attachment and physical acceptance of the selected WAGO clamps, actual harnesses and PD_READY/ADC fault behavior require closure.",
    "TI EEPROM and RP2040 flash programming/readback/cold boot, USB current, brake and loaded thermal/EMC tests require assembled hardware. All four firmware qualification locks remain false.",
    "U41 now switches phase/encoder sensors off in suspend; firmware disables both PH/EN bridges and idles at 60 MHz. USB current, discharge and wake timing remain unmeasured and must be qualified on hardware."
  ],
  "full_review": {
    "command": "bun run review",
    "report": "docs/verification.json",
    "delivery_report": "docs/delivery-check.json",
    "requirement": "All verification checks and release delivery integrity must pass. Read the current reports; this architecture summary is not a substitute for their results."
  },
  "reviewer_eco": {
    "raw_pd_sensor": "INA237AIDGSR, 85 V, I2C 0x40",
    "motor_terminal": "WAGO 2601-3104",
    "brake_terminal": "WAGO 236-402",
    "pd_power_good": "Derived PD_READY from fresh TPS contract plus independent fresh raw PD ADC; physical eFuse MOTOR_PG retained",
    "motor_step": "engineering/mechanical/34HS31-6004S1-manufacturer.zip",
    "mounting_qualified": false
  },
  "data_only_eco": {
    "mcu_power": "J10 DATA only; U26 removed",
    "interface_isolation": [
      "U39 TCA9517A",
      "U40 SN74LVC244A"
    ],
    "sensor_power": "U41 TPS22919, SENSE_EN low during suspend/reset",
    "bulk": "C22/C23 EEUFS1J102, 2 x 1000 uF/63 V",
    "ramp": "C18 1 uF/25 V",
    "manufacturing_via_in_pad_count": 78,
    "physical_tests_performed": false
  },
  "stocked_driver_eco": {
    "driver": "DRV8262DDVR C33828788",
    "dual_dac": "MCP4822-E/SN C16040",
    "control": "PH/EN software sequencing, 16 microsteps/full step; no driver SPI register/readback interface",
    "ipropi_resistors_ohm": 1500,
    "replacements": {
      "R60": "PTFR0805B180KN9 C351604",
      "BZ1": "FMB09A03-3V C417385",
      "U36": "SN74LVC2G66DCTR C2651913",
      "R66": "AT0603BRD071K2L C5454462"
    }
  }
}