pylablib.devices.Trinamic package

Submodules

pylablib.devices.Trinamic.base module

exception pylablib.devices.Trinamic.base.TrinamicError[source]

Bases: pylablib.core.devio.base.DeviceError

Generic Trinamic error

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception pylablib.devices.Trinamic.base.TrinamicBackendError(exc)[source]

Bases: pylablib.devices.Trinamic.base.TrinamicError, pylablib.core.devio.comm_backend.DeviceBackendError

Generic Trinamic backend communication error

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class pylablib.devices.Trinamic.base.TMCM1110(conn)[source]

Bases: pylablib.core.devio.comm_backend.ICommBackendWrapper, pylablib.devices.interface.stage.IStage

Trinamic stepper motor controller TMCM-1110 controlled using TMCL Firmware.

Parameters:conn – serial connection parameters (usually port or a tuple containing port and baudrate)
Error

alias of TrinamicError

open()[source]

Open the backend

class ReplyData(comm, status, value, addr, module)

Bases: tuple

addr
comm
count()

Return number of occurrences of value.

index()

Return first index of value.

Raises ValueError if the value is not present.

module
status
value
query(comm, comm_type, value, result_format='i', bank=0, addr=0)[source]

Send a query to the stage and return the reply.

For details, see TMCM-1110 firmware manual.

get_axis_parameter(parameter, result_format='i', addr=0)[source]

Get a given axis parameter

set_axis_parameter(parameter, value, addr=0)[source]

Set a given axis parameter (volatile; resets on power cycling)

store_axis_parameter(parameter, value=None, addr=0)[source]

Store a given axis parameter in EEPROM (by default, value is the current value)

get_global_parameter(parameter, result_format='i', bank=0, addr=0)[source]

Get a given global parameter

set_global_parameter(parameter, value, bank=0, addr=0)[source]

Set a given global parameter

get_general_input(port=0, bank=0, addr=0)[source]

Get value of an input at a given bank (0-2) and port.

Bank 0 is digital input (7 ports), bank 1 is analog input (1 port, value from 0 to 2**16-1), bank 2 is digital output (8 ports). For port assignments, see TMCM-1110 firmware manual.

set_general_output(value, port=0, bank=2, addr=0)[source]

Set value of a digital input at a given bank (only bank 2 is available) and port.

For port assignments, see TMCM-1110 firmware manual.

move_to(position, addr=0)[source]

Move to a given position

move_by(steps=1, addr=0)[source]

Move by a given number of steps

get_position(addr=0)[source]

Get the current axis position

set_position_reference(pos=0, addr=0)[source]

Set the current axis position as a reference (the actual motor position stays the same)

jog(direction, speed=None, addr=0)[source]

Jog in a given direction with a given speed.

direction can be either "-" (negative, left) or "+" (positive, right). The motion continues until it is explicitly stopped, or until a limit is hit. If speed is None, use the standard speed value.

stop(addr=0)[source]

Stop motion

get_microstep_resolution(addr=0)[source]

Get the number of microsteps per full step (always a power of 2)

set_microstep_resolution(resolution, addr=0)[source]

Set the number of microsteps per full step (rounded to a nearest power of 2)

get_current_parameters(addr=0)[source]

Return diving current parameter (drive_current, standby_current).

drive_current is the maximal drive current, which is given as a fraction of the maximal generated current current (which is either 1A or 2.8A depending on the hardware jumper). standby_current is given as a fraction of drive_current.

setup_current(drive_current=None, standby_current=None, addr=0)[source]

Set drive and standby currents.

WARNING: too high of a setting might damage the motor. drive_current is the maximal drive current, which is given as a fraction of the maximal generated current current (which is either 1A or 2.8A depending on the hardware jumper). standby_current is given as a fraction of drive_current. Any None parameters are left unchanged.

get_limit_switches_parameters(addr=0)[source]

Return limit switch parameters (left_enable, right_enable)

setup_limit_switches(left_enable=None, right_enable=None, addr=0)[source]

Setup limit switch parameters

get_velocity_parameters(addr=0)[source]

Return velocity parameters (speed, accel, pulse_divisor, ramp_divisor).

speed and accel denote, correspondingly, maximal (i.e., steady regime) moving speed and acceleration in internal units. pulse_divisor is the driver pulse divisor, which defines how internal velocity units translate into microsteps/s (see get_velocity_factor()); can only be a power of 2, higher values mean slower motion. ramp_divisor is the driver ramp divisor, which, together with the pulse divisor, defines how internal acceleration units translate into microsteps/s^2 (see get_acceleration_factor()); rounded to the nearest power of 2, higher values mean slower acceleration.

setup_velocity(speed=None, accel=None, pulse_divisor=None, ramp_divisor=None, addr=0)[source]

Setup velocity parameters (speed, accel, pulse_divisor, ramp_divisor).

speed and accel denote, correspondingly, maximal (i.e., steady regime) moving speed and acceleration in internal units. pulse_divisor is the driver pulse divisor, which defines how internal velocity units translate into microsteps/s (see get_velocity_factor()); rounded to the nearest power of 2, higher values mean slower motion. ramp_divisor is the driver ramp divisor, which, together with the pulse divisor, defines how internal acceleration units translate into microsteps/s^2 (see get_acceleration_factor()); rounded to the nearest power of 2, higher values mean slower acceleration. None values are left unchanged.

get_velocity_factor(addr=0)[source]

Get the ratio between the real speed (in microsteps/s) and the internal units

get_acceleration_factor(addr=0)[source]

Get the ratio between the real acceleration (in microsteps/s^2) and the internal units

get_current_speed(addr=0)[source]

Get the instantaneous speed in internal units

is_moving(addr=0)[source]

Check if the motor is moving

wait_move(addr=0)[source]

Wait until motion is done

class NoParameterCaller(device, kind)

Bases: object

Class to simplify calling functions without a parameter

apply_settings(settings)

Apply the settings.

settings is the dict {name: value} of the device available settings. Non-applicable settings are ignored.

close()

Close the backend

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

is_opened()

Check if the device is connected

lock(timeout=None)

Lock the access to the device from other threads/processes (isn’t necessarily implemented)

locking(timeout=None)

Context manager for lock & unlock

set_device_variable(key, value)

Set the value of a settings parameter

unlock()

Unlock the access to the device from other threads/processes (isn’t necessarily implemented)

Module contents