File Exchange

image thumbnail

Zaber T-LSM Translation Stage Driver

version 1.4 (71 KB) by

A driver framework for Zaber T-LSM compatible translation stages (firmware 5.29, 10.07.2013).



View License

The driver framework implements the hardware/firmware reference of the Zaber Technologies Inc. T-LSM compatible translation stages as described on "".

Devices listed on "" are supported, but only T-LSM stages have been tested. Double check the parameters in "ZaberDeviceList.m" for your model. New devices can be added to this file, which has to be executed once to produce the relevant file "ZaberDevices.mat"

"ZaberTest.m" contains possible calls to all functions, so please don't run the full script via F5 or the "Play" button.

Help Texts are thankfully taken from the Zaber wiki page.

Implementation of all functions with alias number and error handling proved to be too complex for Instrument Control Toolbox instrument drivers - so these are just m-files which require only a serial port object and the function input parser functionality of Matlab.

Comments and Ratings (8)


Paola (view profile)

Ajay Singhvi

Hi Peter,

Were you able to modify the code for the A-MCA controller? Is so, could you please share it? It would be very helpful.


Ehsan Vaghefi

I have managed to get it to work, thanks very much for this contribution Dominik, Peter

Dominik Hofer

Hello Peter, you could certainly try to add a line to 'ZaberDeviceList.m' and execute the script once. You would need the device id from '' and the specs of the device. However, T-LSM only supports a fraction of the commands used by A-MCA. By analyzing the structure of implemented commands you could certainly add missing ones - the basic functions (send, receive, ...) are generic and allow for a reuse.

peter qiu

Hi Dominik, I am trying to adapt this code to work for the A-MCA controller with the LMG60 goniometer. It appears to communicate using the same RS232 interface with binary, would altering the device properties for the A-MCA controller be sufficient?


NN (view profile)

Works great with TLSR stages of Zaber as well, thanks for this contribution!

Dominik Hofer

Thanks Clay for beta-testing - it is much appreciated. I've already corrected the error you've found and uploaded this update, so it should be online after Mathworks' validation.

Would you mind sending me the code from your switch statement case? I think it would make a good addition to the driver.


Clay (view profile)

This is great. Thanks for creating these drivers. I'm using Zaber T-LA28A actuators, and it works well after making a few adjustments in ZaberUpdateDeviceList.m. In addition to adding a case for my device in the switch statement (case 28), I found that I needed to replace

devIDs(byteid(1)) = [devIDs, id]


devIDs(byteid(1)) = [id];

Otherwise, I get the following error:

In an assignment A(I) = B, the number of elements in B and I must be the same.



Added support for all devices with firmware 5.29. Stop sending in-motion commands to devices, which are not translation stages (e.g., T-JOY3) in single device queries.


bugfix in "ZaberUpdateDeviceList.m", line 56, from "devIDs(byteid(1)) = [devIDs, id];" to "devIDs(byteid(1)) = id;"; fixed some spelling errors in the description

MATLAB Release
MATLAB 7.13 (R2011b)

Inspired: firefly algorithm

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video