Manuals/Firmware History and Migration

From ZaberWiki
Jump to navigation Jump to search
Zaber Firmware History and Migration


Zaber's firmware has evolved over time as improvements have been made and new products have been developed requiring new firmware features. As a result multiple versions of firmware currently exist in the field. This document is intended to illustrate the differences between the versions, and to help a user to migrate to the latest version if desired.

This page describes the major differences between 2.xx, 4.xx, 5.xx and 6.xx firmware.

For differences between 6.xx and 7.xx firmware, see Firmware 6 to 7 Changes.


Firmware FAQ

How do I tell what firmware version I have?

The easiest way is to connect to the device using Zaber Console. The firmware version will be displayed.

Alternately, read the version setting if using the ASCII protocol or use Command 51 if using the Binary protocol.

What firmware version ships with new products?

Unless prior arrangement has been made with a customer, Zaber usually ships the latest stable version of firmware shown in the table above.

Is new firmware backward compatible?

Generally, yes. Devices with different versions of firmware may be daisy-chained together and they will all communicate properly. They all work on the same 6-byte instruction protocol detailed in any of the user’s manuals. However, different versions could have slightly different command sets, or a different interpretation of the same command. The differences are illustrated in this document, in the section on firmware migration.

I have an old device and it works fine. Should I upgrade?

If you have an older device and it works for you, there is no need to upgrade to newer firmware. There are many devices in the field working reliably with older firmware. Zaber recommends not altering any system that is currently working satisfactorily.

We are an OEM using your devices. Should we upgrade?

OEMs are encouraged to try out the latest version. Zaber has no plans to update or improve versions 2.xx, 4.xx, 5.xx, or 6.xx. Therefore it is advantageous for OEMs to start with, or switch to version 7.xx where possible.

Zaber recognizes that OEM customers may have invested significant effort in designing their systems around older firmware. While Zaber recommends upgrading to the latest version, devices will still be shipped with older firmware, where possible, upon request.

How do I order a specific version of firmware?

To order a product with a specific firmware version, specify the version on your PO. You are encouraged to contact us about firmware availability and compatibility.

How do I upgrade or downgrade firmware?

For firmware versions 6.17 or lower, contact us to return the device to Zaber. For firmware versions 6.18 or greater, you can use the Zaber Console Firmware Updater to change versions remotely. Note that major firmware versions (i.e. 5.xx, 6.xx, 7.xx) represent hardware changes in addition to firmware changes, so you can not upgrade/downgrade between major versions.

Where can I find the latest version of the user’s manual?

Links to all user’s manuals can be found on the Support Page.

Firmware Changes from 5.xx to 6.xx

NOTE: Firmware 5.xx is used on T-Series devices, while 6.xx is intended for A-Series and X-Series devices. Firmware 6.xx is not a replacement of firmware 5.xx. "Changes" presented here merely show a comparison between the two firmware version.

Command Changes from 5.xx to 6.xx

The table below shows commands that are common to Firmware 5 and 6 but behave differently.

Cmd Name FW6 Status Notes
All speed and acceleration commands Changed Speed and acceleration values in Firmware 5 and Firmware 6 are not equivalent. The following conversion applies:
  • FW6 Speed = 15.36 x FW5 Speed
  • FW6 Accel = 1.8432 x FW5 Accel

Firmware 5 speed and acceleration commands include Move at Constant Speed, Set Home Speed, Set Target Speed, Set Acceleration and Set Axis Velocity Scale

35 Read Or Write Memory Obsolete This command is removed in Firmware 6. Please contact technical support for alternatives if such feature is required for your application.
36 Restore Settings Changed

This command is identical for all devices except controllers.

Issuing Restore Settings with Data 0 on a Firmware 6 controller (A-Series or X-Series) gives a different result from that of Firmware 5 controllers (T-MCA):

Firmware 5 always requires Peripheral Id with this command

  • Restore Settings(Data Id) restores to default settings for given Peripheral Id
  • Restore Settings(Data 0) restores to safe-mode settings

Firmware 6 stores Peripheral Id in non-volatile memory

  • Restore Settings(Data Id) assigns Peripheral Id to controller, and restores to default settings for given Peripheral Id. Equivalent to Set Peripheral Id(Cmd 66)(Data Id)
  • Restore Settings(Data 0) restores to default settings for assigned Peripheral Id
  • Set Peripheral Id(Cmd 66)(Data 0) loads safe-mode settings and erases assigned Peripheral Id
