Zaber Console is an application that lets you send commands to your Zaber devices, adjust their settings, and create simple scripts of commands.
- 1 Downloads and Installation
- 2 Using Zaber Console
- 2.1 Managing Communication Ports
- 2.2 Device List
- 2.3 Tab Dock
- 2.3.1 Tab Management
- 2.3.2 Simple Tab
- 2.3.3 Commands Tab
- 2.3.4 Settings Tab
- 2.3.5 Scripts Tab
- 2.3.6 Oscilloscope Tab
- 2.3.7 Servo Tuning Tab
- 2.3.8 Terminal Tab
- 2.3.9 Options Tab
- 2.3.10 Additional Tabs
- 3 Development Tools
Downloads and Installation
|Download Type||Link||Supported Operating Systems|
|Installer||InstallZaberConsole.exe||Windows XP, Vista, 7, 8, 10|
|Source Code||ZaberCSDemo.zip||Windows 7 or 10 with Visual Studio 2017|
- Microsoft Windows (any Windows version that is compatible with Microsoft.NET Framework 4.0 or higher)
- Microsoft .NET Framework (Microsoft Common Language Runtime version 4.0 or higher)
- For other platforms, see section on Zaber .NET Libraries.
- Available at the Release notes page
Using Zaber Console
Managing Communication Ports
At the top of the Zaber Console window, there are controls for managing the connection with the COM port that your Zaber devices are connected to. A COM port is a specific serial connection on a computer, such as COM1 or COM8. USB connections will create a virtual COM port that's available to the computer while the device is connected.
Select the COM Port
To start controlling your device: From the serial port drop-down list, select the COM port that the device is connected to. If you are not sure which to select, you can try each one in order until the expected devices show up in the device list. If you don't see any COM ports, first check whether you've installed any required USB Serial Port Drivers. If they're installed, and you still don't see a port, contact Zaber's technical support.
Press Open to connect to the selected COM port. When the port is open, the communication protocol (ASCII or Binary) and baud rate of the connection will be displayed next to the COM port. If Zaber Console is set to query the devices in the Options tab, then the device list will be populated.
If you've connected to the correct COM port, but some or all of your expected devices are missing from the [#device list|Device list], press the Find Devices button. This tool will do an extensive search of all possible communication protocols, baud rates, and device numbers to identify any devices that may be connected. Once they're detected, they will all be set to a shared communication protocol and baud rate. You can select the preferred communication and baud rate during this process.
Indicators in the top right of Zaber Console show whether there is currently any communication happening on the port. The Tx indicator will flash whenever the computer sends communication to a device. The Rx light will flash whenever the computer receives response information from a device. These indicators can be used to troubleshoot that communication is happening as expected.
Press Close to end your connection with the COM port. If you close Zaber Console, the COM port will be automatically closed.
The Device List is only visible when the port is open, and it shows a list of all the detected devices and axes. Any device in the list can be selected by left-clicking on it. Many of the commands and settings available in the different tabs will apply to the selected device. The first device in the list is always 'All Devices', which you can select if you'd like to send commands to or read information from all connected devices.
In order to be able to control an individual device and axis in a daisy-chain that contains multiple devices, each device needs to have a unique address. This is known as the device number. You can use the renumber command to change the device number of any device. When you open the COM port, if two or more devices have the same device number, Zaber Console will ask you whether you'd like to renumber them.
This field shows the name of the device that corresponds to the device number. If a controller is connected, the peripheral that's specified by the peripheralid setting will also be indicated. If the peripheral ID has not been set, it will display as 'safe mode'.
After any command where position information is returned from the device, such as the 'get pos' command, the Position field will be updated to show this information.
This field is to select the unit type for setting and reading distances, positions, speeds, and accelerations for any commands and settings that can use the selected units.
The Flags field is only displayed when using the ASCII commands protocol. It displays any warning flags that the device returned on it's most recent response. In Zaber Console, hover over the warning flag to see a more detailed description of the warning.
To be able to quickly control the movement of any connected device, there is a list of Quick Control buttons in each row. The functions of the buttons are as follows:
The lower section of Zaber Console is the Tab Dock. This dock contains a number of tabs that are used for interacting with Zaber's devices. You can select the tab you'd like to use by left-clicking on it. The functions and features of each tab are covered below, but first the controls for managing the tabs will be explained.
The tabs can be rearranged by holding down the left mouse button on the tab's title and then dragging it to a new position and letting go; you can use the same method to undock the tabs, making them into floating windows. These window layouts will be saved when you exit Zaber Console and restored the next time you start it.
The tabs and floating windows have controls at the upper right corner of the window or tab header for docking, undocking, or closing them:
Docked Tab Controls
Undocked Tab Controls
On the Tab Dock, you can open a new tab by clicking the plus symbol, , and choosing one from the list that appears - the list shows you all available tabs that are not currently added to the tab dock. You can also open and close tabs by going to the Options tab and clicking on the "Plugins and Tabs" button. At the far right of the tab header area the button shows a list of the tabs that are currently visible - clicking on one will jump to that tab. Note the Options and Help tabs cannot be closed or made into floating windows.
When the Simple tab is selected, some shortcut keys on the keyboard are also active:
There are three options for viewing the list of commands: All, Basic, and Favourites. The Basic list shows the commands that are typically the most frequently used. The All list shows every commands that is available on the device. In both of these lists, you can click on the icon beside the command to add it to the Favourites list. Favourited commands will have a icon beside them. The Favourites list is saved between instances of Zaber Console.
Binary Protocol: When connected with the Binary protocol, each command will have one field to enter a value. The Send button on the right will send the command to the selected device.
ASCII Protocol: When connected with the ASCII protocol, some commands will have multiple parameters. These commands are grouped, and you can press the icon to expand the list and show all parameters. Press the icon to contract the list. A text entry field at the top allows you to type a desired command. As you type, a list of the matching commands will be displayed. Press send to run this command.
The right hand side of the Command tab displays detailed information for the currently selected command, when available. This help content is displayed live from the protocol manuals on Zaber's website (ASCII manual and Binary manual). If you do not always have network access, or prefer not to use the online version, you can use a locally stored copy by unchecking "Use Online Resources' in the Options tab.
If you have set the Units field for a device in the device list, any commands that can use that unit will also have the units set. You can change it from the Commands tab as well though.
There are three options for viewing the list of settings: All, Basic, and Favourites. The Basic list shows the settings that are typically the most frequently used. The All list shows every setting that is available on the device. In both of these lists, you can click on the icon beside the setting to add it to the Favourites list. Favourited settings will have a icon beside them. The Favourites list is saved between instances of Zaber Console.
The right hand side of the Settings tab displays detailed information for the currently selected setting, when available. This help content is displayed live from the protocol manuals on Zaber's website (ASCII manual and Binary manual). If you do not always have network access, or prefer not to use the online version, you can use a locally stored copy by unchecking "Use Online Resources' in the Options tab.
If you have set the Units field for a device in the device list, any settings that can use that unit will also have the units set. You can change it from the Settings tab as well though.
Press 'Create new script' to open a blank script, or to open an existing script select it and either double-click on it or press 'Edit script'. Several examples are available as a starting point; check 'Show examples' to choose examples to load. Press the folder icon to change the directory that the scripts are stored in, and use the check box to control whether files in the subfolders of that directory are also shown.
Follow these links for more details on scripting:
A full description of the Zaber-specific functions can be found by selecting 'Help -> Zaber Library Help File' from the Script Editor.
Currently the Oscilloscope tab works with a single axis using the Zaber ASCII protocol, and some features are limited to devices with firmware version 7.01 or higher.
Configuring the Capture
On the left of the Oscilloscope tab are a series of controls to define what data will be captured. Each of these options are described below. Once these are set, press the Start Capture button to begin collecting data, and either wait for data to finish being collected or press Stop Capture.
Select Auto mode to have Zaber Console query the device for values at a specified rate and display the values in a graph as it's gathered. Data will continue to be sampled until the Stop Capture button is pressed.
Select Manual mode to have the device store setting values internally during the capture period, and then send the data to Zaber Console to graph at the end of the capture. The benefit of this mode is that data can be captured at a higher frequency, and that the time between data captures is more consistent. A drawback of this mode is that a limited amount of data can be captured before the available memory is full; data cannot continue to be captured indefinitely.
Manual mode uses the scope command, which is available for devices using the Zaber ASCII protocol with firmware 7.01 or higher; the Manual option is disabled for non-compatible devices.
Click on the green plus sign to add a new setting to the capture list. Click on the red minus sign to remove a setting.
A drop-down control shows a list of settings you can select from to include in the next capture. By default, a limited list featuring the settings that typically change during motion or relate to motion are displayed, along with short descriptions. To choose a setting that is not on the list, select "All" from the "Settings" menu described below. After selecting a setting, choose the units you'd like to display the data in and the colour the data should be graphed in.
The Delay field specifies a time to wait after pressing the "Start Capture" button before data capture starts.
The Sample rate is the frequency with which all of the channels will be sampled. If using manual mode, the sample rate has a maximum of 10 kHz. If using auto mode, the maximum frequency will depend on the number of channels being sampled. If the frequency requested is faster than the device can respond, the device will send data as frequently as it's able to.
The Movement control allows you to select whether you want the step size to indicate a relative distance from the starting position (Move relative) or an absolute position with reference to the home location (Move absolute).
The Step size field allows you to specify the position or distance of the movement, with an option to select the units.
Checking Return to start? will cause the device to return to it's initial position once the capture is completed or stopped.
If the Delay field mentioned above is set to a nonzero value, the delay takes place between the signal generator start and data capture start. This is useful for doing a high-resolution manual capture of a small part of a move.
The Time span field is a limit to the size of the captured data, in seconds, when using Auto trigger mode. After this specified time has elapsed, new data will continue to be collected while old data is discarded. The graph will display this visually; the size of the Time axis will stop growing once it reaches the Time span value, and instead both the maximum and minimum times shown will both start increasing at the same rate. New data will be shown on the right side of the graph while old data will disappear from the left side.
The Settings option indicates whether the Channel control displays a limited "Basic" set of settings that are used most frequently, or whether "All" available settings are shown in the Channel control.
Viewing the Graph
When a capture is started, a new tab to show the graph representing that capture is created. The graph's name increments as more capture are started, but it can be edited by right clicking on it and selecting "Rename plot".
The graph will display lines for each series of data. A legend is shown below the graph indicating the setting, colour, and units for each channel. The units can be adjusted at any time. Click on the eye symbol next to a setting to toggle the visibility of that channel on the plot.
The graph will automatically scale to show all of the data. Use the scroll wheel when the cursor is over the graph to zoom in and out, and the right mouse button to pan. Hold the left mouse button down when over a line to see the data value for the position in time the cursor is at. To reset the scale to show the entirety of the data, press "Reset zoom". Press clear to erase all the data for that capture.
Exporting the Data
All data captured can be easily exported in a comma separated variable (CSV) format. Press "Export to CSV" to export the data for the currently shown capture, or "Export all to CSV" to save each capture to a separate CSV file. After choosing one, select the folder you'd like to save the data.
Servo Tuning Tab
While the default parameters used in the control loop (which the device uses when it’s powered on for the first time) are optimized for good performance with no load added to the device, tuning the parameters of the control loop allows you to adjust the smoothness, accuracy, and responsiveness of the movement.
The options for how the tuning parameters can be generated are described below, followed by how the tuning presets can be managed, including reading, saving, and applying them.
Use caution when adjusting parameters; it’s possible to enter values that will cause the device to become unstable and move erratically. If this occurs, press the ‘Disable driver’ button to stop current to the motor and stop driven motion. The parameters can then be adjusted to be more stable, or be returned to default values. Press ‘Enable Driver’ to resume driven motion.
Generating Tuning Presets
A tuning preset includes a number of raw parameters that the control loop uses. Setting these low-level parameters directly requires an in-depth understanding of the underlying control loop. While these parameters can be edited directly using the 'Advanced' method (described below), we recommend using one of the 'Simple' or 'PID' methods (also described below) that are simplified, more intuitive, and require fewer variables. Finally, the 'Import / Export' method is used to easily save presets, or transfer them between devices or between computers.
The Simple tuning method simplifies tuning to just require information about the load, and a preference on tuning stiffness.
The Load has two components: Stage moving mass and Load mass. The Stage moving mass is the weight of the moving carriage, and will vary from device to device. Zaber Console will automatically populate this, but the user can override it and the overridden value will be saved. The Load mass is how much weight is being added to the stage for the application.
The Stiffness control is a slider that varies from Smooth to Stiff. Stiffer tuning means that the control loop will react more quickly and forcefully to position errors. Smoother tuning means that position correction may take longer, but there will be less vibration.
While these are the only two controls that affect the control loop tuning, there is an additional control for Acceleration. In order for the control loop to be accurate, it must have enough force capability to keep up with the trajectory's acceleration. The load the device is carrying affects that maximum acceleration that the control loop can keep up with. As the user changes the input Load, the recommended maximum acceleration will be updated. Use the acceleration controls to adjust acceleration easily to ensure it is at or below the recommended value.
Many users are familiar with tuning using Proportional, Integral, and Derivative (PID) gain values. While these are not the native tuning parameters on Zaber servo devices, the PID tuning method facilitates this conversion.
To use this method, enter or read data in the four controls:
The conversion works both ways; values can be entered using PID parameters and they will be converted to the devices native parameters, but the native parameters can also be read back in terms of PID. This conversion involves some rounding, so PID values written to a device may be slightly different when read back.
The PID tuner method in Zaber Console does not currently support feedforward parameters.
For more information on the formulation of the conversion, contact Zaber's technical support.
Import / Export
This method is for saving and loading tuning parameters rather than generating a new one.
The main control shows a list of tuning parameters, each with a field for the Name, controller information, and a list of the raw parameters associated with it. To generate a new entry in this list, select a parameter set to read from using the control at the bottom of the tab, and press Read back. To apply an entry in the list to the device, select the parameter set to change using the control at the bottom of the tab and press Write. Double-click on the Name field to add a name, or right-click on an entry to delete or re-order it. This allows you to store many different tuning presets and load them to the device easily, or to read a tuning preset from one device and apply it to another.
The parameter sets can be saved to a file, in a comma-separated-variable (CSV) format, by pressing Save as. Press Open file to choose a CSV to load from. These allow you to transfer tuning presets between computers, or store them to a network location.
The Advanced tuning method allows direct editing of the raw parameters.
We strongly recommend using either the Simple or PID methods to tune the control loop. These methods should suffice for almost all applications, and are simpler (they do not require in-depth knowledge of the control loop). If you need details of any of the raw parameters though, please contact Zaber's technical support.
Reading, Storing, and Applying Tuning Presets
There are two sets of controls in the Servo Tuning Tab for managing parameters, one for managing the parameters generated using Zaber Console, and one for managing the presets already on the device.
The controls for managing parameters generated using Zaber Console are at the bottom of the tab. The first control is to select the Device parameter set to read/write, and a drop-down gives a list of either "live" or any of the presets on the device. The live parameter set is what the control loop is currently using, while each of the presets are locations on the device where a set of parameters can be stored.
Once the parameter set is selected, press Write to apply the tuning based on the currently displayed tuning method (Simple, PID, Import/Export, or Advanced) to that parameter set.
If the PID, Import/Export, or Advanced tuning methods are currently displayed, a Read back button will also be available. This button updates the values in the currently displayed tuning method based on the values of the selected parameter set. The Simple tuning method does not allow writing, as the conversion from Load / Stiffness is one-directional; these parameters can not be identified based on raw parameters.
The Write defaults button will send the parameters that the device shipped with to the selected parameter set.
The controls for managing the presets already on the device are on the right side of the tab, in the Device management box.
An indicator at the top shows the Live parameter set. If any of the saved presets on the device match the values of the live parameter set, that preset will be shown. If the live parameter set does not match any of the saved presets, NOT SAVED will be shown. The below drop-down menu allows you to select a preset, and pressing Activate will update the live parameter set to match the selected preset.
The Power-on preset indicator shows which preset will be active as the live parameter set whenever the device powers on. To change which preset this is, select the one to use from the drop-down menu and press Change.
The Disable driver button allows you to quickly disable power to the motor while still communicating with the controller. Changing tuning parameters can cause a device to behave erratically. If this occurs, press Disable driver to stop driven motion. This allows you to change the live parameters to values that will not cause erratic behaviour, such as the default values, before re-enabling the driver.
The Open oscilloscope button allows you to quickly open the [Oscilloscope tab|#Oscilloscope tab], which can be used in conjunction with the Servo Tuning tab to view and fine-tune how the tuning affects a step-response.
When connected with ASCII, a text box allows you to type in commands, and the Send button or the Enter key will send the command. You can use the up and down arrow keys to recall previously sent commands. Refer to the ASCII protocol manual for information about the available commands.
When connected with Binary, there are several controls to allow you to easily specify each field. While there's also an option to change register values directly, this should not be used unless directed by Zaber technical support. Warning: Adjusting registers can cause damage to the device. Refer to the Binary protocol manual for information about the available commands.
A message log is displays a list of all commands sent from Zaber Console and all responses received from any device. The Copy button will copy the log to your clipboard so that you can paste it into a text editor or an email. The Clear button will delete the record of commands and settings.
When Opening Port - These settings indicate whether Zaber Console should actively poll connected devices and detect what protocol and baud rate are set (i.e. "Query devices"), or whether Zaber Console should not poll, allowing the user to select the preferred port type (i.e. "Do not query"). If "Do not query" is selected, the device list will not be populated and some of the tabs will have limited functionality.
Communications - There are several options under "Communications" for how Zaber Console will handle sending and receiving messages. The default settings (shown in the screenshot to the right) should not be changed without consulting Zaber's technical support.
Switch to Binary/ASCII - This button allows you to quickly change all connected devices between Binary protocol at 9600 baud rate and ASCII protocol at 115200 baud rate.
Use Online Resources - This authorizes Zaber Console to use your network connection to fetch updated data from Zaber. This includes downloading the latest database of Zaber device properties and using online help for tabs that display help. If you are using Zaber Console on a computer that does not always have Internet access, disabling this option will avoid network errors.
Application Log - A text file is displayed that contains detailed information about program operations. If you contact Zaber customer service for help, you may be asked to email the contents of this file.
Plug-ins and Tabs - Allows you to configure which tabs are displayed, as well as locate and manage the folder where you can add your own tabs and plug-ins. More information on developing plug-ins can be found in the below.
Restore Defaults - Resets all saved Zaber Console configurations to defaults.
Update Firmware - Opens the Firmware Updater tool. You can easily update to the latest firmware version from Zaber Console for any Zaber device with firmware 6.18 or higher. To use this tool, select the device you want to upgrade, ensure that it's using the ASCII command protocol, then press Update Firmware. Detailed instructions are available:
Calibration Data - For devices that come with calibration data, Zaber Console provides a tool to back up the data to CSV spreadsheet files and restore it later. It is necessary to do this if you are upgrading the firmware on a device that has calibration data, as the firmware upgrade process will erase the data. For standalone controllers that you use with multiple peripherals, you can also use this tool to swap calibration tables for different peripherals in and out of the controller's memory. To use this tool, select the device you want to interact with, then press the "Calibration Data" button.
Import/Export Device Database - Zaber Console uses a database of information about the devices to help offer features such as units-of-measure. Zaber updates this database when new devices, commands, or settings are available. If 'Use Online Resources' is selected, Zaber Console will download the latest database when it is available. The Import/Export Device Database tool allows the user to manually download and import the latest database if they do not have Use Online Resources selected.
Save favourite commands and settings: - This control allows you to set how the Favourites list in the Commands and Settings tabs are applied from device to device. 'Together (same for all devices)' will mean that all devices share a single list of favourites. 'Per device type' means that all devices with the same model will share a set of favourited commands and settings. Finally, 'per device' saves a unique set of favourites for devices based on their serial number.
In addition to the above tabs that are most commonly used and displayed by default, there are some additional tabs available for special features. Several have their own manuals:
Joystick Tab - If you have a T-JOY or X-JOY product, this tab will help you configure the behavior of the joystick axes and buttons.
Cycle Tab - This tab allows you to cycle devices between their travel limits continuously. It's often used as a product demonstration tool.
GCode Tab - Import G-Code motion control instructions and convert them to Zaber ASCII protocol commands for your current device setup.
Sensor Logger Tab - This tab allows you to display and log input either from the analog input of a Zaber controller or from some supported third party instruments.
Zaber .NET Libraries
If you plan your own application using the Microsoft.NET platform, there are two options for libraries:
- Zaber Core Serial Library in C# - this is the recommended library for .NET. It includes easy to use and useful low level classes for interacting with Zaber Devices.
- Zaber Console Source Code - Zaber Console includes several class libraries that you can use to talk to Zaber devices or use Zaber-developed user interface components.
Developing Custom Plug-Ins and Tabs
Zaber Console has a plug-in feature that lets you add new tabs with new features. You can learn to write your own plug ins by downloading the Source Code. Some notes on plug-in development:
- Network permission settings on some systems might prevent Zaber Console from loading a plug in located on a network drive. If you have encountered any problem loading a plug in, try moving the plug in folder to a local drive.
- Zaber Console may not load plug ins built on a different .NET framework version. If a different .NET version is preferred, ensure that the targeted .NET framework is also installed.