T-Series/Compilation/All Commands

From ZaberWiki
Jump to navigation Jump to search

Detailed Command Reference

This command reference applies only to firmware version 5.00 and up to the most recent version. The version of firmware installed on any Zaber T-Series device can be determined by issuing command #51. A three-digit number will be returned. Assume 2 decimal places (ex a reply of 293 indicates firmware version 2.93). For earlier versions of firmware, please consult the appropriate PDF user's manual:

T-Series Manual 2xx (PDF)
T-Series Manual 4xx (PDF)

Due to the addition of new features, newer versions of firmware may not be 100% backward compatible. You may wish to read the document Firmware History and Migration which outlines the changes that have taken place from one firmware version to the next and indicates what options are available if you wish to upgrade or downgrade the firmware on your devices.


Reset - Cmd 0

Instruction Name Reset
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 0
Command Type Command
Command Data Ignored
Reply Data None
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Sets the device to its power-up condition.

This has the same effect as unplugging and restarting the device.

Special Note

The position stored in the device prior to this command will be lost, so you must save it and reload it if it is important. All non-volatile settings (i.e. Device Number, Target Velocity, etc.) are saved and are not affected by reset or power-down.


Home - Cmd 1

Instruction Name Home
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 1
Command Type Command
Command Data Ignored
Reply Data Final Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Moves to the home position and resets the device's internal position.

Upon receiving this instruction, the device will retract until its internal home sensor is triggered. It will then move forward several steps to avoid accidentally re-triggering the home sensor during use. Its internal position is then reset (to 0 for most devices). If a home offset has been specified with the Set Home Offset (cmd 47) instruction, the device will move forward for the specific offset, then reset the internal position.


T-Series devices - Firmware 5.01 - 5.20

The device will attempt to home for an extended amount of time.


T-Series devices - Firmware 5.21 and up

The home command aborts with an error if the device has traveled twice the Maximum Position setting without triggering the home sensor. This indicates that the device could possibly be stalling or slipping.


A-Series and X-Series devices - Firmware 6.xx

The device will attempt to home for an extended amount of time. If Closed-Loop Mode is enabled for an encoder-embedded device, the device will report any slip or stall incident.


Renumber - Cmd 2

Instruction Name Renumber
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 2
Command Type Command
Command Data New Number
Reply Data Device ID
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Assigns new numbers to all the devices in the order in which they are connected.

This command is usually sent to device number 0. When it is, the command data is ignored and all devices will renumber. The device closest to the computer becomes device number 1. The next device becomes number 2 and so on.

If sent to a device number other than 0, then that device will reassign itself the device number in the command data. Valid device numbers are 1-99 for version 6.05, and 1-254 otherwise.

Note: Renumbering takes about 1/2 a second during which time the computer must not send any further data. The device number is stored in non-volatile memory so you can renumber once and not worry about issuing the renumber instruction again after each power-up.


Read Register - Cmd 5

Instruction Name Read Register
Applies to A-Series and X-Series devices
Firmware Version 6.xx
Command Number 5
Command Type Command
Command Data Register Address
Reply Data Data
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads from a register.

This command reads the data value from a register location.

NOTE: This command is meant for Zaber's internal use. Do not use this command unless directed to by Zaber technical support.


Set Active Register - Cmd 6

Instruction Name Set Active Register
Applies to A-Series and X-Series devices
Firmware Version 6.xx
Command Number 6
Command Type Setting
Command Data Register Address
Reply Data Register Address
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Sets the active register.

This command sets the address of the active register. When a device receives a Write Register (Cmd 7) command, data is written to the active register.

NOTE: This command is meant for Zaber's internal use. Do not use this command unless directed to by Zaber technical support.


Write Register - Cmd 7

Instruction Name Write Register
Applies to A-Series and X-Series devices
Firmware Version 6.xx
Command Number 7
Command Type Command
Command Data Data
Reply Data Data
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Writes to a register.

This command writes the data to the active register. The active register is specified by Set Active Register (Cmd 6).

NOTE: This command is meant for Zaber's internal use. Do not use this command unless directed to by Zaber technical support.


Store Current Position - Cmd 16

Instruction Name Store Current Position
Applies to All motorized devices
Firmware Version 5.04 and up
Command Number 16
Command Type Command
Command Data Address
Reply Data Address
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Saves the current absolute position of the device.

Valid Address values are 0 through 15 specifying one of 16 possible registers in which to store the position. This command can only be executed when the device has been homed. This command is used in conjunction with the Return Stored Position (Command #17) and Move To Stored Position (Command #18) instructions. The positions stored in the position registers are non-volatile and will persist after power-down or reset. All position registers are cleared by the Restore Settings (Command #36) instruction.


Return Stored Position - Cmd 17

Instruction Name Return Stored Position
Applies to All motorized devices
Firmware Version 5.04 and up
Command Number 17
Command Type Command
Command Data Address
Reply Data Stored Position
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the position stored in one of the 16 position registers for the device.

Valid command data values are 0 through 15, specifying one of 16 possible registers from which to retrieve the position. This command is used in conjunction with the Store Current Position (#16) and Move To Stored Position (#18) commands. Positions stored in the position registers are non-volatile and will persist after power-down or reset. All position registers are cleared by the Restore Settings (#36) command.


Move To Stored Position - Cmd 18

Instruction Name Move To Stored Position
Applies to All motorized devices
Firmware Version 5.04 and up
Command Number 18
Command Type Command
Command Data Address
Reply Data Final Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Moves the device to the stored position specified by the Command Data.

Valid address values are 0 through 15, specifying one of 16 possible positions. This command is used in conjunction with the Store Current Position (#16) and Return Stored Position (#17) commands. This command does not send a response until the move has finished. All move commands are pre-emptive. If a new move command is issued before the previous move command is finished, the device will immediately move to the new position.

The target speed and acceleration during a move absolute instruction can be specified using Set Target Speed (Cmd 42) and Set Acceleration (Cmd 43) respectively.

This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).


Move Absolute - Cmd 20

Instruction Name Move Absolute
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 20
Command Type Command
Command Data Absolute Position
Reply Data Final Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Moves the device to the position specified in the Command Data in microsteps.

The device begins to move immediately, and sends a response when the move has finished.

The target speed and acceleration during a move absolute instruction can be specified using Set Target Speed (Cmd 42) and Set Acceleration (Cmd 43) respectively.

All move commands are pre-emptive. If a new move command is issued before the previous move command is finished, the device will immediately move to the new position. This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).


T-Series Motorized Devices

The position must be between 0 and Maximum Position (specified by Set Maximum Position (cmd 44)), or an error code will be returned.


A-Series and X-Series Motorized Devices

The position must be between Minimum and Maximum Position (specified by Set Minimum Position (Cmd 106) and Set Maximum Position (cmd 44)), or an error code will be returned.

In addition to Set Acceleration (Cmd 43), A-Series and X-Series devices also support Set Acceleration Only (Cmd 113) and Set Deceleration Only (Cmd 114).


Move Relative - Cmd 21

Instruction Name Move Relative
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 21
Command Type Command
Command Data Relative Position
Reply Data Final Position
Safe to retry? No
Returns Current Position? Yes
Persistence n/a
Summary Moves the device by the positive or negative number of microsteps specified in the Command Data.

The device moves to a position given by its current position plus the value specified in the command data. The relative move command data in microsteps can be positive or negative. The device begins to move immediately, and sends a response when the move has finished.

The target speed and acceleration during a move absolute instruction can be specified using Set Target Speed (Cmd 42) and Set Acceleration (Cmd 43) respectively.

All move commands are pre-emptive. If a new move command is issued before the previous move command is finished, the device will immediately move to the new position. If a Move Relative command is issued while the device is currently moving due to a previous command, the device will immediately set a new target position equal to the current position (at the instant the command was received) plus the specified relative position.

This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).


T-Series Motorized Devices

The final position must be between 0 and Maximum Position (specified by Set Maximum Position (cmd 44)), or an error code will be returned.


A-Series and X-Series Motorized Devices

The final position must be between Minimum and Maximum Position (specified by Set Minimum Position (Cmd 106) and Set Maximum Position (cmd 44)), or an error code will be returned.

In addition to Set Acceleration (Cmd 43), A-Series and X-Series devices also support Set Acceleration Only (Cmd 113) and Set Deceleration Only (Cmd 114).


Move At Constant Speed - Cmd 22

Instruction Name Move At Constant Speed
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 22
Command Type Command
Command Data Speed
Reply Data Speed
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Moves the device at a constant speed based on the value specified in the Command Data.

This instruction specifies a direction and a speed to move, rather than a target position. When this instruction is issued the device will accelerate (at a rate determined by Set Acceleration (Cmd 43)) to the speed specified by the instruction data. The device will continue moving at this speed until a limit is reached or a pre-empting instruction is issued. Negative speeds cause retraction while positive speeds cause extension. Unlike the other movement commands, this command sends a response immediately without waiting for the move to finish.

The device may be set to return its position continuously during the move using Set Device Mode (Cmd 40) bit 4.

If the device reaches its end of travel, the device stops and the new position is returned via reply-only command Limit Active (Cmd 9).

This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).

For a spreadsheet that can be used to calculate speed setting values for any product see https://www.zaber.com/documents/ZaberSpeedSetting.xls. Alternatively you may use the formulas below.


The conversion between device speed and command data value depends on the device firmware version:

T-Series devices - Firmware 5.xx

Actual Speed

= Data * 9.375 * M mm/s or deg/s
= Data * 9.375 microsteps/s
= Data * 9.375 / R steps/s
= Data * 9.375 / (R x S) * 60 revolutions/min Motor rpm
= Data * 9.375 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 48 steps per revolution (S = 48), used with default resolution (R = 64), and Data is 2922, then the motor will move at a speed of approximately 535 revolutions per minute.


Valid data values are from (−512×R−1) to (512×R−1). Note that a value of zero will cause the device to decelerate to a stop and then send Limit Active (Cmd 9).

A-Series and X-Series devices - Firmware 6.xx

Actual Speed

= Data / 1.6384 * M mm/s or deg/s
= Data / 1.6384 microsteps/s
= Data / 1.6384 / R steps/s
= Data / 1.6384 / (R x S) * 60 revolutions/min Motor rpm
= Data / 1.6384 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 200 steps per revolution (S = 200), used with default resolution (R = 64), and Data is 251658, then the motor will move at a speed of 720 revolutions per minute.


Valid data values are from (−16384×R) to (16384×R). Note that a value of zero will cause the device to decelerate to a stop and then send Limit Active (Cmd 9).


Stop - Cmd 23

Instruction Name Stop
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 23
Command Type Command
Command Data Ignored
Reply Data Final Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Stops the device from moving by preempting any move instruction.

This instruction can be used to pre-empt any move instruction. The device will decelerate to a stop. The reply data is the absolute position after stopping.

This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).

T-Series devices - Firmware 5.xx

The device will decelerate at a rate specified by Set Acceleration (Cmd 43).


A-Series and X-Series devices - Firmware 6.xx

Rate of deceleration can be specified by either Set Acceleration (Cmd 43) (sets both Acceleration and Deceleration) or Set Deceleration Only (Cmd 114) (sets Deceleration only).

Depressing the manual control knob also gives the same effect as this command.

If another Stop is issued during deceleration (either by this command or depressing the manual control knob), the device will instantly stop.




Set Active Axis - Cmd 25

Instruction Name Set Active Axis
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 25
Command Type Setting
Command Data Axis
Reply Data Axis
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the active axis.

Only one axis can be active at a time, therefore each axis has to be set individually. The settings for each axis are stored in non-volatile memory, and will persist after powering down or resetting. To determine the joystick's current active axis issue the return settings command #53 with a command data value of 25.

Valid Command Data values are:

  • 1 (Axis 1)
  • 2 (Axis 2)
  • 3 (Axis 3)


Subsequent changes to any axis settings will apply only to the active axis.

Settings for the active axis can be changed using the commands shown here:



The three axes on the joystick are defined as follows:
Axis # Positive Direction Negative Direction
Axis 1 right left
Axis 2 up down
Axis 3 clockwise counter-clockwise