37 Set Microstep Resolution Changed
  • Firmware 6 supports many more microstep resolutions.
  • When changing resolution, firmware 5 scales all affected settings according to current values.
  • When changing resolution, firmware 6 scales Current Position according to current values, but scales all other affected values according to default settings.
38 Set Running Current Changed
  • Some Firmware 5 devices set the current inversely proportional to the input setting.
  • Firmware 6 devices set the current directly proportional to the input setting.
  • See specific product manuals for specific information.
39 Set Hold Current Changed
  • Some Firmware 5 devices set the current inversely proportional to the input setting.
  • Firmware 6 devices set the current directly proportional to the input setting.
  • See specific product manuals for specific information.
40 Set Device Mode Changed
  • Firmware 6 provides new settings commands equivalent to each available mode bits. Set Device Mode command can be replaced by the use of "Set ..." commands and Return Settings command.
  • See section below for description on individual mode bit changes.
45 Set Current Position Changed
  • Firmware 5 associates each position to a fixed stepper motor phase. Setting position with Set Current Position will change the phase.
  • Firmware 6 does not associate position to phase. Set Current Position updates the position counter but maintains the same phase.
46 Set Max Relative Move Obsolete This feature is removed in Firmware 6.
47 Set Home Offset Changed
  • Firmware 5 adjusts the maximum position automatically, but minimum position is fixed at 0. Device cannot move in the negative direction from home and thus has a shorter travel.
  • Firmware 6 adjusts both the maximum and minimum position. After device is homed, it can move towards the negative direction. Full travel of the device can be reached.
49 Set Lock State Obsolete This feature is removed in Firmware 6.

Mode Bit Changes from 5.xx to 6.xx

Firmware 6 provides new settings commands equivalent to each available mode bits.

Set Device Mode command can be replaced by the use of "Set ..." commands and Return Settings command.

