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.
| Property | Value |
|---|---|
kind | stepper-pd1180 |
| Interfaces | stepper |
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.
| Key | Allowed values | Description |
|---|---|---|
steps_per_rev | Positive integer | Full steps per revolution of the attached motor. The bench doesn't send it to the module. |
microstep_resolution | Power of two, 1 to 256 | Microsteps per full step. |
run_current | 0 to 255 | Motor current while moving. |
standby_current | 0 to 255 | Motor current while holding position. |
max_velocity | Module units | Top speed for moves. |
max_acceleration | Module units | Acceleration for moves. |
pulse_divisor | Module units | Time base for velocity values. |
ramp_divisor | Module units | Time base for acceleration values. |
baud_rate | Positive 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.
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.