2.10. Thorlabs KCube Inertial Motor#

Summary:

ThorlabsKCubeIM

Type:

Actuator

License:

Licensed under LGPL.

Platforms:

Windows

Devices:

K-Cube Controller for Piezo Inertia Stages and Actuators, e.g. KIM101

Author:

J. Krauter

2.10.1. Overview#

ITOM Plugin to be used for interaction with the K-Cube Controller for Piezo Inertia Stages and Actuators (e.g. KIM101).

ThorlabsKCubeIM is an acutator plugin to control the following integrated devices from Thorlabs:

  • K-Cube Controller for Piezo Inertia Stages and Actuators (e.g. KIM101)

It requires the new Kinesis driver package from Thorlabs and implements the interface Thorlabs.MotionControl.KCube.InertialMotor.

Please install the Kinesis driver package in advance with the same bit-version (32/64bit) than itom.

This plugin has been tested with the cage rotator KIM101.

2.10.2. Initialization#

The following parameters are mandatory or optional for initializing an instance of this plugin:

  • serialNo: str, optional

    Serial number of the device to be loaded, if empty, the first device that can be opened will be opened

    default: “”

2.10.3. Parameters#

These parameters are available and can be used to configure the ThorlabsKCubeIM instance. Many of them are directly initialized by the parameters of the constructor. During the runtime of an instance, the value of these parameters is obtained by the method getParam, writeable parameters can be changed using setParam.

acceleration: {seq. of int}

acceleration Steps/s

async: {int}

synchronous (0, default) or asynchronous (1) mode

enableAxes: {int}

disable (0, default) or enable axis (1)

deviceName: {str}, read-only

Description of the device

dualChannel: {int}

single Channel mode (0, default) or dual Channel mode (1)

firmwareVersion: {str}, read-only

Firmware version of the device

lockFrontPanel: {int}, read-only

1 to lock the front panel, else 0

maxVoltage: {seq. of int}

maximum voltage of axis

name: {str}, read-only

Name of the plugin

numaxis: {int}, read-only

number of axes (channels), default 4

serialNumber: {str}, read-only

Serial number of the device

softwareVersion: {str}, read-only

Software version of the device

stepRate: {seq. of int}

step rate in Steps/s

timeout: {float}

timeout for move operations in sec

2.10.4. Usage#

This example shows how to initialized the device in itom and change the position:

mot = dataIO("ThorlabsFF") # get instance of plugin. Optional give the serialnumber of the device
mot.calib(0) # set the current position of axis 0 to position 0
mot.calib(0, 1, 2, 3) # set the current positions of axis 0 - 3 to position 0
mot.setParam("maxVoltage", [100, 100, 100, 100]) # set the maximum voltage of the 4 axes
mot.setParam("stepRate", [2000, 2000, 2000, 2000]) # set the steprate of the 4 axes
mot.setParam("acceleration", [100000, 100000, 100000, 100000])
mot.setPosAbs(0, 100) # set the axis 0 to the absolute position 100
mot.setPosRel(0, 100) # move the axis 0 relative by 100
mot.setPosAbs(0, 100, 1, 100, 2, 100, 3, 100) # set all 4 axis to the absolute position 100
mot.setPosRel(0, 100, 1, 100, 2, 100, 3, 100) # move all 4 axis relative by 100
mot.getPos(0) # get the position of axis 0
mot.getPos(0, 1, 2, 3) # get the positions of all 4 axis

Dual Channel Mode (recommended)

In the case that two axis are used together, the dual channel mode recommended (e. g. two axis are attached to a mirror and are used to move the mirror in both dimensions). Channel 0 and 1 or channel 2 and 3 are move at once. This reduces the moving time a lot.

mot.setParam("dualChannel", 1)  # dual channel is activated by the parameter *dualChannel*
mot.setPosAbs(0, 50, 1, 200)  # The moving commands must contain the positions of both dual channel axis or the positions of all four axes.
mot.setPosAbs(2, 50, 3, 200)
mot.setPosAbs(0, 25, 1, 50, 2, 100, 3, 150)

2.10.5. Compilation#

To compile this plugin, install the Thorlabs KINESIS from https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=Motion_Control&viewtab=0 driver package in the same bit-version than itom (32/64bit). Then set the CMake variable THORLABS_KINESIS_DIRECTORY or the environment variable THORLABS_KINESIS_ROOT to the base directory of Kinesis (e.g. C:/Program Files/Thorlabs/Kinesis). The required libraries from Kinesis will automatically be copied to the lib folder of itom.

Kinesis 1.7.0 requires the Microsoft C++ Redistributable 2012.

2.10.6. Changelog#

  • itom setup 4.1.0: This plugin has been compiled with Thorlabs Kinesis 1.14.25.

  • itom setup 4.2.0: This plugin has been compiled with Thorlabs Kinesis 1.14.28.

  • itom setup 4.3.0: This plugin has been compiled with Thorlabs Kinesis 1.14.47.