Bit (Decimal's) Version 5.xx Version 6.xx Equivalent Version 6.xx command
0 (1s) Disable Auto-reply (same) Set Auto-Reply Disabled Mode (Cmd 101)
1 (2s) Enable Anti-backlash Routine Obsolete. This feature is removed from Firmware 6.
2 (4s) Enable Anti-sticktion Routine Obsolete. This feature is removed from Firmware 6.
3 (8s) Disable Potentiometer Same, but renamed to Disable Knob Set Knob Disabled Mode (Cmd 107)
4 (16s) Enable Move Tracking (same) Set Move Tracking Mode (Cmd 115)
5 (32s) Disable Manual Move Tracking (same) Set Manual Move Tracking Disabled Mode (Cmd 116)
6 (64s) Enable Message Ids (same) Set Message Id Mode (Cmd 102)
7 (128s) Home Status (same) Set Home Status (Cmd 103)
8 (256s) Disable Auto-Home (same) Set Auto-Home Disabled Mode (Cmd 105)
9 (512s) Reverse Potentiometer Same, but renamed to Reverse Knob Set Knob Direction (Cmd 108)
10 (1,024s) Reserved Reserved
11 (2,048s) Enable Circular Phase Microstepping Setting removed. Firmware 6 only supports circular phase microstepping.
12 (4,096s) Set Home Switch Logic Same, but renamed to Set Home Sensor Type Set Home Sensor Type (Cmd 104)
13 (8,192s) Reserved Reserved
14 (16,384s) Disable Power LED This mode bit is removed in Firmware 6. LEDs can be disabled via ASCII setting system.led.enable.
15 (32,768s) Disable Serial LED This mode bit is removed in Firmware 6. LEDs can be disabled via ASCII setting system.led.enable.

Other Changes from 5.xx to 6.xx

For details of the following changes, refer to the user manuals. Version 6.xx offers these additional features:

  • Capability of producing higher maximum speed and lower minimum speed.
  • Support for closed-loop encoder-embedded products
  • New depressible knob with detents allow multiple modes of manual control including move by velocity, move by displacement and stopping.
  • Acceleration and Deceleration values can be configured separately
  • Two new LEDs are added to provide better visual feedback:
    • Existing: Green - Power
    • Existing: Yellow - Comm
    • New: Red - Error
    • New: Blue - Slip/Stall

Firmware Changes from 2.xx to 5.xx

Command Changes from 2.xx to 5.xx

This section describes the changes in command set from version 2.xx to 5.xx. Only the commands that differ between the two versions are described. Refer to version 2.xx and 5.xx manuals for complete details.

Cmd# Command Version 2.93 Version 5.xx
2 Renumber This instruction can only be issued to all devices (device 0). This instruction can also be issued to a single device, in which case that device will change its number to the value indicated in the instruction data.
16 Store Current Position N/A (new since version 5.04) Version 5.04 and up: Saves the actuator’s current position in one of its 16 registers.
17 Return Stored Position N/A (new since version 5.04) Version 5.04 and up: Returns the position stored in one of the actuator’s 16 registers.
18 Move to Stored Position N/A (new since version 5.04) Version 5.04 and up: The actuator moves to the position stored in one of the 16 registers.
22 Move at Constant Speed Speed is a nonlinear, non-continuous function of instruction data. Speed is linearly proportional to the instruction data and a much wider range of speeds is possible.
37 Set Microstep Resolution N/A (Microstepping resolution is fixed at 64 microsteps per step.) Allows control of the resolution from full stepping down to 128 microsteps per step. The default is 64 on most devices.
38 Set Running Current N/A (Full current is always applied during moves) Allows precise control of running current to reduce motor heating and vibration if high torque is not required.
39 Set Hold Current N/A (the hold current can only be set to discrete values of 0, 50%, 75%, or 100% through mode bits) Allows precise control of hold current to reduce motor heating. The default is device-dependent.
40 Set Mode Allows control of several settings. Several addition settings, including settings to disable LEDs, toggle limit switch polarity, etc.
41 Set Start Step Time Sets the starting step period N/A (instruction no longer supported)
42 Set Target Step Time / Velocity Set the target step period. This command allows a relatively coarse, non-linear control over the target speed during move commands. Sets the target velocity. The velocity is deterministic and linearly proportional to instruction data.
43 Set Acceleration Allows very coarse adjustment of acceleration. Velocity profile is non-linear with time. Allows precise control of acceleration. Velocity profile is linear with time.
47 Set Home Offset N/A (A home instruction would simply cause the device to retract to the home limit switch and call that position 0.) Allows a user specified home offset. After homing, the device will move forward the specified amount before setting the 0 position reference.
54 Return Status N/A The device will respond, indicating its current state (moving, homing, idle, etc.)
55 Echo Data N/A (new since version 5.04) Reply is an echo of the command.

Mode Bit Changes from 2.xx to 5.xx

The following table outlines the changes in the mode bits (command 40) from firmware version 2.xx to 5.xx. All mode bits are listed, regardless of whether they changed or not. Refer to the respective user’s manuals for more details.

Bit (Decimal's) Version 2.93 Version 5.xx
0 (1s) Disable Auto-reply (same)
1 (2s) Enable Anti-backlash Routine (similar)
2 (4s) Enable Anti-sticktion Routine (similar)
3 (8s) Disable Potentiometer (same)
4 (16s) Enable Constant Speed Position Tracking (similar)
5 (32s) Disable Manual Position Tracking (same)
6 (64s) Enable Logical Channel Mode (same)
7 (128s) Home Status (same)
8 (256s) Hold Current bit 0 Disable Auto-Home (Hold current is adjusted via a separate command 39)
9 (512s) Hold Current bit 1 Reserved (Hold current is adjusted via a separate command 39)
10 (1,024s) N/A Reserved
11 (2,048s) N/A Enable Circular Phase Microstepping
12 (4,096s) N/A Set Home Switch Logic
13 (8,192s) N/A Reserved
14 (16,384s) N/A Disable Power LED
15 (32,768s) N/A Disable Serial LED

Other Changes from 2.xx to 5.xx

For details of the following changes, refer to the two user manuals. Version 5.xx offers these additional features:

  • New motion control algorithm allowing true linear acceleration and deceleration ramps and pre-emptively changing direction.
  • New manual (potentiometer) control routine allowing more precise manual control of speed.
  • New LED blinking patterns to indicate what the devices are doing more clearly.
  • New pre-emptive command set allowing the device to respond to commands even during a move, without interrupting the move.
  • New error codes indicating a greater range of possible errors.

Firmware Changes from 4.xx to 5.xx

Command changes from 4.xx to 5.xx

This section describes the changes in command set from version 4.xx to 5.xx. Only the commands that changed between the two versions are described. Refer to version 4.xx and 5.xx manuals for complete details.

Cmd# Command Version 4.xx Version 5.xx
16 Store Current Position N/A (new since version 5.04) Version 5.04 and up: Saves the actuator’s current position in one of its 16 registers.
17 Return Stored Position N/A (new since version 5.04) Version 5.04 and up: Returns the position stored in one of the actuator’s 16 registers.
18 Move to Stored Position N/A (new since version 5.04) Version 5.04 and up: The actuator moves to the position stored in one of the 16 registers.
22 Move at Constant Speed The instruction data indicates the time (in increments of 0.1 us) to move 1 microstep. Speed is linearly proportional to the instruction data, in increments of 9.375 microsteps / second.
34 Set Home Scan Distance This command is used in very rare cases for a combined linear and rotary (helical) homing. N/A (instruction no longer supported)
36 Restore Settings Can restore settings to a single factory default. For the T-CD series stepper controllers, this command allows for restoring settings to default values appropriate for specific peripheral devices that may be connected to the T-CD.
40 Set Mode See user’s manual for details. The functionality of several mode bits has changed. See user’s manual for details.
41 Set Start Step Time Sets the starting step period N/A (instruction no longer supported)
42 Set Target Step Time / Velocity Sets the target step period. The velocity is inversely proportional to instruction data. Sets the target velocity. The velocity is deterministic and linearly proportional to instruction data.
43 Set Acceleration The acceleration routine produces a coarse acceleration profile with discrete velocity steps. The acceleration is a continuous linear function of the instruction data.
49 Set Home Target Step Time Sets the target step period during homing. N/A (instruction no longer supported)


54 Return Status Allows querying the device about its current status. See user’s manual for details. Some of the returned status codes are changed. See user’s manual for details.
55 Echo Data N/A (new since version 5.04) Reply is an echo of the command.

Mode bit changes from 4.xx to 5.xx

The following table outlines the changes in the mode bits (command 40) from firmware version 2.xx to 5.xx. All mode bits are listed, regardless of whether they changed or not. Refer to the respective user’s manuals for more details.

Bit (Decimal's) Version 4.xx Version 5.xx
0 (1s) Disable Auto-reply (same)
1 (2s) Enable Anti-backlash Routine (similar)
2 (4s) Enable Anti-sticktion Routine (similar)
3 (8s) Disable Potentiometer (same)
4 (16s) Enable Constant Speed Position Tracking (similar)
5 (32s) Disable Manual Position Tracking (same)
6 (64s) Enable Logical Channel Mode (same)
7 (128s) Home Status (same)
8 (256s) Disable Auto-Home (same)
9 (512s) Variable / Constant Acceleration Reserved (only constant acceleration is available in version 5.xx)
10 (1,024s) Enable Fast Decay Mode Reserved (no longer applicable in version 5.xx since fast decay is automatically controlled)
11 (2,048s) Enable Circular Phase Microstepping (same)
12 (4,096s) Set Home Switch Logic (same)
13 (8,192s) N/A Reserved
14 (16,384s) Disable Power LED (same)
15 (32,768s) Disable Serial LED (same)

Other changes from 4.xx to 5.xx

For details of the following changes, refer to the two user manuals. Version 5.xx offers these additional features:

  • New motion control algorithm allowing true linear acceleration and deceleration ramps and pre-emptively changing direction.
  • New manual (potentiometer) control routine allowing more precise manual control of speed.
  • New LED blinking patterns to indicate what the devices are doing more clearly.
  • New pre-emptive command set allowing the device to respond to commands even during a move, without interrupting the move.
  • New error codes indicating a greater range of possible errors.
  • Version 4.xx will return two home replies if a home offset is set (one reply at the physical home and one reply once the final home is reached). Version 5.xx generates only one reply.
  • In version 4.xx, when the device is moving and a new command is issued that requires stopping first (ex move in opposite direction), a stop reply will be sent, then the new command will be executed and replied to as well... resulting in a double reply. Version 5.xx generates only one reply.