Example: To set the maximum velocity of axis number 2 follow the steps below:

  • Issue the Set Active Axis command #25 with a command data value of 2 to make axis number 2 the active axis.
  • Then issue the Set Axis Velocity Scale (Command #29) using the desired maximum velocity as the command data value. All subsequent "Set Axis..." commands will also apply to the axis number 2 until the user sets a different axis to be the active axis.



Set Axis Device Number - Cmd 26

Instruction Name Set Axis Device Number
Applies to X-JOY3, T-JOY
Firmware Version 5.04 and up, 6.16 and up
Command Number 26
Command Type Setting
Command Data Device Number
Reply Data Device Number
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the device number to be controlled using the active axis.

Note: This setting affects only the active axis. See the Set Active Axis Command #25 for instructions on how to select an axis.

Valid command data values for setting an axis device number range between 0 and 254. Once a axis device number is set, the setting is stored in non-volatile memory and will persist after power-down or reset.


To restore the joystick to its factory default settings, issue a Restore Settings Command #36. The factory default settings for axis control are as follows:

  • Axis #1 controls Device #2
  • Axis #2 controls Device #3
  • Axis #3 controls Device #4


Example: Suppose you would like to assemble a 3-axis system where:

  • Joystick axis 1 (right / left) controls device #3.
  • Joystick axis 2 (up / down) controls device #4.
  • Joystick axis 3 (clockwise / counterclockwise) controls device #2.

First, connect the joystick and the three additional devices.

Issue the Renumber Command #2 from the computer. After renumbering (less than 1 second) the joystick will become device #1, and the remaining devices will become devices #2, #3, and #4. Now commands may be issued to the joystick to set the desired behavior. The command sequence is as follows:

  • Device:1 Cmd:25 Data:1 - Set Axis # 1 to be the active axis.
  • Device:1 Cmd:26 Data:3 - Set the active axis (#1) to control device #3.
  • Device:1 Cmd:25 Data:2 - Set Axis # 2 to be the active axis. (Settings for each axis need to be set individually)
  • Device:1 Cmd:26 Data:4 - Set active axis (#2) to control device #4.
  • Device:1 Cmd:25 Data:3 - Set Axis # 3 to be the active axis.
  • Device:1 Cmd:26 Data:2 - Set the active axis (#3) to control device #2.

Note: All commands are being sent to device #1 (joystick). This is because the 3 downstream devices will be controlled by the joystick. Setting axis number and directions must be done by changing the joystick settings, not the individual device settings.


Special Note: It is possible to have one axis control 2 or more devices. All of the devices on this axis will move together. Follow the steps below to set more than one device on a single axis:

  • For each device you wish to control on one axis, set the device alias number with Command #48. Selecting an alias number much larger than the device numbers in use will help to differentiate between aliases and devices (Ex: 99). The alias number must be the same for each device you wish to control with a single axis.
  • Issue the Set Active Axis Command #25 with command data equal to the axis number you wish to use.
  • Issue the Set Axis Device Number Command #26 with command data equal to the alias number you selected.


Set Axis Inversion - Cmd 27

Instruction Name Set Axis Inversion
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 27
Command Type Setting
Command Data Invert Status
Reply Data Invert Status
Safe to retry? No
Returns Current Position? No
Persistence Non-Volatile
Summary Inverts the active joystick axis.

Sometimes it is desirable to invert one or more axes to create a more intuitive user interface. The Set Axis Inversion (#27) command allows the user to set the invert status of the active axis. Use Invert Status = 1 to set the current axis to non-inverted, use Invert Status = -1 to set the current axis to inverted. Use Invert Status = 0 to toggle between invert and non-invert (the Invert Status of the reply will still be either 1 or -1).

See the Set Active Axis (#25) instruction for information on how to select an axis. Each axis can be inverted independently of the other two axes.

Here are the default directions for each axis (not inverted):

  • On axis 1, left is negative and right is positive.
  • On axis 2, down is negative and up is positive.
  • On axis 3, counter-clockwise is negative and clockwise is positive.

What constitutes positive or negative motion depends on the device; see the user’s manual for the device in question. The default axis inversion setting for all joystick axes is non-inverted.

For example, to invert joystick axis 2:

  • Device:1 Cmd:25 Data:2 - Set Axis # 2 to be the active axis. (Settings for each axis need to be set individually)
  • Device:1 Cmd:27 Data:-1 - Set active axis (#2) to be inverted (positive and negative directions switch).


Set Axis Velocity Profile - Cmd 28

Instruction Name Set Axis Velocity Profile
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 28
Command Type Setting
Command Data Profile Number
Reply Data Profile Number
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the relationship between the angle of the active joystick axis and the velocity of the device.

When the joystick is displaced from the neutral position, it reads the angular position and calculates how fast and in which direction the corresponding devices should be instructed to move. There are three different velocity profile numbers that can be requested:

  • 1 – Linear
  • 2 – Squared (factory default)
  • 3 – Cubed

The maximum velocity is set by the Set Axis Velocity Scale (#29) command. Squared and cubed curves offer finer control at slow speeds, but still allow maximum velocity when the joystick is fully deflected.


Set Axis Velocity Scale - Cmd 29

Instruction Name Set Axis Velocity Scale
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 29
Command Type Setting
Command Data Maximum Velocity
Reply Data Maximum Velocity
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the velocity scale of the active axis.

The data represents the desired maximum velocity corresponding to full displacement of the joystick. When the joystick is moved away from the neutral position, the displacement is translated into Move At Constant Velocity instruction which is sent to the device associated with the displaced axis. See the user’s manual for the device in question for more information on the Move At Constant Velocity instruction.

The velocity scale setting works in conjunction with the velocity profile setting. See the Set Axis Velocity Profile (#28) command for more detail.

Setting the velocity scale to 0 will disable the active axis. This prevents the joystick from sending any instructions in response to displacement of that axis. This is useful when the user wants to execute a program from the computer, and does not want the joystick to be accidentally moved.

T-Series devices - Firmware 5.04 and up

The default velocity scale for all three axes is 2922.

A- and X-Series devices - Firmware 6.16 and up

The default velocity scale for all three axes is 44880.


Load Event Instruction - Cmd 30

Instruction Name Load Event Instruction
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 30
Command Type Command
Command Data Key Event
Reply Data Key Event
Safe to retry? No
Returns Current Position? No
Persistence Non-Volatile
Summary Loads the next instruction as the event-triggered instruction specified in the Command Data.

When pressing and releasing a key, there are a series of events that take place depending on how long the key is held. If the key is pressed and released before 1 second, the event sequence is 1-2. If the key is pressed, held for one second or more and then released, the event sequences is 1-3-4 (note that event 3 will be issued after the key is held for 1 second, and event 4 is issued upon release). The hold time of the key cannot be changed by the user.


Each key event can be programmed to issue only one instruction. The instruction written to an event can be different for each key. You can also set an event to do nothing by issuing a echo command for that event.


When programming a joystick key, we recommend disconnecting all of the devices connected to the joystick. When a command is loaded to the key it is also sent to the connected devices and may cause unexpected movement. On a side note, it is important to know that when a command is issued it is sent to all devices. Only the devices that the command is addressed to will actually perform that command, and all of the other devices will ignore it.

If you are using message IDs we recommend that you disable them when programming the joystick. That way the programmed instructions will work whether the target device has message IDs enabled or not.

To program an instruction to a key event please follow these steps:

1. Send a Load Event Instruction Command #30 to the device # corresponding to the joystick, with a two digit command data value, where the first digit is the key number and the second digit is the event number. This command tells the device which key and event you would like to program an instruction for.

Example: If you want to program event #2 of Key #3 you would issue a Load Event Instructions command with a data value of 32.


2. Now that you have issued a Load Event Instruction command, The device is waiting for you to issue an instruction. At this point in time the Load Event Instruction command is volatile and will not persist after powering down (This means if you power down you will need to issue another Load Event Instruction command before sending the event instruction). The command that you issue now will be programmed to the key and event you specified in step 1. This command can be issued normally, and can be addressed to any device connected to and including the joystick.

Note: After issuing the command you wish to program, there will be no feedback (light, beep etc.) indicating you have correctly programmed the button. The response screen will only say that a command has been issued. If you see that your command has been issued immediately after the load instruction response then you have most likely correctly programmed the key. The best test is to manually test the key to see if it performs your command.


3. Now you have finished programming one event on a key. The instruction programmed to that key is now non-volatile and will persist after powering down. Repeat the steps above to continue programming events to keys. To set an event to do nothing, issue an Echo Data command to device number 255 for that event.


Important: Be sure to program all of the events each time you program a key. The key events may have instructions already programmed into them therefore you will have to program an event to either do nothing, or perform the command you want it to do. If you do not do this pressing a key could cause a device or joystick to do something unexpected. A list of the default settings can be found in the X-JOY3 User Manual.


Key Event Programming Examples

Example 1: Programming a key to stop and home a single device.

In this example we will use device #3 as the device we want address the instructions to. Device #1 is the Joystick. We will program these instructions to key #4. We want device #3 to home when the key is pushed and held for 1 second and we want it to stop when the key is pushed and released before 1 second. The home instruction will be programmed to event number 3 and the stop instruction will be programmed to event number 2.

To program the device, follow the instructions listed below:

Device# Command Cmd# Cmd Data Description
1 Load Event Instuction 30 42 This command prepares the joystick key for instruction, the command data number 42 means that you are directing this instruction towards key #4 and event #2.
3 Stop 23 0 Because this command is being issued immediately after the Load Event Instruction (#30) it will be programmed to event #2 at key #4.
1 Load Event Instruction 30 43 This command prepares the joystick key for instruction, the command data number 43 means that you are directing this instruction towards key#4 and event #3.
3 Home 1 0 Because this command is being issued immediately after the Load Event Instruction (#30) it will be programmed to event #3 at key#4.


Example 2: Disable/Enable an Axis

In this example we will be disabling Axis #1. This axis usually controls device #2. The way that we are going to disable the axis is by reassigning the axis device number. This way the instruction will be sent to a device that will ignore a move command (the Joystick). We will be programming key #5. The key will disable the axis when pressed and released before 1 second and enable the axis when pressed, held for one second or more and then released.

To program the device, follow the instructions below:

Device# Command Cmd# Cmd Data Description
1 Load Event Instruction 30 51 This command prepares the joystick so that key #5 at event #1 can be programmed.
1 Set Active Axis 25 1 This command makes the axis active so that its device number can be changed. It is loaded to event number 1 so that the axis will become active as soon as the key is pressed.
1 Load Event Instruction 30 52 This command prepares the joystick so that key #5 at event #2 can be programmed.
1 Set Axis Device Number 26 1 This causes the axis to control the joystick, however all of the move commands sent to the joystick will be ignored. Therefore moving this joystick axis will not cause motion.
1 Load Event Instruction 30 53 This command prepares the joystick so that key #5 at event #3 can be programmed.
1 Set Axis Device Number 26 2 This command causes the axis to now control device number 2. This will enable the axis again by setting it to control Device #2, as before.


Return Event Instruction - Cmd 31

Instruction Name Return Event Instruction
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 31
Command Type Command
Command Data Key Event
Reply Data n/a
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the the event-triggered instruction associated with the key-event.

See the Load Event-Triggered Instruction (#30) for more information on definition of key events and event-triggered instructions.

To return the event-triggered instruction associated with a particular key event, issue the Return Event Instruction (#31) command to the joystick with data as follows:

Command Data = Key * 10 + Trigger

Where:

  • Key is a number from 1 to 5 corresponding to the key location
  • Event is a number from 1 to 4 corresponding to the key event

The reply will be comprised of the device, command and data of the event-triggered instruction associated with the specified key event. Note that as far as the computer is concerned, the reply will appear to come from whatever device the event-triggered instruction is addressed to, which may not be the joystick. We recommend that all additional devices be disconnected from the joystick before loading or returning event-triggered instructions to avoid confusion.


Set Joystick Calibration Mode - Cmd 33

Instruction Name Set Joystick Calibration Mode
Applies to X-JOY3, T-JOY3
Firmware Version 5.04 and up, 6.16 and up
Command Number 33
Command Type Setting
Command Data Calibration Mode
Reply Data Calibration Mode
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Calibrates the joystick by adjusting the limits and the deadbands.

There are two sets of calibration variables: limits and deadbands. Limits define the maximum angular displacement of all axes of manipulation. Deadbands define the area around the neutral position of the joystick where no action should occur. Deadbands are useful to adjust the sensitivity of the joystick to vibration or accidental movement from the neutral position. Acceptable Calibration Mode values are: 0, 1, or 2. Mode 1 is for calibrating the maximum limits. Mode 2 is for calibrating the deadbands. Mode 0 exits the calibration routine.

The joystick is pre-calibrated before shipping so that it should work well right out of the box. Note that restoring default settings using command #36 will have no affect on the joystick calibration. There is no default calibration since each joystick has slightly different properties that prevent a single set of settings from working well on all devices.

The joystick should work well as calibrated. We do not recommend re-calibrating it unless you encounter problems such as motion occurring while the joystick is in the neutral position, or an inability to reach maximum velocity even with the joystick fully displaced.

To calibrate the limits, follow these steps:

  • Issue command 33, data 1 to put joystick in “calibrate limits” mode
  • Move joystick all the way to the left and all the way to the right
  • Move joystick all the way up and all the way down
  • Turn joystick knob all the way counter-clockwise and all the way clockwise
  • Issue command 33, data 0 to save the measured limit parameters


To calibrate the deadbands, follow these steps:

  • Issue command 33, data 2 to put joystick in “calibrate deadbands” mode
  • Wiggle joystick slightly to the left and right of the neutral position. Try to move only within the limits of the slack. Do not move past the point where resistance begins.
  • Wiggle joystick slightly up and down from the neutral position
  • Turn joystick knob slightly counter-clockwise and clockwise from the neutral position
  • Issue command 33, data 0 to save the measured limit parameters


Read Or Write Memory - Cmd 35

Instruction Name Read Or Write Memory
Applies to T-Series motorized devices
Firmware Version 5.xx
Command Number 35
Command Type Command
Command Data Data
Reply Data Data
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Reads or writes a byte of non-volatile memory.

128 bytes of memory are available for user data. For example, the user may want to save some custom data such as a serial number, a name string, or data that uniquely identifies a particular device. Data written is not cleared by power down or reset. The most significant bit of byte 3 specifies whether the instruction is a read (0) or a write (1). The least significant 7 bits of byte 3 specify the address to read/write (0 to 127). Byte 4 specifies the value to be written. Bytes 5 and 6 are ignored.

These settings are stored in non-volatile memory and will persist after power-down or reset.


Restore Settings - Cmd 36

Instruction Name Restore Settings
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 36
Command Type Command
Command Data Peripheral ID
Reply Data Peripheral ID
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Restores the device settings to the factory defaults.

This command should be issued with a Peripheral ID of 0 to return the device to factory default settings. This instruction is very useful for troubleshooting. If the device does not appear to function properly, it may be because some of the settings have been changed. This instruction will restore the settings to default values. For a table of default settings, see Appendix A. All settings affected by this instruction are stored in non-volatile memory and will persist after power-down or reset.

This command behaves differently depending on device and Firmware version:


Integrated devices (not standalone controllers)

The device will only accept Restore Settings command with Data 0.


T-Series controllers - Firmware 5.xx (T-MCA, T-CD)

The T-MCA motor controller is designed to control many different motors and actuators. The Restore Settings instruction should usually be issued with a peripheral ID corresponding to the specific motor or motorized device connected. This will set the T-MCA motor controller to the factory default settings for the motorized peripheral in question. For example, if a T-MCA device is connected to an NA11B30, the user can issue the Restore Settings instruction with a peripheral ID of 31130. This will automatically set all non-volatile parameters (range, mode, running and hold currents, etc) to values that will work with the NA11B30.

For a list of supported peripherals and their corresponding settings, see https://www.zaber.com/device-settings.

If the Restore Settings instruction is issued with data of 0 rather than one of the above peripheral IDs, then the T-MCA device will be set to 15% maximum running current and no hold current. This is a relatively safe setting that prevents damage to any motor connected to the T-MCA, but as a result, you may not be able to run a motor with the T-MCA set to this condition. You can either issue the Restore Settings instruction with one of the peripheral IDs listed above, or you can adjust each relevant setting independently. Note that the default settings for a given peripheral ID are just a starting point to get your device working. The settings should still be adjusted individually for optimum performance in your application.


A-Series and X-Series controllers - Firmware 6.xx

If command data of 0 is given, this command restores device to default settings for the assigned peripheral ID. If a peripheral ID is given, this command assigns the given peripheral ID to the controller and loads the default settings for the assigned peripheral ID. To load safe-mode settings, use Set Peripheral ID (Cmd 66) with command data 0 instead.



Set Microstep Resolution - Cmd 37

Instruction Name Set Microstep Resolution
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 37
Command Type Setting
Command Data Microsteps
Reply Data Microsteps
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes the number of microsteps per step.

This command sets the microstep resolution of a device.

This setting is stored in non-volatile memory and will persist after power-down or reset. Use Restore Settings (Cmd 36) to restore all non-volatile settings to factory default.


The valid values and behaviour of this command depends on the device firmware version:

T-Series devices - Firmware 5.xx

The default on most devices is 64. Available microstep resolutions are:

1, 2, 4, 8, 16, 32, 64, 128

All position data sent to or received from T-Series products is in units of microsteps. Note that when you change the microstep resolution, other position related settings are scaled automatically from current values to adjust for the new microstep size. The table below gives an example showing how other settings are affected when the microstep resolution is changed from 128 to 64:

Setting Before After
Target Speed * 2922 1461
Maximum Travel Range * 280000 140000
Current Position 10501 ** 5250 **
Maximum Relative Move * 20000 10000
Home Offset * 1000 500
Acceleration * 100 50

* The settings for these commands are saved in non-volatile memory.

** Note that if a number is divided by two, it is rounded down to the nearest whole number. The only exception to this is if acceleration would become 0 (because 0 for acceleration indicates infinite acceleration). If acceleration would become 0, it will instead be set to 1 which is the lowest acceleration possible.


A-Series and X-Series devices - Firmware 6.xx

The default value on most devices is 64. Valid range of microstep resolution is 1 to 256 for version 6.06 and above.

For firmware version 6.01 to 6.05, available microstep resolutions are:

1, 2, 4, 8, 16, 32, 64, 128, 256
3, 6, 12, 24, 48, 96, 192
5, 10, 20, 40, 80, 160
9, 18, 36, 72, 144
15, 30, 60, 120, 240
25, 50, 100, 200
27, 54, 108, 216
45, 90, 180

All position related settings are in units of microsteps. When you change the microstep resolution, microstep related settings are automatically restored to their default values and then adjusted to match the scale of the new resolution.

If you have previously changed any settings, you will need to reconfigure them after setting a new microstep resolution. The device should be homed after assigning a new microstep resolution.

The following example shows affected settings when resolution is changed from 64 to 32:

Setting Default Before After
Microstep Resolution * 64 64 32
Current Position n/a 10501 ** 5250 **
Target Speed * 153600 ignored 76800
Knob Velocity Scale * 153600 ignored 76800
Home Speed * 50000 ignored 25000
Maximum Position * 280000 ignored 140000
Minimum Position * 0 ignored 0
Home Offset * 0 ignored 0
Acceleration * 205 ** ignored 102 **
Deceleration * 205 ** ignored 102 **

* The settings for these commands are saved in non-volatile memory.

** Note that if a number is divided by two, it is rounded down to the nearest whole number.



Set Running Current - Cmd 38

Instruction Name Set Running Current
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 38
Command Type Setting
Command Data Value
Reply Data Value
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the desired current to be used when the device is moving.

The specified current limit is applied per motor phase. If your application does not require high torque, it is best to decrease the driving current to reduce power consumption, vibration, and motor heating. If higher torque is required, it is generally safe to overdrive motors as long as they are not operated continuously and do not get too hot; please refer to your product’s specifications for current and temperature limits.

Zaber devices use two different techniques for controlling current: proportional and fractional. The easiest way to tell is to look at the device's power jack: a three-prong rectangular jack means that it uses the proportional technique, and a round jack means that it uses the fractional technique. Each section below lists the devices that use the technique and describes how the current is controlled. If you really want to be certain which technique is used, you can send the command with data value 1. If 1 returns an error, then the device is using the fractional technique. If 1 returns success, then the device is using the proportional technique.


Proportional: This technique is used by T-LSQ, T-LST, T-MCA, as well as A-series and X-Series motorized devices.

The value of this setting is in 14.1 mA RMS (20 mA peak) increments. As an example, to convert a desired run current of 1.2 A RMS into a data value for this setting:

data value = 1200 mA RMS ÷ 14.1 mA RMS/data = 85

To determine the actual current given the data value 40:

current = 40 × 14.1 mA RMS/data = 564 mA RMS

Fractional: This technique is used by all T-series motorized devices, with the exception of T-LSQ, T-LST, T-MCA.

The current is related to the data by the formula:

Current = CurrentCapacity * 10 / CommandData

The range of accepted values is 0 (no current), 10 (max) - 127 (min). CurrentCapacity is the hardware's maximum capability of output current.

To prevent damage, some devices limit the maximum output current to a lower value. In that case the valid range is 0, Limit - 127. Current limits are listed under the device specifications.

Some devices limit the voltage rather than the current. In this case the same formula can be used by replacing Current and CurrentCapacity with Voltage and PowerSupplyVoltage.


For example, Suppose you connect a stepper motor rated for 420mA per phase to a T-CD2500. Reversing the equation above and using 420mA as Current gives:

CommandData

= 10 * CurrentCapacity / Current
= 10 * 2500mA / 420mA
= 59.5 (round to 60)

Therefore CommandData = 60.


Set Hold Current - Cmd 39

Instruction Name Set Hold Current
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 39
Command Type Setting
Command Data Value
Reply Data Value
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the desired current to be used when the device is holding its position.

It is typical to run stepper motors at their rated current when they are moving (run current) and reduce the current when idle to hold the position (hold current). When a device stops moving, it switches from using the run current to the hold current 0.1 seconds later. This setting specifies the maximum hold current that may be used on each motor phase. If the motor position is between full steps, each phase will use some fraction of the current specified by this setting. Typically the hold current can be set to around 25 - 50% of the running current. In some applications, the friction of the drive system alone is sufficient to hold the microstep position of the motor, and the hold current can be turned off completely. The hold current can be turned off by issuing the "Set Hold Current" instruction with data of 0.

Zaber devices use two different techniques for controlling current: proportional and fractional. The easiest way to tell is to look at the device's power jack: a three-prong rectangular jack means that it uses the proportional technique, and a round jack means that it uses the fractional technique. Each section below lists the devices that use the technique and describes how the current is controlled. If you really want to be certain which technique is used, you can send the command with data value 1. If 1 returns an error, then the device is using the fractional technique. If 1 returns success, then the device is using the proportional technique.


Proportional: This technique is used by T-LSQ, T-LST, T-MCA, as well as A-series and X-Series motorized devices.

The value of the hold current setting is in 20 mA DC increments. As an example, to convert a desired hold current of 800 mA DC into a data value for this setting:

data value = 800 mA DC ÷ 20 mA DC/data = 40

To determine the actual current given the data value 40:

current = 40 × 20 mA DC/data = 800 mA DC

Fractional: This technique is used by all T-series motorized devices, with the exception of T-LSQ, T-LST, T-MCA.

The current is related to the data by the formula:

Current = CurrentCapacity * 10 / CommandData

The range of accepted values is 0 (no current), 10 (max) - 127 (min). CurrentCapacity is the hardware's maximum capability of output current.

To prevent damage, some devices limit the maximum output current to a lower value. In that case the valid range is 0, Limit - 127. Current limits are listed under the device specifications.

Some devices limit the voltage rather than the current. In this case the same formula can be used by replacing Current and CurrentCapacity with Voltage and PowerSupplyVoltage.


For example, Suppose you connect a stepper motor rated for 420mA per phase to a T-CD2500. Reversing the equation above and using 420mA as Current gives:

CommandData

= 10 * CurrentCapacity / Current
= 10 * 2500mA / 420mA
= 59.5 (round to 60)

Therefore CommandData = 60.


Set Device Mode - Cmd 40

Instruction Name Set Device Mode
Applies to All Zaber devices
Firmware Version 5.04 and up
Command Number 40
Command Type Setting
Command Data Mode
Reply Data Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the Mode for the given device.

This command allows setting several options, each controlled by a single bit within the command data. To determine what decimal value to use, the command data may be considered as a single 32-bit binary value. The least significant bit is bit_0, the next is bit_1, the next is bit_2, and so on up to the most significant bit_31. Each bit may have a value of either 1 or 0. Any unused or reserved bits should be left as 0.

The corresponding decimal representation of this 32-bit data is given by:

Decimal value = (bit_0 * 1) + (bit_1 * 2) + … + (bit_n * 2^n) + … + (bit_31 * 2^31)

For example, suppose you want all mode bits to be 0 except for bit_3 (disable knob) and bit_6 (enable message IDs). The Set Device Mode instruction should be sent with data calculated as follows:

Command Data
= 2^3 + 2^6
= 8 + 64
= 72

Note that each instance of the Set Device Mode command overwrites ALL previous mode bits. Repeated commands do not have a cumulative effect. For example, suppose you send a Set Device Mode command with data of 8 to disable the knob. If you then send another Set Device Mode command with data of 64 to enable message IDs, you will re-enable the knob since bit_3 in the 2nd instruction is 0.

Most devices have a default mode setting of 0 (all bits are 0). Not all options are available in all Zaber devices. To see the list of available options for a product, refer to the Set Device Mode description in the specific product manual.

Bit_n 2^n Description


bit_0 1 Disable Auto-reply
A value of 1 disables ALL replies except those to “echo”, “read”, “renumber”, and “return” commands. The default value is 0 on all devices.
bit_1 2 Enable Anti-backlash Routine
A value of 1 enables anti-backlash. On negative moves (retracting), the device will overshoot the desired position by 640 microsteps (assuming 64 microsteps/step), reverse direction and approach the requested position from below. On positive moves (extending), the device behaves normally. Care must be taken not to crash the moving payload into a fixed object due to the 640 microsteps overshoot on negative moves. The default value is 0 on all devices. See note on anti-backlash and anti-sticktion below. *
bit_2 4 Enable Anti-sticktion Routine
A value of 1 enables the anti-sticktion routine. On moves less than 640 microsteps (assuming 64 microsteps/step), the device will first retract to a position 640 microsteps less than the requested position and approach the requested position from below. Care must be taken not to crash the moving payload into a fixed object due to the 640 microsteps negative move. The default value is 0 on all devices. See section on anti-backlash and anti-sticktion below this table. *
bit_3 8 Disable Knob
A value of 1 disables the knob preventing manual adjustment of the device. The default value is 0 on all devices.
bit_4 16 Enable Move Tracking
A value of 1 enables the Move Tracking response during move commands. The device will return its position periodically when a move command is executed. The Disable Auto-Reply option above takes precedence over this option. The default value is 0 on all devices. Before firmware version 5.14, only Move at Constant Speed commands could generate tracking responses, now all move commands can.
bit_5 32 Disable Manual Move Tracking
A value of 1 disables the Manual Move Tracking response during manual moves. The Disable Auto-Reply option above takes precedence over this option. The default value is 0 on all devices.
bit_6 64 Enable Message IDs
A value of 1 enables Message IDs. In this mode of communication, only bytes 3 through 5 are used for data. Byte 6 is used as an ID byte that the user can set to any value they wish. It will be returned unchanged in the reply. Message IDs allow the users application to monitor communication packets individually to implement error detection and recovery. The default value is 0 on all devices. Prior to firmware version 5.06, this feature was called "Virtual Channels Mode" and did not behave reliably. We do not recommend enabling this mode of communications unless you have firmware version 5.06 or later.
bit_7 128 Home Status
This bit is set to 0 automatically on power-up or reset. It is set automatically when the device is homed or when the position is set using command #45. It can be used to detect if a device has a valid position reference. It can also be set or cleared by the user.
bit_8 256 Disable Auto-Home
A value of 1 disables auto-home checking. Checking for trigger of home sensor is only done when home command is issued. This allows rotational devices to move multiple revolutions without re-triggering the home sensor.
bit_9 512 Reverse Potentiometer
A value of 1 reverses the direction of the travel when the potentiometer is used to control the device. This mode bit was introduced in firmware version 5.06. Prior to that it was not used.
bit_10 1,024 Reserved
bit_11 2,048 Microstepping Mode
A value of 1 enables circular phase microstepping. A value of 0 enables square phase microstepping mode. The differences are:

Circular Phase:

  • constant torque
  • smoothest operation
  • better microstep accuracy
  • only 70% torque (and lower power consumption)

Square Phase:

  • non constant torque
  • less smooth operation
  • poorer microstep accuracy
  • 100% torque achieved (and higher power consumption)
bit_12 4,096 Set Home Switch Logic
The T-MCA series can accept a variety of motors and home sensors. Some devices have active high home limit switches. On these devices, this bit must be changed from the default setting in order for the home sensor to function correctly. A value of 1 must be set for these devices for the device to home properly. Damage to the home sensor or actuator may result if this bit is set improperly.
bit_13 8,192 Reserved
bit_14 16,384 Disable Power LED
A value of 1 turns off the power LED. It will still blink briefly, immediately after powerup.
bit_15 32,768 Disable Serial LED
A value of 1 turns off the serial LED.

*Anti-backlash and Anti-sticktion routines are designed to compensate for backlash and sticktion. The solution to backlash is to always approach a position from the same direction. The solution to sticktion is to move the device far enough away from the final position to break free of sticktion before attempting the final move. The operation of the two features are dependent on each other, and the interaction of enabling one or both of the features is described in the diagram to the right.


AntiSticktion.jpg


For each setting scenario, the starting position is denoted by the solid vertical line and the final position is denoted by the dotted vertical line. There are four possible moves for each scenario: long move positive, long move negative, short move positive and short move negative. The arrows show the path that would be traversed for each scenario.


Set Home Speed - Cmd 41

Instruction Name Set Home Speed
Applies to All motorized devices
Firmware Version 5.20 and up
Command Number 41
Command Type Setting
Command Data Speed
Reply Data Speed
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the speed at which the device moves when using the "Home" command.

When a home instruction is issued, the device will accelerate at a rate determined by the acceleration setting up to the speed determined by this command. The home speed can be set independently of target speed (command 42) so that for stages that move very fast, issuing the home command would use a slower home speed and prevent the stage from crashing into the home position.

For a spreadsheet that can be used to calculate speed setting values for any product see https://www.zaber.com/documents/ZaberSpeedSetting.xls. Alternatively you may use the formulas below.


The conversion between device speed and command data value depends on the device firmware version:

T-Series devices - Firmware 5.xx

Actual Speed

= Data * 9.375 * M mm/s or deg/s
= Data * 9.375 microsteps/s
= Data * 9.375 / R steps/s
= Data * 9.375 / (R x S) * 60 revolutions/min Motor rpm
= Data * 9.375 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 48 steps per revolution (S = 48), used with default resolution (R = 64), and Data is 2922, then the motor will move at a speed of approximately 535 revolutions per minute.


Valid data values are from 1 to (512×R−1).

A-Series and X-Series devices - Firmware 6.xx

Actual Speed

= Data / 1.6384 * M mm/s or deg/s
= Data / 1.6384 microsteps/s
= Data / 1.6384 / R steps/s
= Data / 1.6384 / (R x S) * 60 revolutions/min Motor rpm
= Data / 1.6384 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 200 steps per revolution (S = 200), used with default resolution (R = 64), and Data is 251658, then the motor will move at a speed of 720 revolutions per minute.


Valid data values are from 1 to (16384×R).


Set Target Speed - Cmd 42

Instruction Name Set Target Speed
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 42
Command Type Setting
Command Data Speed
Reply Data Speed
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the speed at which the device moves when using the "Move Absolute" or "Move Relative" commands.

When a move absolute or move relative instruction is issued, the device will accelerate at a rate determined by the acceleration setting up to the speed determined by this command.

The target velocity may be changed on-the-fly even when the device is in the middle of a move. The device will automatically adjust the velocity, but still target the final position specified in the original move.

For a spreadsheet that can be used to calculate speed setting values for any product see https://www.zaber.com/documents/ZaberSpeedSetting.xls. Alternatively you may use the formulas below.


The conversion between device speed and command data value depends on the device firmware version:

T-Series devices - Firmware 5.xx

Actual Speed

= Data * 9.375 * M mm/s or deg/s
= Data * 9.375 microsteps/s
= Data * 9.375 / R steps/s
= Data * 9.375 / (R x S) * 60 revolutions/min Motor rpm
= Data * 9.375 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 48 steps per revolution (S = 48), used with default resolution (R = 64), and Data is 2922, then the motor will move at a speed of approximately 535 revolutions per minute.


Valid data values are from 0 to (512×R−1). In Firmware 5.21 and 5.22, a value of 0 is not allowed. In all other versions, target speed of 0 will cause Move Absolute/Relative and Move to Stored Position commands to return an error.

A-Series and X-Series devices - Firmware 6.xx

Actual Speed

= Data / 1.6384 * M mm/s or deg/s
= Data / 1.6384 microsteps/s
= Data / 1.6384 / R steps/s
= Data / 1.6384 / (R x S) * 60 revolutions/min Motor rpm
= Data / 1.6384 * L / (R x S) mm/s Linear devices only

where:

  • Data is the value of the command data
  • R (microsteps/step) is the microstep resolution (command 37)
  • S (steps/revolution) is the number of steps per motor revolution
  • M (mm or deg) is the microstep size
  • L (mm or deg) is the distance of linear motion per motor revolution

Refer to product specifications for the distance corresponding to a single microstep or revolution.

For example, if a motor has 200 steps per revolution (S = 200), used with default resolution (R = 64), and Data is 251658, then the motor will move at a speed of 720 revolutions per minute.


Valid data values are from 1 to (16384×R).


Set Acceleration - Cmd 43

Instruction Name Set Acceleration
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 43
Command Type Setting
Command Data Acceleration
Reply Data Acceleration
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the acceleration used by the movement commands.

When a movement command is issued, the device will accelerate at a rate determined by this command "Set Acceleration" up to a maximum speed determined by the target velocity. The acceleration may be changed on-the-fly even when the device is in the middle of a move.

It is possible to set acceleration and deceleration separately in A-Series and X-Series devices. In which case, use Set Acceleration Only (Cmd 113) and Set Deceleration Only (Cmd 114) instead.


The conversion between device acceleration and command data value depends on the device firmware version:

T-Series devices - Firmware 5.xx
Actual Acceleration
= 11250 * Data * M mm/s^2 or deg/s^2
= 11250 * Data microsteps/s^2
= 11250 * Data / R steps/s^2

Where:

  • Data is the value specified in the Command Data
  • M (mm or deg) is the microstep size
  • R is the microstep resolution set in command #37 (microsteps/step)

The maximum value allowable is (512*R-1). This is the same as the maximum allowable data for velocity, which means that the device will reach maximum velocity immediately. If acceleration is set to 0, it is as if acceleration is set to (512*R-1). Effectively acceleration is turned off and the device will start moving at the target speed immediately.


A-Series and X-Series devices - Firmware 6.xx
Actual Acceleration
= 10000 * Data * M / 1.6384 mm/s^2 or deg/s^2
= 10000 * Data / 1.6384 microsteps/s^2
= 10000 * Data / R / 1.6384 steps/s^2

Where:

  • Data is the value specified in the Command Data
  • M (mm or deg) is the microstep size
  • R is the microstep resolution set in command #37 (microsteps/step)

The maximum value is 32767.


Set Maximum Position - Cmd 44

Instruction Name Set Maximum Position
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 44
Command Type Setting
Command Data Position
Reply Data Position
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the maximum position the device is allowed to travel to.

Use this command to limit the range of travel to a value other than the default. Exercise caution when using this command, since it is possible to set the range to a value greater than the physical limits of the device.

A device within range of travel is not allowed to move above its Maximum Position. The default Maximum Position is the full travel length of the device.

This setting is stored in non-volatile memory and will persist after power-down or reset.

NOTE: This command was previously named Set Maximum Range.


The valid range and behaviour of this command depends on the firmware version:

T-Series devices - Firmware 5.01 - 5.20

Valid values can be any number from 0 to 16777215. Device movement behaviour when out of range is not well-defined.


T-Series devices - Firmware 5.21 - 5.22

Valid values can be any number from 0 to 16777215, but the new Maximum Position cannot be less than the current position.


T-Series devices - Firmware 5.23 and up

Valid values can be any number from 0 to 16777215. If the device Current Position is out of range and above Maximum Position, the device is not allowed to move in the positive direction.


A-Series and X-Series devices - Firmware 6.xx

If the device Current Position is out of range and above Maximum Position, the device is not allowed to move in the positive direction.

Valid values can be any number from -1000000000 to 1000000000.


Set Current Position - Cmd 45

Instruction Name Set Current Position
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 45
Command Type Setting
Command Data New Position
Reply Data New Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence Volatile
Summary Sets the device internal position counter.

This command override the internal position counter with a new position value specified by the user.

The position data is volatile and will not persist after power-down or reset.


The behaviour of this command depends on the firmware version:

T-Series devices - Firmware 5.xx

The phase of the stepper motor is controlled by the least significant byte of the position, thus the device may move by +/- 2 full steps unless the new position corresponds to the true current position of the device. This command is useful if you want to turn off the system without losing position. Simply save the position in the controlling computer and turn off the hold current (Command 39) before powering down. After powering up, set the position back to the saved value and turn on the hold current. In this way you can continue without having to home the device. You have to turn off the hold current because when the power first comes on the position will default to the maximum range, and that may be out of phase with the motor's current position. If the hold current is on, it will force the motor into phase with the default position before you've had a chance to restore the current position.

In Firmware 5.21 and 5.22, the new Current Position must be equal or less than Maximum Position. See Set Maximum Position (Cmd 44) for more details on range settings and behaviour.


A-Series and X-Series devices - Firmware 6.xx

Stepper motor phase remains unchanged when position is updated.

Do not use this command to preserve the position counter over power cycles. To restore the position counter without homing the device, Park the stage before power down and Unpark the stage when power is restored. See Set Park State (Cmd 65) for details.


Set Maximum Relative Move - Cmd 46

Instruction Name Set Maximum Relative Move
Applies to T-Series motorized devices
Firmware Version 5.xx
Command Number 46
Command Type Setting
Command Data Range
Reply Data Range
Safe to retry? Yes
Returns Current Position? No
Persistence Non-volatile
Summary Sets a limit on the number of microsteps the device can make for a Relative Move command.

Use this command to limit the maximum range of travel for a relative move command. For example, if maximum relative move is set to 1000, and the user requests a relative move (#21) of 800, then the device will move 800 microsteps. However, if the user requests a relative move of 1200, then the device will reply with an error code. Most applications can leave this unchanged from the default.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Home Offset - Cmd 47

Instruction Name Set Home Offset
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 47
Command Type Setting
Command Data Offset
Reply Data Offset
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the the new "Home" position which can then be used when the Home command is issued.

When the home command is issued, the device will retract until the home sensor is triggered, then move forward until the home sensor is no longer triggered, then move forward by the Home Offset value (in microsteps) and resets the internal position (to 0 for most devices).

Note that the home offset command also changes the range settings of the device. For example, if the initial Home Offset is 0 and the Maximum Position is 500,000, and the user changes the Home Offset to 70,000, then the Maximum Position is automatically adjusted to be 430,000. However, changing the Maximum Position does not affect the home offset.

This setting is stored in non-volatile memory and will persist after power-down or reset.


T-Series devices - Firmware 5.xx

When a new Home Offset is specified, Maximum Position is adjusted to provide the same maximum location. However, the device will not be able to travel below its new home position unless it is homing.


A-Series and X-Series devices - Firmware 6.xx

When a new Home Offset is specified, Minimum and Maximum Positions are adjusted to provide the same range. The device is able to move in the same travel range as before.


Set Alias Number - Cmd 48

Instruction Name Set Alias Number
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 48
Command Type Setting
Command Data Alias Number
Reply Data Alias Number
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets an alternate device number for a device.

This setting specifies an alternate device number for a device (in addition to its actual device number). By setting several devices to the same alias number, you can control a group of devices with a single instruction. When you send an instruction to an alias number, all devices with that alias number will execute the instruction and reply using their actual device numbers. To remove an alias, simply set the device's alias number to zero. Valid alias numbers are 0 to 99 for version 6.05, and 0 to 254 otherwise. To avoid confusion, it is best to choose an alias greater than the number of devices connected.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Lock State - Cmd 49

Instruction Name Set Lock State
Applies to T-Series devices
Firmware Version 5.xx since 5.07
Command Number 49
Command Type Setting
Command Data Lock State
Reply Data Lock State
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Locks or unlocks all non-volatile settings.

Sometimes it is desirable to lock all non-volatile settings to prevent them from being changed inadvertently. After changing all settings as desired, settings can be locked by setting the Lock State to 1. Subsequent attempts to change any non-volatile setting (e.g., Set Target Speed, command 42) will result in an error response with an error code of 3600 (settings locked). Note that the Set Lock State command does not apply to commands and settings that are specific to the T-JOY3 joystick. Load Event Instruction and Set Axis Device Number for example, are unaffected by the Lock State.

How the Restore Settings instruction behaves when the settings are locked depends on the firmware version. In version 5.07 issuing a Restore Settings instruction while the settings are locked will result in an error response with an error code of 3600 (settings locked). This behavior was found to confuse many customers so in version 5.08 and up, the behavior was changed such that regardless of the current lock state, issuing a Restore Settings instruction will always return setting values to factory default values and leave settings in an unlocked state.

Settings can also be unlocked by setting the Lock State to 0.


Return Device ID - Cmd 50

Instruction Name Return Device ID
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 50
Command Type Read-Only Setting
Command Data Ignored
Reply Data Device ID
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the ID number for the type of device connected.

See the Zaber support web site for a table of device IDs for all Zaber products.


Return Firmware Version - Cmd 51

Instruction Name Return Firmware Version
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 51
Command Type Read-Only Setting
Command Data Ignored
Reply Data Version
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the firmware version installed on the device.

A decimal is assumed before the last two digits. For example, 502 indicates firmware version 5.02.


Return Power Supply Voltage - Cmd 52

Instruction Name Return Power Supply Voltage
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 52
Command Type Read-Only Setting
Command Data Ignored
Reply Data Voltage
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the voltage level of the device's power supply.

A decimal is assumed before the last digit. For example, a value of 127 indicates 12.7 V. Note that the internal voltage measurement is not very accurate. Don't be alarmed if the indicated voltage is slightly different from your measurements.


Return Setting - Cmd 53

Instruction Name Return Setting
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 53
Command Type Command
Command Data Setting Number
Reply Data Setting Value
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the current value of the setting specified in the Command Data.

Valid command data values are the command numbers of any "Set..." instruction. The device will reply using the command number of the specified setting (as if a command to change the setting had just been issued) but the setting will not be changed.

For example, command #48 is the "Set Alias" instruction. Therefore if you wish to return the current value of the alias number, simply send the Return Setting instruction with data of 48. The device will reply with command #48 and data equal to the setting value.

Since firmware version 5.21, this command also accepts the command numbers of any "Return..." instruction, such as command #50 "Return Device ID".


Return Status - Cmd 54

Instruction Name Return Status
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 54
Command Type Read-Only Setting
Command Data Ignored
Reply Data Status
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the current status of the device.

Possible status codes are as follows:

  • 0 - idle, not currently executing any instructions
  • 1 - executing a home instruction
  • 10 - executing a manual move (i.e. the manual control knob is turned)
  • 11 - executing a manual move in Displacement Mode (A-Series and X-Series devices only)
  • 13 - device has stalled and stopped or been displaced while stationary (FW 6.07 and up only)
  • 18 - executing a move to stored position instruction (FW 5.04 and up only)
  • 20 - executing a move absolute instruction
  • 21 - executing a move relative instruction
  • 22 - executing a move at constant speed instruction
  • 23 - executing a stop instruction (i.e. decelerating)
  • 65 - device is parked (A-Series and X-Series devices with FW 6.02 and up only. FW 6.01 returns 0 when parked)
  • 78 - executing a move index instruction (FW 6.22 and up only)


Echo Data - Cmd 55

Instruction Name Echo Data
Applies to All Zaber devices
Firmware Version 5.04 and up
Command Number 55
Command Type Command
Command Data Data
Reply Data Data
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Echoes back the same Command Data that was sent.

This command is useful for testing communication, similar to a network "ping".

Special Note

This instruction is a useful one to use as an event-triggered instruction associated with a key event. It can be used to allow the computer (if one is connected) to detect a key press on the joystick. For more details see the Load Event-Triggered Instruction (#30) command.


Return Firmware Build - Cmd 56

Instruction Name Return Firmware Build
Applies to All Zaber devices
Firmware Version 6.17 and up
Command Number 56
Command Type Read-Only Setting
Command Data Ignored
Reply Data Build Number
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the firmware build number installed on the device.

This is unique to a firmware build even when multiple builds may share the same version, such as custom engineering parts. It is not normally necessary to consult the build number.


Return Current Position - Cmd 60

Instruction Name Return Current Position
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 60
Command Type Read-Only Setting
Command Data Ignored
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Returns the current absolute position of the device in microsteps.

This is equivalent to issuing a Return Setting (#53) command with a command data value of 45 (Set Current Position).

Return Serial Number - Cmd 63

Instruction Name Return Serial Number
Applies to All devices
Firmware Version 5.30 to 5.35, 6.07 and up
Command Number 63
Command Type Read-Only Setting
Command Data Ignored
Reply Data Serial Number
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the serial number of the device.

Set Park State - Cmd 65

Instruction Name Set Park State
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 65
Command Type Setting
Command Data Park State
Reply Data Park State
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Park or unpark the device.

This command allows a device to maintain its position reference over a power cycle without requiring homing. This feature is useful when a device needs to be powered down but a Home procedure is not desired at next power up.

Parking
To Park the device, issue command 65 with data value of 1. Device will store its internal position settings and shut off all current to the motor. Device can now be powered down.
Unparking
To Unpark the device, issue command 65 with data value of 0. Device will resume its previous internal settings and enable current to the motor. Current Position is now set to that when device was parked.
  • When a device is parked, no current is applied to the motor. Any movement command except Home results in an error response.
  • A parked device can be identified by its power LED (green) fading in and out slowly.
  • A parked device returns 65 upon Return Status (Cmd 54).
    • Exception: Firmware version 6.01 returns 0.
  • A parked device becomes unparked when one of the following commands is received:
1. Unpark (Set Park State (Cmd 65))
2. Home (Cmd 1)
3. Restore Settings (Cmd 36)
  • If the device is displaced while parked, the device should be parked again before powering down.
  • If the device is displaced since last parked or during powered off, a Homing procedure is required at the next start up. Unparking a displaced device will not resume correct settings.
  • If a device is not parked, an unpark command has no effect on the device.

Set Peripheral ID - Cmd 66

Instruction Name Set Peripheral ID
Applies to A-Series and X-Series motor controllers
Firmware Version 6.xx
Command Number 66
Command Type Setting
Command Data Peripheral ID
Reply Data Peripheral ID
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Set default values for a specific peripheral device.

This command assigns the given peripheral ID to the controller and loads the default settings for the assigned peripheral ID. Once a peripheral ID is assigned, Restore Settings (Cmd 36) with command data 0 can be issued to restore to default settings of the assigned peripheral ID without needing to specify the ID.

If 0 is given instead of a peripheral ID, the controller will restore to its safe-mode settings. At safe mode, the peripheral will be set to 10% maximum running current and no hold current. Any previously stored peripheral ID will be erased. This is a relatively safe setting that prevents damage to any motor connected to the controller, but as a result, you may not be able to run a motor with the controller set to this condition. You can either issue the Set Peripheral ID instruction with one of the peripheral IDs, or you can adjust each relevant setting independently.

The Set Peripheral ID instruction should initially be issued with a peripheral ID corresponding to the specific motor or motorized device connected. This will set the motor controller to the factory default settings for the motorized peripheral in question. For example, if a LSA10A-T4 is connected to a controller, the user can issue the Set Peripheral ID instruction with a peripheral ID of 48402. This will automatically set all non-volatile parameters (range, mode, running and hold currents, etc) to values that will work with the LSA10A-T4. For a list of peripheral IDs and default values of the settings please refer to the Device and Peripheral Pages.

Setting the peripheral ID will be rejected if the axis is moving.

Note: Sending Set Peripheral ID with a peripheral ID value is equivalent to sending Restore Settings (Cmd 36) with a peripheral ID value. However, Set Peripheral ID with data 0 puts controller into safe-mode settings, whereas Restore Settings with data 0 causes the controller to load default values for the assigned peripheral ID.


Return Digital Input Count - Cmd 67

Instruction Name Return Digital Input Count
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 67
Command Type Read-Only Setting
Command Data Ignored
Reply Data Pin Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the number of digital input pins.

This command returns 0 if the device does not support digital inputs.


Read Digital Input - Cmd 68

Instruction Name Read Digital Input
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 68
Command Type Command
Command Data Pin Number
Reply Data Pin State
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads the state of a digital input.


Read All Digital Inputs - Cmd 69

Instruction Name Read All Digital Inputs
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 69
Command Type Command
Command Data Ignored
Reply Data Pin States
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads the states of all digital inputs.

The reply data is a binary encoding of up to 24 input pins. The least significant bit of the reply data corresponds to digital input pin 1, the next bit corresponds to digital input pin 2, and so on. Any bits beyond the number of pins available on the device always read as zero.


Return Digital Output Count - Cmd 70

Instruction Name Return Digital Output Count
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 70
Command Type Read-Only Setting
Command Data Ignored
Reply Data Pin Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the number of digital output pins.

This command returns 0 if the device does not support digital outputs.


Read Digital Output - Cmd 71

Instruction Name Read Digital Output
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 71
Command Type Command
Command Data Pin Number
Reply Data Pin State
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads the state of a digital output.


Read All Digital Outputs - Cmd 72

Instruction Name Read All Digital Outputs
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 72
Command Type Command
Command Data Ignored
Reply Data Pin States
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads the states of all digital outputs.

The reply data is a binary encoding of up to 24 output pins. The least significant bit of the reply data corresponds to digital output pin 1, the next bit corresponds to digital output pin 2, and so on. Any bits beyond the number of pins available on the device always read as zero.


Write Digital Output - Cmd 73

Instruction Name Write Digital Output
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 73
Command Type Command
Command Data See Description
Reply Data Same as Command Data
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Sets the level of a digital output.

The command data must be 2 × P + V, where P is the pin number to set and V is the value to set (either 1 or 0).


Write All Digital Outputs - Cmd 74

Instruction Name Write All Digital Outputs
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 74
Command Type Command
Command Data Pin States
Reply Data Pin States
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Writes the states of all digital outputs.

The command data is a binary encoding of up to 24 output pins. The least significant bit of the command data is sent to digital output pin 1, the next bit is sent to digital output pin 2, and so on. Any bits beyond the number of pins available on the device must be specified as zero.


Return Analog Input Count - Cmd 75

Instruction Name Return Analog Input Count
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 75
Command Type Read-Only Setting
Command Data Ignored
Reply Data Pin Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the number of analog input pins.

This command returns 0 if the device does not support analog inputs.


Read Analog Input - Cmd 76

Instruction Name Read Analog Input
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 76
Command Type Command
Command Data Pin Number
Reply Data Voltage
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Reads the voltage on an analog input.

The voltage returned in the reply message is measured in hundreds of microvolts.


Return Analog Output Count - Cmd 77

Instruction Name Return Analog Output Count
Applies to All Zaber devices
Firmware Version 6.19 and up
Command Number 77
Command Type Read-Only Setting
Command Data Ignored
Reply Data Pin Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the number of analog output pins.

This command returns 0 if the device does not support analog outputs.

Move Index - Cmd 78

Instruction Name Move Index
Applies to A-Series and X-Series motorized devices
Firmware Version 6.22 and up
Command Number 78
Command Type Command
Command Data Index Number
Reply Data Final Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Moves the device to an index position.

For a provided Index Number, this command directs the axis to move to the absolute position (Index Number - 1) * Index Distance (Cmd 79). Note that only positive values of Index Number are accepted.

  • For rotary devices with a non-zero Cycle Distance (Cmd 80), the command will be accepted if the targeted position is greater or equal to 0 and less than the Cycle Distance. The device will move either clockwise or counter-clockwise, depending on which direction yields the shortest distance to the target position. If you want all index positions to be equally spaced around the circle, set the Index Distance to a factor of the Cycle Distance.
  • For linear devices, or rotary devices where the Cycle Distance is zero, the command will be accepted if the targeted position is within the valid travel of the device, i.e. in the range [ Minimum Position (Cmd 106), Maximum Position (Cmd 44) ].

The device begins to move immediately, and sends a response when the move has finished.

The target speed and acceleration during a move index instruction can be specified using Set Target Speed (Cmd 42), Set Acceleration (Cmd 43), Set Acceleration Only (Cmd 113) and Set Deceleration Only (Cmd 114).

All move commands are pre-emptive. If a new move command is issued before the previous move command is finished, the device will immediately move to the new position. This command may pre-empt, or be pre-empted by Move to Stored Position (Cmd 18), Move Absolute (Cmd 20), Move Relative (Cmd 21), Move at Constant Speed (Cmd 22), Move Index (Cmd 78) and Stop (Cmd 23).

Set Index Distance - Cmd 79

Instruction Name Set Index Distance
Applies to A-Series and X-Series motorized devices
Firmware Version 6.22 and up
Command Number 79
Command Type Setting
Command Data Distance
Reply Data Distance
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the distance between consecutive index positions.

The distance, measured in microsteps, between positions reachable with the Move Index (Cmd 78) command.

For rotary devices with a non-zero Cycle Distance (Cmd 80), the Index Distance should be set to be less than the Cycle Distance for Move Index commands to be accepted.

For linear devices, or rotary devices where the Cycle Distance is zero, the Index Distance should be less than or equal to the Maximum Position (Cmd 44) and the Maximum Position should be positive for Move Index commands to be accepted.

Set Cycle Distance - Cmd 80

Instruction Name Set Cycle Distance
Applies to A-Series and X-Series rotary devices and controllers
Firmware Version 6.22 and up
Command Number 80
Command Type Setting
Command Data Distance
Reply Data Distance
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the microsteps in a full rotation.

The number of microsteps a rotary device needs to move to complete one full rotation. On integrated rotary devices, this setting is read-only.

Set Filter Holder ID - Cmd 81

Instruction Name Set Filter Holder ID
Applies to X-Series Filter Wheels
Firmware Version 6.22 and up
Command Number 81
Command Type Setting
Command Data Filter Holder ID
Reply Data Filter Holder ID
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the ID of the currently installed filter holder.

Specifies the currently installed filter holder. Writing this setting also updates Index Distance (Cmd 79) to conform with the optic spacing of the specified filter holder.

Valid settings are:

  • 25 - Filter holder model FH0625.
  • 32 - Filter holder model FH0632.

This command is only available on filter wheel devices.

Return Encoder Count - Cmd 82

Instruction Name Return Encoder Count
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.24 and up
Command Number 82
Command Type Read-Only Setting
Command Data Ignored
Reply Data Encoder Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Return the encoder count.

Returns the raw counts reported by the encoder. Units are arbitrary and dependent on the encoder used.

Return Calibrated Encoder Count - Cmd 83

Instruction Name Return Calibrated Encoder Count
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.24 and up
Command Number 83
Command Type Read-Only Setting
Command Data Ignored
Reply Data Calibrated Encoder Count
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Returns the calibrated encoder count.

The calibrated encoder count, where present. Units are arbitrary and dependent on the encoder used.

This setting is the result of calibrating the raw encoder count reading (Encoder Count (Cmd 82)) using the calibration error table value at the current location. In particular,

encoder.count.calibrated = Encoder Count (Cmd 82) - error.

If the encoder count is not at a calibration error table entry, the error is linearly interpolated from the values at the nearest table entries.

This setting is useful only when direct encoder calibration is in use. Otherwise, it is set to Encoder Count (Cmd 82).

T-Series/Commands/Return Calibration Type

T-Series/Commands/Return Calibration Error

Set Peripheral Serial Number - Cmd 86

Instruction Name Set Peripheral Serial Number
Applies to X-Series devices
Firmware Version 6.24 and up
Command Number 86
Command Type Setting
Command Data Peripheral Serial Number
Reply Data Peripheral Serial Number
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Serial number of the attached peripheral.

The serial number of the attached peripheral. This value is used to uniquely identify a particular peripheral.

For calibrated peripherals, this value must be correctly set in order to enable calibration.

This value is reset to 0 when the Peripheral ID (Cmd 66) is changed.

Force Absolute - Cmd 87

Instruction Name Force Absolute
Applies to A-Series and X-Series voice coil devices
Firmware Version 6.25 and up
Command Number 87
Command Type Command
Command Data Force
Reply Data Force
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Apply a constant force specified in the Command Data.

This command sets the constant force applied by the the voice coil axis.

The unitless command data specifies the constant force applied. The valid range is -700 to 700.

Force Off - Cmd 88

Instruction Name Force Off
Applies to A-Series and X-Series voice coil devices
Firmware Version 6.25 and up
Command Number 88
Command Type Command
Command Data Ignored
Reply Data None
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Disables all force output.

This command disables all force output on the voice coil axis. If axis is in position control, this command also disables control output.

Set Auto-Reply Disabled Mode - Cmd 101

Instruction Name Set Auto-Reply Disabled Mode
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 101
Command Type Setting
Command Data Auto-Reply Disabled Mode
Reply Data Auto-Reply Disabled Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Disables all command auto-replies from the device.

Use this command to disable auto-reply. When the auto-reply is disabled, device will only reply to “Return” commands.

0 - Auto-Reply Enabled (Default)
Device replies to all commands
1 - Auto-Reply Disabled
Device only replies to "Echo", "Read", "Renumber", and "Return" commands

This setting is identical to bit 0 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Message ID Mode - Cmd 102

Instruction Name Set Message ID Mode
Applies to A-Series and X-Series devices
Firmware Version 6.xx
Command Number 102
Command Type Setting
Command Data Message ID Mode
Reply Data Message ID Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Enable message IDs in device communication.

When message ID is enabled, only bytes 3 through 5 in the command requests and responses are used for data. Byte 6 is used as an ID byte that the user can set to any value they wish. When the device receives a command request with a certain ID byte, it will reply with a command response containing the same ID byte. This allows the user application to monitor communication packets individually to implement error detection and recovery.

0 - Message ID Disabled (Default)
All 4 data bytes are used for data
1 - Message ID Enabled
Only bytes 3 through 5 are used for data. Byte 6 is used as an ID byte. Device always responds with a message ID corresponding to that in the command request.
  • A device will not reply with the same message ID more than once, unless user issues two commands with identical message ID.
  • For any reply that is not a result of a user request, message ID 0 is used. (e.g. Manual Move Tracking)
  • NOTE: When message ID is enabled, data range is limited to 3 bytes (24 bits). Thus, commands with data value more than 24 bit range might not behave properly.

This setting is identical to bit 6 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.

Example
requests -> (ID 01) Move Absolute 10000 [device starts to move]
requests -> (ID 02) Return Status [request device status]
<- responds (ID 02) Return Status ( 20 ) [device replies with message ID corresponding to the request (ID 02)]
<- responds (ID 01) Move Absolute 10000 [when movement is completed, device replies with ID 01 which corresponds to the request.]


Set Home Status - Cmd 103

Instruction Name Set Home Status
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 103
Command Type Setting
Command Data Home Status
Reply Data Home Status
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Sets whether a device has been homed.

This value indicates whether a device has been homed and has a valid position reference.

  • This value is set to 0 automatically on power-up or reset
  • This value is set to 1 automatically when the device is homed or when the position is set using command #45

This setting is identical to bit 7 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.


Set Home Sensor Type - Cmd 104

Instruction Name Set Home Sensor Type
Applies to A-Series and X-Series motor controllers
Firmware Version 6.xx
Command Number 104
Command Type Setting
Command Data Home Sensor Type
Reply Data Home Sensor Type
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Configures the home sensor type of the device.

Use this command to select the home sensor output level the firmware should interpret as a home sensor trigger. Most Zaber peripherals have active low home sensors. For peripherals installed with active high home sensors, this setting must be changed from the default value in order for the home sensor to function correctly. Damage to the home sensor or actuator may result if this value is set improperly.

0 - Active low home sensor (Default)
Home sensor outputs low voltage level when triggered
1 - Active high home sensor
Home sensor outputs high voltage level when triggered

This setting is identical to bit 12 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Auto-Home Disabled Mode - Cmd 105

Instruction Name Set Auto-Home Disabled Mode
Applies to A-Series and X-Series motor controllers
Firmware Version 6.xx
Command Number 105
Command Type Setting
Command Data Auto-Home Disabled Mode
Reply Data Auto-Home Disabled Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Prevents home sensor from triggering a homing procedure during movement commands.

Use this command to disable auto-home. During a movement command with auto-home enabled, a device homes itself whenever the home sensor is triggered. The home sensor is ignored if auto-home is disabled. This allows rotational devices to move multiple revolutions without re-triggering the homing mechanism.

0 - Auto-Home Enabled (Default)
Device runs homing procedure whenever home sensor is triggered
1 - Auto-Home Disabled
Device responses to home sensor only during a Home command

This setting is identical to bit 8 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Minimum Position - Cmd 106

Instruction Name Set Minimum Position
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 106
Command Type Setting
Command Data Minimum Position
Reply Data Minimum Position
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the minimum position the device is allowed to reach.

A device within range of travel is not allowed to move below its Minimum Position. If the device Current Position is out of range and below Minimum Position, the device is not allowed to move in the negative direction. The default Minimum Position in most devices is 0.

Use this command to limit the range of travel to a value other than the default. Exercise caution when using this command, since it is possible to set the range to a value greater than the physical limits of the device.

Valid values can be any number from -1000000000 to 1000000000.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Disabled Mode - Cmd 107

Instruction Name Set Knob Disabled Mode
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 107
Command Type Setting
Command Data Knob Disabled Mode
Reply Data Knob Disabled Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Enables or disables manual movement control.

Use this command to disable knob functionality. When the knob is disabled, all knob turns and depresses are ignored.

0 - Knob Enabled (Default)
Knob functions normally.
1 - Knob Disabled
Knob interaction is ignored.

This setting is identical to bit 3 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Direction - Cmd 108

Instruction Name Set Knob Direction
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 108
Command Type Setting
Command Data Knob Direction
Reply Data Knob Direction
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes direction of movement when knob is turned.

Use this command to reverse the device movement direction when the knob is turned.

0 - Normal (Default)
Clockwise knob turn results in movement in the positive direction.
1 - Reversed
Clockwise knob turn results in movement in the negative direction.

This setting is identical to bit 9 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Movement Mode - Cmd 109

Instruction Name Set Knob Movement Mode
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 109
Command Type Setting
Command Data Movement Mode
Reply Data Movement Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the movement mode used when the manual knob is turned.

Use this command to set the desired manual movement mode.

0 - Velocity Mode (Default)
Each detent of a knob turn moves the device at an increasing speed. There are 16 speeds in each direction. The velocity profile and the maximum speed can be set via Set Knob Velocity Profile (Cmd 112) and Set Knob Velocity Scale (Cmd 111).
1 - Displacement Mode
Each detent of a knob turn moves the device for a fixed number of microsteps. The device stops if the number of microsteps left in the maximum range is less than the requested move command number. The number of microsteps per knob detent can be set via Set Knob Jog Size (Cmd 110).

NOTE: User can also quickly toggle between the two modes by depressing and holding the knob for 1 second.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Jog Size - Cmd 110

Instruction Name Set Knob Jog Size
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 110
Command Type Setting
Command Data Jog Size
Reply Data Jog Size
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the distance to travel for knob manual movement in displacement mode.

Use this command to set the number of microsteps per knob detent when the knob is turned in displacement mode.

Each detent of a knob turn moves the device for a fixed number of microsteps. The device stops if the number of microsteps left in the max/min range is less than the requested move command number.

The default setting for most devices sets a value such that one full cycle of the knob will result in one revolution of the stepper motor.

If this setting is set to 0, each step of the knob moves to the next or previous index position, similar to Move Index (Cmd 78) movements.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Velocity Scale - Cmd 111

Instruction Name Set Knob Velocity Scale
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 111
Command Type Setting
Command Data Maximum Speed
Reply Data Maximum Speed
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the maximum speed for knob manual movement in velocity mode.

Use this command to set the desired maximum speed for a knob manual move in velocity mode. This speed corresponds to the 16th detent on the knob. Intermediate speeds are determined by the velocity profile (See Set Knob Velocity Profile (Cmd 112)).

This value only applies when the device has been homed. Before homing, the maximum speed when using a knob manual move in velocity mode is the Home Speed (See Set Home Speed (Cmd 41)).

The default velocity scale is identical to that of Set Target Speed (Cmd 42).

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Knob Velocity Profile - Cmd 112

Instruction Name Set Knob Velocity Profile
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 112
Command Type Setting
Command Data Profile Number
Reply Data Profile Number
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the relationship between knob turn and the velocity of the device for knob manual movement in velocity mode.

Use this command to set how device speed should vary when the knob is turned in velocity mode. There are 16 knob detents for 16 speeds in each direction. The 16th detents are scaled relative to the maximum speed set by Set Knob Velocity Scale (Cmd 111).

Three velocity profiles are available:

  • 1 – Linear
  • 2 – Quadratic (Default)
  • 3 – Cubic

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Acceleration Only - Cmd 113

Instruction Name Set Acceleration Only
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 113
Command Type Setting
Command Data Acceleration
Reply Data Acceleration
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets only the acceleration used by the movement commands, leaving deceleration value unchanged.

When a movement command is issued, the device will accelerate at a rate determined by this command up to a maximum speed determined by the target velocity.

This command only changes the acceleration value but not the deceleration value. Use Set Deceleration Only (Cmd 114) to change only the deceleration value, or use Set Acceleration (Cmd 43) to set both acceleration and deceleration at the same time.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Deceleration Only - Cmd 114

Instruction Name Set Deceleration Only
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 114
Command Type Setting
Command Data Deceleration
Reply Data Deceleration
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets only the deceleration used by the movement commands, leaving acceleration value unchanged.

When a movement command is issued, the device will decelerate to a stop at a rate determined by this command.

This command only changes the deceleration value but not the acceleration value. Use Set Acceleration Only (Cmd 113) to change only the acceleration value, or use Set Acceleration (Cmd 43) to set both acceleration and deceleration at the same time.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Move Tracking Mode - Cmd 115

Instruction Name Set Move Tracking Mode
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 115
Command Type Setting
Command Data Move Tracking Mode
Reply Data Move Tracking Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Enable Move Tracking messages.

Enable Move Tracking to have the device send Move Tracking (Cmd 8) responses, which contain position information, during move commands.

0 - Move Tracking Disabled (Default)
Device does not send Move Tracking messages while executing a move command.
1 - Move Tracking Enabled
Device sends Move Tracking responses periodically while executing a move command.

This setting is identical to bit 4 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.

Example

Move Tracking Disabled

requests -> Move Absolute 100000
<- responds Move Absolute 100000 [ Device arrives at target position ]

Move Tracking Enabled

requests -> Move Absolute 100000
<- responds Move Tracking (Position 19892)
<- responds Move Tracking (Position 43320)
<- responds Move Tracking (Position 66767)
<- responds Move Tracking (Position 90195)
<- responds Move Absolute 100000 [ Device arrives at target position ]


Set Manual Move Tracking Disabled Mode - Cmd 116

Instruction Name Set Manual Move Tracking Disabled Mode
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 116
Command Type Setting
Command Data Manual Move Tracking Disabled Mode
Reply Data Manual Move Tracking Disabled Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Disable Manual Move Tracking messages.

Disable Manual Move Tracking to inhibit messages produced by manipulating the knob. When manual move tracking is enabled, the device will return messages in the following circumstances:

Please note the following:

0 - Manual Move Tracking Enabled (Default)
Device sends messages as described above.
1 - Manual Move Tracking Disabled
Device does not send these messages.

This setting is identical to bit 5 of Set Device Mode (Cmd 40). Changes to either this setting or the device mode will be reflected in the other.

This setting is stored in non-volatile memory and will persist after power-down or reset.

Example

Manual Move Tracking Enabled

*** Knob in Velocity Mode ***
*** Knob turned *** [ Device begins to move ]
<- responds Manual Move Tracking (Position 19892)
<- responds Manual Move Tracking (Position 43320)
<- responds Manual Move Tracking (Position 66767)
*** Knob turned to Stop position ***
<- responds Manual Move Tracking (Position 90195) [ Device stopped ]

Manual Move Tracking Disabled

*** Knob in Velocity Mode ***
*** Knob turned *** [ Device begins to move ]
*** Knob turned to Stop position ***
*** Deceleration time passes *** [ Device stopped ]

In firmware 6.13 and below, this option only affects Manual Move Tracking messages in velocity mode, not Manual Move messages in displacement mode, Stop messages caused by depressing the knob, Set Knob Movement Mode messages caused by holding the knob, or Home messages caused by running the axis into a limit sensor using the knob.


Set Move Tracking Period - Cmd 117

Instruction Name Set Move Tracking Period
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 117
Command Type Setting
Command Data Tracking Period in ms
Reply Data Tracking Period in ms
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the update interval between Move Tracking and Manual Move Tracking messages.

Use this command to configure the interval between each Move Tracking (Cmd 8) or Manual Move Tracking (Cmd 10) responses. The value is specified in milliseconds and the default setting is 250ms. The shortest possible tracking period is 10ms.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Closed-Loop Mode - Cmd 118

Instruction Name Set Closed-Loop Mode
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.xx
Command Number 118
Command Type Setting
Command Data Closed-Loop Mode
Reply Data Closed-Loop Mode
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the closed-loop (slip, stall, and displacement detection and recovery) control mode for encoder embedded devices.

This command configures the closed-loop behavior of a device, determining its reaction to slips, stalls, and displacement conditions. Behavior and available settings vary by encoder type.

Devices with Motor Mounted Encoders

Closed-Loop Mode Slip Detected1 Stall Detected2 Displaced While Stationary
0 - Disabled
  • No action.
  • No action.
  • No action.
1 - Passive Mode
  • Blue LED cycles on and off every two seconds.
2 - Stall Detection
3 - Position Correction (Default)
4 - Stall Recovery
5 - Displace Recovery

1 - A stepper motor has slipped when the encoder feedback lags the Current Position - Cmd_60 by two full steps of the motor or more.
2 - A device has stalled when the motor has failed to make progress towards the targeted position for the Stall Timeout - Cmd 120 period.

Devices with Direct Reading or Linear Encoders

Closed-Loop Mode Approaching Targeted Position Stall Detected3 Displaced While Stationary
0 - Disabled
  • No action.
  • No action.
  • No action.
1 - Passive Mode
  • Not available.
  • Not available.
  • Not available.
2 - Stall Detection
  • No action.
3 - Position Correction (Default)
  • Device makes small movements to try to match the encoder's position to the targeted position.
  • If the encoder's position doesn't match the targeted position after the adjustments, Current Position (Cmd 60) is updated to match the encoder's position.
4 - Stall Recovery
  • Device makes small movements to try to match the encoder's position to the targeted position.
  • If the encoder's position doesn't match the targeted position after the adjustments, Current Position (Cmd 60) is updated to match the encoder's position.
5 - Displace Recovery
  • Device makes small movements to try to match the encoder's position to the targeted position.
  • If the encoder's position doesn't match the targeted position after the adjustments, Current Position (Cmd 60) is updated to match the encoder's position.

3 - A device has stalled when the motor has failed to make progress towards the targeted position for the Stall Timeout - Cmd 120 period.

Voice Coil Devices

Closed-Loop Mode Stall Detected4 Displaced While Stationary5
0 - Disabled
  • Not available.
  • Not available.
1 - Passive Mode
  • Not available.
  • Not available.
2 - Stall Detection
  • Not available.
  • Not available.
3 - Position Correction
4 - Stall Recovery
5 - Displace Recovery (Default)
  • Device always restores to its original location.

4 - A voice coil device is considered to have stalled when the motor has output its maximum force for over the Stall Timeout (Cmd 120) period during a position controlled movement.
5 - A voice coil device has been displaced if it has been held at a new location for the Stall Timeout (Cmd 120) period in position control mode.

Closed-loop (slip/stall/displacement recovery) mode can be enabled on devices with a built-in encoder.

To use closed-loop modes with a third party encoder, use ASCII mode to configure encoder.mode and all encoder related settings. Set encoder.dir so that encoder.count increments in the same direction as pos. Adjust cloop.steps and cloop.counts to reflect the correct ratio between motor full steps and encoder counts.


Set Slip Tracking Period - Cmd 119

Instruction Name Set Slip Tracking Period
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.xx
Command Number 119
Command Type Setting
Command Data Tracking Period in ms
Reply Data Tracking Period in ms
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the update interval between Slip Tracking messages.

Use this command to configure the interval between each Slip Tracking responses.

0 - Slip Tracking Disabled
Set to 0 to turn off slip tracking
10 to 65535 - Slip Tracking Enabled
Interval between Slip Tracking messages, in units of ms. The shortest possible tracking period is 10ms.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Stall Timeout - Cmd 120

Instruction Name Set Stall Timeout
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.xx
Command Number 120
Command Type Setting
Command Data Stall Timeout in ms
Reply Data Stall Timeout in ms
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Sets the timeout for stall and forced displacement conditions in closed-loop modes.

Use this command to configure the duration before an action is taken when a stall or forced displacement occurs. The value is specified in ms.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Device Direction - Cmd 121

Instruction Name Set Device Direction
Applies to A-Series and X-Series motor controllers
Firmware Version 6.xx
Command Number 121
Command Type Setting
Command Data Device Direction
Reply Data Device Direction
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes direction of device movement.

Use this command to reverse the device movement direction if the device is homing in the wrong direction. When set to reversed mode, both the motor output and the encoder input will reverse direction. This is equivalent to swapping the phases on motor and encoder cables, or attaching a motor at the opposite end of the stage. Improperly setting this value may result in damage to the home sensor or actuator.

0 - Normal (Default)
Device operates in normal direction.
1 - Reversed
Device operates in reversed direction.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Baud Rate - Cmd 122

Instruction Name Set Baud Rate
Applies to A-Series and X-Series devices
Firmware Version 6.06 and up
Command Number 122
Command Type Setting
Command Data Baud Rate
Reply Data Baud Rate
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes the baud rate of the RS232 communications

This command sets the baud rate in use for communications. The device will reply on the current baud rate and then change to the new setting after the communication lines have been idle for 500ms.

Valid baud rates are:

  • 9600 (default for Binary in Zaber Console)
  • 19200
  • 38400
  • 57600
  • 115200 (default for ASCII in Zaber Console)

All other serial parameters are 8 bits, 1 stop bit, No parity and no flow control.

To set protocol and RS232 baud rate at the same time, use the Convert To Ascii (Cmd 124) command.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Set Protocol - Cmd 123

Instruction Name Set Protocol
Applies to A-Series and X-Series devices
Firmware Version 6.06 and up
Command Number 123
Command Type Setting
Command Data Protocol
Reply Data Protocol
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes the communications protocol in use.

This command sets the protocol in use for communications. The device will reply in the current protocol and then change to the new setting after the communication lines have been idle for 500ms.

Valid protocols are:

To set protocol and RS232 baud rate at the same time, use the Convert To Ascii (Cmd 124) command. See Appendix A for step-by-step instructions for switching protocols with Zaber Console.

This setting is stored in non-volatile memory and will persist after power-down or reset.


Convert To Ascii - Cmd 124

Instruction Name Convert To Ascii
Applies to A-Series and X-Series devices
Firmware Version 6.06 and up
Command Number 124
Command Type Command
Command Data Baud Rate
Reply Data Baud Rate
Safe to retry? Yes
Returns Current Position? No
Persistence Non-Volatile
Summary Changes the RS232 baud rate and sets the communications protocol to ASCII

This command sets the baud rate in use for communications and sets the protocol to ASCII Protocol. The device will reply on the current baud rate and protocol, then change to the new settings after the communication lines have been idle for 500ms.

Valid baud rates are:

  • 9600 (default for Binary in Zaber Console)
  • 19200
  • 38400
  • 57600
  • 115200 (default for ASCII in Zaber Console)

All other serial parameters are 8 bits, 1 stop bit, No parity and no flow control.

The settings are stored in non-volatile memory and will persist after power-down or reset.

See Appendix A for step-by-step instructions for using this command with Zaber Console.


Reply-Only Reference

In general, a Zaber device will reply to an instruction using the same command number as the instruction itself. However, there are occasions (such as when the user turns a manual control knob) when the device may transmit data without first receiving a request from the controlling computer. This type of reply may be considered to be a triggered reply as opposed to a requested reply. In this case the device uses a “reply-only” command number to distinguish the reply from those requested by the controlling computer. The meanings of these replies and their corresponding data are given below.


Move Tracking - Cmd 8

Instruction Name Move Tracking
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 8
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Indicates to the user that the device has been set to a position tracking mode and given a move instruction.
T-Series motorized devices

Move Tracking has been enabled (see Set Device Mode (Cmd 40)) and device has been given a move instruction. In this mode, the device sends this reply every 0.25 seconds updating the current absolute position (in microsteps) during any move.

A-Series and X-Series motorized devices

Move Tracking has been enabled (see Set Move Tracking Mode (Cmd 115)) and device has been given a move instruction. In this mode, the device sends this reply at a regular interval updating the current absolute position (in microsteps) during any move. The default interval is 250ms and can be configured with Set Move Tracking Period (Cmd 117).


Limit Active - Cmd 9

Instruction Name Limit Active
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 9
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary Indicates to the user that the device has reached one of the limits of travel.

This response from a device indicates that a “move at constant speed” command has finished. Generally this is because the device reached one of the limits of travel (either the minimum position or maximum position), but it also occurs if the device is ordered to move at constant speed zero.


Manual Move Tracking - Cmd 10

Instruction Name Manual Move Tracking
Applies to All motorized devices
Firmware Version 5.00 and up
Command Number 10
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary A reply that is sent when the manual control knob is turned.
T-Series motorized devices

Manual Move Tracking has been enabled (see Set Device Mode (Cmd 40)) and the device has been moved manually (the knob is turned). In this mode, the device sends this reply every 0.25 seconds updating the current absolute position (in microsteps) during any move.

A-Series and X-Series motorized devices

Manual Move Tracking has been enabled (see Set Manual Move Tracking Disabled Mode (Cmd 116)) and the device has been moved manually (the knob is turned) in velocity mode. In this mode, the device sends this reply at a regular interval updating the current absolute position (in microsteps) during any move. The default interval is 250ms and can be configured with Set Move Tracking Period (Cmd 117).


Manual Move - Cmd 11

Instruction Name Manual Move
Applies to A-Series and X-Series motorized devices
Firmware Version 6.xx
Command Number 11
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary A knob manual move in Displacement mode has completed.

Manual Move Tracking has been enabled (see Set Manual Move Tracking Disabled Mode (Cmd 116)) and the device has been moved manually (the knob is turned) in displacement mode.

For firmware 6.13 and below, Set Manual Move Tracking Disabled Mode is ignored and this message is always sent.


Slip Tracking - Cmd 12

Instruction Name Slip Tracking
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.xx
Command Number 12
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary A reply that is sent when the device is slipping.

If slip tracking is enabled in the selected Closed Loop Mode (Cmd 118) and the device begins slipping, a reply will be sent. The device sends this reply at regular intervals until device is no longer slipping. Use Set Slip Tracking Period (Cmd 119) to configure the period that this reply is sent with or to disable the replies.


Unexpected Position - Cmd 13

Instruction Name Unexpected Position
Applies to A-Series and X-Series motorized closed-loop devices
Firmware Version 6.xx
Command Number 13
Command Type Reply
Command Data n/a
Reply Data Position
Safe to retry? Yes
Returns Current Position? Yes
Persistence n/a
Summary A reply that is sent when the device stops at a position different from the requested location.

This message is received in one of the following scenarios:

  • The device has stalled and stopped (Closed-loop mode 2-3)
  • The stationary device is being forced out of position (Closed-loop mode 1-4)
  • The stationary device is forced out of position and has recovered to its original location (Closed-loop mode 5)

This command indicates that no further closed-loop action (stop/resume/restore) will be taken. It is sent only when the device is at rest (Return Status = 0). See Set Closed-Loop Mode (Cmd 118) for more details.


Error - Cmd 255

Instruction Name Error
Applies to All Zaber devices
Firmware Version 5.00 and up
Command Number 255
Command Type Reply
Command Data n/a
Reply Data Error Code
Safe to retry? Yes
Returns Current Position? No
Persistence n/a
Summary Indicates to the user that an error has occurred.

This reply indicates that an error has occurred. The error code returned in the data indicates the type of error. The device may send an error code as a reply to an invalid instruction, or it may autonomously send an error code as a triggered reply (i.e. not in response to an instruction). The error code is typically the command number of the instruction that caused the error, but not always.

Error Codes
Code Name Description
1 Cannot Home Home - Device has traveled a long distance without triggering the home sensor. Device may be stalling or slipping.
2 Device Number Invalid Renumbering data out of range.
5 Address Invalid Read Register - Register address invalid.
14 Voltage Low Power supply voltage too low.
15 Voltage High Power supply voltage too high.
18 Stored Position Invalid The position stored in the requested register is no longer valid. This is probably because the maximum range was reduced.
20 Absolute Position Invalid Move Absolute - Target position out of range.
21 Relative Position Invalid Move Relative - Target position out of range.
22 Velocity Invalid Constant velocity move. Velocity out of range.
25 Axis Invalid Set Active Axis - Data out of range. Must be 1, 2, or 3.
26 Axis Device Number Invalid Set Axis Device Number - Data out of range. Must be between 0 and 254 inclusive.
27 Inversion Invalid Set Axis Inversion - Data out of range. Must be 0, 1, or -1.
28 Velocity Profile Invalid Set Axis Velocity Profile - Data out of range. Must be 0, 1, 2, or 3.
29 Velocity Scale Invalid Set Axis Velocity Scale - Data out of range. Must be between 0 and 65535.
30 Load Event Invalid Load Event-Triggered Instruction - Data out of range. See command #30 for valid range.
31 Return Event Invalid Return Event-Triggered Instruction - Data out of range. See command #31 and #30 for valid range.
33 Joystick Calibration Mode Invalid Must be 0, 1, or 2.
36 Peripheral ID Invalid Peripheral ID is invalid or not supported.
37 Resolution Invalid Microstep resolution not supported.
38 Run Current Invalid Run current out of range.
39 Hold Current Invalid Hold current out of range.
40 Mode Invalid Set Device Mode - one or more of the mode bits is invalid.
41 Home Speed Invalid Home speed out of range. The range of home speed is determined by the resolution.
42 Speed Invalid Target speed out of range. The range of target speed is determined by the resolution.
43 Acceleration Invalid Target acceleration out of range.
44 Maximum Position Invalid Maximum position out of range.
45 Current Position Invalid Current position out of range.
46 Maximum Relative Move Invalid Max relative move out of range. Must be between 0 and 16,777,215.
47 Offset Invalid Home offset out of range.
48 Alias Invalid Alias out of range.
49 Lock State Invalid Lock state must be 1 (locked) or 0 (unlocked).
53 Setting Invalid Return Setting - data entered is not a valid setting command number. Valid data are the command numbers of any "Set..." or "Return..." instructions.
64 Command Invalid Command number not valid in this firmware version.
65 Park State Invalid Set Park State - State must be 0 or 1, or device cannot park because it is in motion.
67 Temperature High High temperature is detected inside device. Device may be overheating.
69 Digital Input Pin Invalid The requested digital input pin does not exist.
71 Digital Output Pin Invalid The requested digital output pin does not exist.
74 Digital Output Mask Invalid Write All Digital Outputs - A digital output pin which does not exist was set to 1.
76 Analog Input Pin Invalid The requested analog input pin does not exist.
78 Move Index Number Invalid Move Index - Target index invalid. See command #78 for valid range.
79 Index Distance Invalid Distance invalid. See command #79 for valid range.
80 Cycle Distance Invalid Valid range is 0 - 2147483647.
81 Filter Holder ID Invalid Filter Holder ID must be 25 or 32.
87 Absolute Force Invalid Force Absolute - Force data out of range.
101 Auto Reply Disabled Mode Invalid Mode must be 0 or 1.
102 Message ID Mode Invalid Mode must be 0 or 1.
103 Home Status Invalid Status must be 0 or 1.
104 Home Sensor Type Invalid Type must be 0 or 1.
105 Auto-Home Disabled Mode Invalid Mode must be 0 or 1.
106 Minimum Position Invalid Minimum position out of range.
107 Knob Disabled Mode Invalid Mode must be 0 or 1.
108 Knob Direction Invalid Direction must be 0 or 1.
109 Knob Movement Mode Invalid Mode must be 0 or 1.
111 Knob Velocity Scale Invalid Maximum knob speed out of range. The range of valid speed is determined by the resolution.
112 Knob Velocity Profile Invalid Profile must be 1 (Linear), 2 (Quadratic), or 3 (Cubic).
113 Acceleration Only Invalid Acceleration out of range.
114 Deceleration Only Invalid Deceleration out of range.
115 Move Tracking Mode Invalid Mode must be 0 or 1.
116 Manual Move Tracking Disabled Mode Invalid Mode must be 0 or 1.
117 Move Tracking Period Invalid Valid range is 10 - 65535.
118 Closed-Loop Mode Invalid Valid modes are 0-6.
119 Slip Tracking Period Invalid Valid range is 0(Off), 10 - 65535.
120 Stall Timeout Invalid Valid range is 0 - 65535.
121 Device Direction Invalid Direction must be 0 or 1.
122 Baud Rate Invalid Set Baud Rate - Value not supported.
123 Protocol Invalid Set Protocol - Value not supported.
124 Baud Rate or Protocol Invalid Set Baud Rate and ASCII Protocol - Value not supported.
255 Busy Another command is executing and cannot be pre-empted. Either stop the previous command or wait until it finishes before trying again.
701 Register Address Invalid Write Register - Register address invalid.
702 Register Value Invalid Write Register - Value out of range.
1600 Save Position Invalid Save Current Position register out of range (must be 0-15).
1601 Save Position Not Homed Save Current Position is not allowed unless the device has been homed.
1700 Return Position Invalid Return Stored Position register out of range (must be 0-15).
1800 Move Position Invalid Move to Stored Position register out of range (must be 0-15).
1801 Move Position Not Homed Move to Stored Position is not allowed unless the device has been homed.
2146 Relative Position Limited Move Relative (command 20) exceeded maximum relative move range. Either move a shorter distance, or change the maximum relative move (command 46).
3600 Settings Locked Must clear Lock State (command 49) first. See the Set Lock State command for details.
4001 Bit 1 Invalid Set Device Mode - bit 1 is reserved in this device and must be 0.
4002 Bit 2 Invalid Set Device Mode - bit 2 is reserved in this device and must be 0.
4008 Disable Auto Home Invalid Set Device Mode - this is a linear actuator; Disable Auto Home is used for rotary actuators only.
4010 Bit 10 Invalid Set Device Mode - bit 10 is reserved in this device and must be 0.
4011 Bit 11 Invalid Set Device Mode - bit 11 is reserved in this device and must be 0.
4012 Home Switch Invalid Set Device Mode - this device has integrated home sensor with preset polarity; mode bit 12 cannot be changed by the user.
4013 Bit 13 Invalid Set Device Mode - bit 13 is reserved in this device and must be 0.
4014 Bit 14 Invalid Set Device Mode - bit 14 is reserved in this device and must be 0.
4015 Bit 15 Invalid Set Device Mode - bit 15 is reserved in this device and must be 0.
6501 Device Parked Device is currently parked. Use Set Park State or Home to unpark device before requesting a move.