spec

Software for Diffraction

Thorlabs

Thorlabs ATP Controllers

DESCRIPTION

spec currently supports the Thorlabs APT controller models LTS150, LTS300 and MLJ150 over USB and RS-232 interfaces. Support for additional models will be added as needed.

The controller is selected on the hardware configuration editor Devices screen along the lines of:

MOTORS     DEVICE     ADDR <>MODE  NUM                <>TYPE U#
0  YES            45897890           1    Thorlabs APT (USB)  0
1  YES /dev/ttyS1       <> 115200    1 Thorlabs APT (Serial)  1

For the USB interface, if there is only one controller, the ADDR field can be left blank. If there are multiple controllers, enter the serial number of each controller in order for their unit assignment to be distinguishable. Otherwise, spec will assign units number in the order in which USB discovery reports them.

For the serial interface, the MODE column should be set to 115200_hdwflow.

On the Motor screen, choose THOR as the controller type.

PARAMETERS

The motor_par() options shown below are case insensitive. Any combination of lower and upper case is allowed.

motor_par(mne, "flash")
Instructs the controller associated with motor mne to identify itself by flashing its front panel LEDs several times.
motor_par(mne, "dump")

Reads and displays parameters associated with the controller associated with motor mne along the following lines:

Thorlabs LTS300 APT Stepper Motor Controller
  Serial number:  45897890
  Firmware version:  3.0.8 (196616)
  Hardware version:  3
  Mod State:  0
  Number of Channels:  1
  Move parameters:
    Backlash:  20480 steps
    Base rate:  0 steps/sec
    Slew rate:  21987328 steps/sec
    Acceleration:  102498304 steps/sec/sec (5 msec)
  Homing parameters:
    Direction:  reverse/negative (2)
    Limit switch:  reverse (1)
    Slew rate:  20000000 steps/sec
    Offset:  0 steps
  Limit switch parameters:
    CW hard limit:  switch makes on contact (2)
    CCW hard limit:  switch makes on contact (2)
    CW soft limit:  1228800
    CCW soft limit:  409600
    Soft limit mode:  ignore limit (1)
  Jogging parameters:
    Mode:  single step (2)
    Stop mode:  ramped
    Jog step size:  40960
    Base rate:  0 steps/sec
    Slew rate:  40104886 steps/sec
    Acceleration:  40104 steps/sec/sec (36160 ms)
  Button Parameters:
    Mode:  jog (1)
    Preset 1:  4096000
    Preset 2:  8192000
    Timeout 1:  500 msec
    Timeout 2:  0 msec

Note, values for the following parameters can be set on the nonstandard optional motor parameter screen of the hardware configuration editor.

motor_par(mne, "jog_mode" [, arg])
Sets or returns the jog mode parameter. A value of 1 indicates continuous jogging. A value of 2 means single-step mode. With continuous jogging, movement continues as long as the jog trigger (jogging button) is pressed. In single-step mode, the motor moves the number of steps set with "jog_stepsize".
motor_par(mne, "jog_stopmode" [, arg])
Sets or returns the jog stop mode parameter. A value of one means abrupt stop. A value of two indicates a ramped stop.
motor_par(mne, "jog_stepsize" [, arg])
Sets or returns the job step size parameter. The step size is used with jog mode 2, single-step mode.
motor_par(mne, "jog_baserate" [, arg])
Sets or returns the base rate (start speed) for jog moves. Units are steps per second.
motor_par(mne, "jog_slewrate" [, arg])
Sets or returns the slew rate (maximum speed) for jog moves. Units are steps per second.
motor_par(mne, "jog_acceleration" [, arg])
Sets or returns the acceleration parameter for jog moves. Units are steps/sec/sec.
motor_par(mne, "button_mode" [, arg])
Sets or returns the mode of the keypad buttons. Mode 1 means the buttons are used to jog the motors according to the settings of the jog parameters. Mode 2 means move to a preset position.
motor_par(mne, "button_preset1" [, arg])
Sets or returns the value of the preset position associated with keypad button 1 when button mode is set to 2.
motor_par(mne, "button_preset2" [, arg])
Sets or returns the value of the preset position associated with keypad button 2 when button mode is set to 2.
motor_par(mne, "button_timeout1" [, arg])
Sets or returns the timeout value associated with keypad button 1. Depressing the button for this amount of time resets the preset position to the current position. Units are milliseconds. Note, holding both buttons will start a home search.
motor_par(mne, "button_timeout2" [, arg])
Sets or returns the timeout value associated with keypad button 2. Depressing the button for this amount of time resets the preset position to the current position. Units are milliseconds.
motor_par(mne, "home_offset" [, arg])
Sets or returns the home offset parameter. After a home search the controller moves this many steps from the home switch and sets that position as zero.
motor_par(mne, "home_direction" [, arg])
Sets or returns the home direction. Forward/positive is 1. Reverse/negative is 2.
motor_par(mne, "home_switch" [, arg])
Sets or returns a value that indicates which limit switch is associated with the home position. A 1 indicates the reverse/negative switch. A 4 indicates the forward/positive switch.
motor_par(mne, "bowindex" [, arg])
Sets or returns the bow index parameter. Allowed values are 0 to 18. Thorlabs uses the term box index to refer to the shape of the acceleration ramp profile. A zero selects a trapezoidal profile. Nonzero values select an S-curve profile, which is essentially a smoothed trapezoid. Higher values of the index produce steeper acceleration and deceleration slopes. Values that are too large may cause a move to overshoot.