top bar


Summary: Interfaces with Thorlabs APT devices and controllers.
Authors: Emilio J. Gualda and Egor Zindy
Maintainers: Egor Zindy
License: BSD
Platforms: Windows (32 bit only)
Devices: TDC001, ...


From the Thorlabs APT page: The APT family comprises a wide range of motion controller products ranging from small, low-power, single-channel optomechanical drivers (T-Cube Series) to high-power, multi-channel, modular 19" rack nanopositioning systems (the APT Rack System). The APT System Software is a common software platform for all controllers in the APT family.

The ThorlabsAPTStage adapter aims to provide a unified adapter for all the Thorlabs APT stages.

Preliminary support for 64bit Windows

It is now possible to compile the ThorlabsAPTStage device adapter for 64 bit Windows using a 64 bit APT.dll released by Thorlabs. The following procedure was tested in Windows 8.1 with Visual Studio 2012 and Windows 7.1 SDK:

Drop the content of File:APT into the device adapter micromanager-upstream\DeviceAdapters\ThorlabsAPTStage folder then compile the adapter as a x64 / release dll.

Once compiled, copy micromanager-upstream\DeviceAdapters\ThorlabsAPTStage\build\Release\x64\mmgr_dal_ThorlabsAPTStage.dll to your micromanager folder, as well as the 64 bit APT.dll file in the zip archive above.

Do not forget to install the 64 bit APT drivers from Thorlabs as per the instructions further down. Until you do (or if the 64 bit APT.dll is missing from the micromanager folder), the ThorlabsAPTStage will be greyed out from the hardware setup device list.


The ThorlabsAPTStage device adapter requires the 32-bit Micro-Manager, a recent 32-bit version of the APT software and an additional APT.dll file available to download from this website.

First you will need to download and install the APT software from the Thorlabs website.

Then download the file and decompress the APT.dll file into your Micro-manager folder. As of 2014-07-04, the APT.dll version which works with the current Thorlabs drivers is v1.0.0.3. The file is 1.71MB decompressed and its MD5 checksum is c966684580e4d373338b4b4c1640e817

Device support

At the moment, the following APT devices / controllers will be recognised, although only the TDC001 stages have been extensively tested. If you have had success with any of these, please amend the wiki or send me an email.

Part number Description Supported Notes
BSC001 1 Ch benchtop stepper driver Untested
BSC101 1 Ch benchtop stepper driver Untested
BSC002 2 Ch benchtop stepper driver Untested
BDC101 1 Ch benchtop DC servo driver Untested
SCC001 1 Ch stepper driver card (used within BSC102,103 units) Untested
DCC001 1 Ch DC servo driver card (used within BDC102,103 units) Untested
ODC001 1 Ch DC servo driver cube Untested
OST001 1 Ch stepper driver cube Untested
MST601 2 Ch modular stepper driver module Untested
TST001 1 Ch Stepper driver T-Cube Untested
TDC001 1 Ch benchtop stepper driver Yes

Installing a new stage (an example)

In the following example, we have 4 TDC001 controllers, each controlling a different type of stage. X,Y are controlling MTS25-Z8 linear stages, Z is controlling a MTS50-Z8 linear stage and we also have a PRM1-Z8 rotation stage.

To check that your PC is communicating with all the stages, you can launch the APT Configuration Utility.

The Thorlabs APT Configuration Utility displaying 4 controllers.

Note: In order for APTConfig to display the list of available stages, Micro-manager must be closed. Make sure you do not run both at the same time.

In Micro-manager's Hardware Configuration Wizard, select ThorlabsAPTStage. Each unique controller only appears once.

Hardware config wizard.
Micro-manager's Hardware Configuration Wizard displays a single TDC001 controller.

To add a stage, click the APT controller and give it a unique name. Then select its Serial Number from the drop-down menu. This number is displayed on the controller itself.

Additionally, you may need to select a channel number (for APT controllers controlling more than one channel).

At this point, you can also set software limits. This is to ensure that the stage will only travel a limited range.

Note for now (as of 1.4.17): if you change the soft limits, the stage may not initialize properly.

Hardware config wizard.
Adding a ThorlabsAPTStage device and selecting its Serial Number.

Homing procedure (preliminary)

APT stages must be "homed" first before any further commands can be sent.

For each of the stages defined in micro-manager, create a Group with the "Home" property.

"Go Home" group property.
Adding Initialisation groups, one for each stage.

Then when you want one of the stages initialised, simply set the group value to 1.

Micromanager APT initialisation groups.
Set the Preset value to 1 to initialise the stages individually.
© Micro-Manager : Vale Lab, UCSF 2006-2011 | All Rights Reserved | Contact