techmannih/nema34-mounted-stepper-controller
A 48 V USB‑C PD 3.1 EPR NEMA‑34 stepper controller PCB combining STM32/TMC5160 control, external MOSFET motor bridges, protected power and regenerative braking, USB data, telemetry, diagnostics, status LEDs, and buzzer alarms.
- Version
- 0.3.92
- License
- unset
- Stars
- 1
docs/pd-configuration.json
{
"status": "TI-full-flash-generated-register-reviewed-not-programmed",
"controller": "TPS26750SRSMR",
"tool": "TI USBCPD Application Customization Tool linked from the TPS26750 product page",
"eeprom": {
"part": "M24512-RMN6TP",
"bytes": 65536,
"bus": "I2Cc",
"address_7_bit": "0x50",
"image": {
"path": "release/pd1180-ti-configuration.zip",
"archive_member": "fullFlash.bin",
"sha256": "ae4222fe41cde5bb9704b4b949fb67aaf231fc897d429199420a99db725b5d18",
"bytes": 31552,
"format": "ti-full-flash",
"start_address": 0
}
},
"boot": {
"mode": "SafeMode",
"adcin1": 7,
"adcin2": 0,
"i2ct_address_7_bit": "0x20"
},
"requirements": {
"power_role": "sink-only",
"data_role": "power-only J1; no USB communications; data-role swaps disabled",
"power_role_swap": false,
"vconn_role_swap": "not exposed by this GUI/TRM revision; source path disabled; protocol capture required",
"epr": true,
"requested_max_voltage_mv": 48000,
"requested_max_current_ma": 5000,
"gpio2": "event 92 VBUS_SENSE_DIVIDER; push-pull output, initially low, noninverted to TPD4S480 EPR_EN",
"gpio0": "event 33 Fault_Input_Event_Port1; input, active low, noninverted",
"power_path_en": "TI Figure 8-5 non-inverting CSD17484F4 dual-NMOS buffer; 100k pull-ups use PD_3V3/LDO_3V3"
},
"mcu_permit_conditions": [
"APP mode and approved configuration identity",
"active 48 V / 5 A EPR contract",
"no protection fault",
"MCU watchdog healthy",
"valid bus measurements"
],
"missing_image_behavior": "POWER_PERMIT and MCU_RUN remain low",
"tool_version": "2.0.1",
"tool_access_status": "both-TI-licenses-accepted-by-user-2026-10-13",
"programming_access": {
"document": "docs/pd-programming.md",
"isolation_switch": "U36 SN74LVC2G66DCUR",
"isolation_control": "TP_PD_ISO grounded opens both I2Cc wires",
"eeprom_side_nets": [
"EEP_PROG_SDA",
"EEP_PROG_SCL"
],
"pads": [
"TP_PD_GND",
"TP_PD_VREF",
"TP_PD_ISO",
"TP_EEP_SDA",
"TP_EEP_SCL"
],
"supply": "fixed 5 V at J1; programmer VCC output off; VREF sense only",
"programmer": "3.3 V open-drain I2C, 100 kHz, address 0x50",
"qualification": "fixture implementation, image readback and cold APP boot pending"
},
"base_firmware": "TPS26750_F809_11_59_0000.bin",
"project": {
"path": "docs/pd-tool-project.json",
"sha256": "1e3236f68c213d96dde5754894ec8f457919da4d9a359474dae1680b34b32bac",
"customer_use_ascii": "PD118041",
"customer_use_hex_le": "5044313138303431"
},
"export_review": {
"questionnaire_import_caveat": "Tool 2.0.1 reset question 1 to DRP and reapplied dependent defaults on import despite the advanced-data option. Re-select sink-only without BQ; reapply swap and GPIO2 polarity fields; re-export and run check-pd-image.mjs. Do not flash an unchecked imported project.",
"full_flash_export_zip_sha256": "a40f83db5f52a02fabf43e3549df132afb61d4dbbf3e6e6e9d12dbfef1758df1",
"full_flash_selected_in_gui": true,
"programmed": false,
"readback_verified": false,
"cold_app_boot_verified": false,
"physical_gpio_polarity_measured": false
}
}