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
firmware/src/main.c
#include "board_pins.h"
#include "control.h"
#include "tmc5160_config.h"
#include <stdio.h>
int main(void) {
pd1180_control_t control;
pd1180_control_reset(&control);
const pd1180_inputs_t inputs = {
.pd_app_mode = true,
.epr_contract = true,
.contract_mv = 48000,
.contract_ma = 5000,
.motor_power_good = true,
.vmotor_in_range = true,
.watchdog_healthy = true,
.configuration_verified = true, .sample_fresh = true, .driver_ready = true, .brake_preflight_ok = true, .motion_wiring_verified = true,
.temperature_valid = true, .temperature_deci_c = 250,
};
if (!pd1180_control_arm(&control, &inputs)) return 1;
for (unsigned elapsed = 0; elapsed < 350; elapsed += 10) pd1180_control_tick(&control, &inputs, 10);
printf("permit=%u run=%u tmc_registers=%zu mcu_run_pin=P%c%u\n",
control.power_permit, control.mcu_run, pd1180_tmc5160_boot_config_count,
PD1180_PIN_MCU_RUN.port, PD1180_PIN_MCU_RUN.bit);
return control.motor_commands_enabled ? 0 : 1;
}