Python wrapper around Trinamic's TMCL serial interface for controlling TMCM stepper modules via a serial-to-rs485 converter.
> pip install tmcl> git clone https://github.com/NativeDesign/python-tmcl.git > cd python-tmcl > python setup.py installUse an RS485-to-serial adapter to connect your PC to one or more TMCM modules. Before starting you should check the modules' serial-address and baud-rate is a known value. Out of the box (warning: anecdotal) modules usually have an address of 1 and a baud-rate of 9600 but this is not guarenteed. The easiest way to check these values is by using the TMCL IDE on a windows machine.
If using multiple TMCM modules attached to the same rs485 bus you must ensure that each module is set to a different serial-address so that they don't clash.
from serial import Serial from time import sleep import TMCL ## serial-address as set on the TMCM module. MODULE_ADDRESS = 1 ## Open the serial port presented by your rs485 adapter serial_port = Serial("/dev/tty.usbmodem1241") ## Create a Bus instance using the open serial port bus = TMCL.connect(serial_port) ## Get the motor motor = bus.get_motor(MODULE_ADDRESS) ## From this point you can start issuing TMCL commands ## to the motor as per the TMCL docs. This example will ## rotate the motor left at a speed of 1234 for 2 seconds motor.rotate_left(1234) sleep(2) motor.stop()from serial import Serial import TMCL ## Open the serial port presented by your rs485 adapter serial_port = Serial("/dev/tty.usbmodem1241") ## Create a Bus instance using the open serial port bus = TMCL.connect(serial_port) ## Get the motor on axis 0 of module with address 1 module = bus.get_module( 1 ) a0 = module.get_motor(0) a1 = module.get_motor(1) a2 = module.get_motor(2)Move the motor to the specified absolute position.
Move the motor by the specified offset relative to current position.
Start a reference search routine to locate limit switches.
Rotate the motor left-wards at the specified velocity.
Rotate the motor right-wards at the specified velocity.
Execute a predefined user subroutine written to TMCM module firmware
Send a raw TMCL command to the motor.
Stop the motor