Skip to main content

stepper-pd1180

The stepper-pd1180 driver controls a Trinamic PD-1180 (TMCM-1180) stepper motor module over USB. It speaks the module's Trinamic Motion Control Language (TMCL) and drives one motor axis.

PropertyValue
kindstepper-pd1180
Interfacesstepper
location<serial-path>[@<module-address>]

Example​

axis:
kind: stepper-pd1180
name: "Trinamic PD-1180"
description: "Linear stage drive"
location: /dev/serial/by-id/usb-Trinamic_PD-1180-if00
interfaces:
- type: stepper
channel: 0
config:
steps_per_rev: 200
microstep_resolution: 256
run_current: 64
standby_current: 16
max_velocity: 1000
max_acceleration: 500
pulse_divisor: 3
ramp_divisor: 7

Location​

Use the module's /dev/serial/by-id/ path. The module answers on TMCL address 1 by default. For a different address, such as when several modules share one RS-485 bus, append @<address> with a value from 1 to 255:

location: /dev/serial/by-id/usb-Trinamic_PD-1180-if00@2

Stepper​

A peripheral has exactly one stepper interface, on channel 0. Every key is optional. When the peripheral opens, the bench writes each key you set to the module. A key you leave out keeps the value already stored in the module.

KeyAllowed valuesDescription
steps_per_revPositive integerFull steps per revolution of the attached motor. The bench doesn't send it to the module.
microstep_resolutionPower of two, 1 to 256Microsteps per full step.
run_current0 to 255Motor current while moving.
standby_current0 to 255Motor current while holding position.
max_velocityModule unitsTop speed for moves.
max_accelerationModule unitsAcceleration for moves.
pulse_divisorModule unitsTime base for velocity values.
ramp_divisorModule unitsTime base for acceleration values.
baud_ratePositive integer (default 115200)Serial speed. USB connections ignore it.

Set steps_per_rev if you want to move by revolutions or degrees. Without it, mimick stepper move --rev and --deg fail, and moves take microsteps only.

caution

run_current and standby_current are raw module values, roughly a percentage of the module's rated current. The bench doesn't limit them. Start low: too much current can overheat and damage the motor.

For the units behind the velocity, acceleration, and divisor values, see the TMCM-1180 firmware manual from Trinamic (now part of Analog Devices).

Use it​

mimick stepper axis status
mimick stepper axis move --rev 2 --wait
mimick stepper axis rotate --direction right --velocity 500
mimick stepper axis stop
mimick stepper axis home --wait

mimick stepper config changes the tuning values at runtime. When the peripheral next opens, the bench writes the values from the file again.