Zaber Launcher Tutorials
Zaber Motion Library
Sample Projects
Virtual DeviceDropdown icon
About3D Viewer
AccountDropdown icon
Sign InSign Up
Zaber Motion LibraryGetting StartedHow-to Guides
API Reference
root
zaber_motion.ascii
AlertEventAllAxesAxisAxisGroupAxisIdentityAxisSettingsAxisStorageAxisTypeConnectionConversionFactorDeviceDeviceIdentityDeviceIODeviceIOInfoDeviceSettingsDeviceStorageDigitalOutputActionGetAxisSettingGetAxisSettingResultGetSettingGetSettingResultIoPortLabelIoPortTypeLockstepMeasurementSequenceMessageTypeOscilloscopeOscilloscopeCapturePropertiesOscilloscopeDataOscilloscopeDataSourceParamsetInfoPidTuningPvtPvtAxisDefinitionPvtAxisTypePvtBufferPvtCallActionPvtCancelAllOutputsScheduleActionPvtCancelOutputScheduleActionPvtCsvDataPvtIoPvtModePvtPartialCsvDataPvtPartialPointPvtPartialSequenceItemPvtPointPvtSequencePvtSequenceItemPvtSetAllAnalogOutputsActionPvtSetAllDigitalOutputsActionPvtSetAnalogOutputActionPvtSetDigitalOutputActionResponseServoTunerServoTuningParamServoTuningParamsetSetStateAxisResponseSetStateDeviceResponseSettingConstantsSimpleTuningSimpleTuningParamDefinitionStreamStreamAxisDefinitionStreamAxisTypeStreamBufferStreamIoStreamModeStreamsTransportTriggerTriggerActionTriggerConditionTriggerEnabledStateTriggerOperationTriggersTriggerStateUnknownResponseEventWarningFlagsWarnings
zaber_motion.binary
BinarySettingsCommandCodeConnectionDeviceDeviceIdentityDeviceSettingsDeviceTypeErrorCodeMessageReplyCodeReplyOnlyEventUnknownResponseEvent
zaber_motion.exceptions
MotionLibExceptionBinaryCommandFailedExceptionDataCommandFailedExceptionDataCommandTooLongExceptionDataDeviceAddressConflictExceptionDataDeviceDbFailedExceptionDataDeviceDbInnerErrorGCodeExecutionExceptionDataGCodeSyntaxExceptionDataInvalidPacketExceptionDataInvalidPvtPointInvalidResponseExceptionDataMovementFailedExceptionDataMovementInterruptedExceptionDataOperationFailedExceptionDataPvtExecutionExceptionDataPvtMovementFailedExceptionDataPvtMovementInterruptedExceptionDataSetDeviceStateExceptionDataSetPeripheralStateExceptionDataStreamExecutionExceptionDataStreamMovementFailedExceptionDataStreamMovementInterruptedExceptionData
zaber_motion.gcode
AxisDefinitionAxisMappingAxisTransformationDeviceDefinitionOfflineTranslatorTranslateMessageTranslateResultTranslatorTranslatorConfig
zaber_motion.microscopy
AutofocusAutofocusStatusCameraTriggerFilterChangerIlluminatorIlluminatorChannelMicroscopeMicroscopeConfigObjectiveChangerThirdPartyComponentsWdiAutofocusProviderWdiAutofocusProviderStatus
zaber_motion.product
ProcessProcessControllerProcessControllerModeProcessControllerSourceProcessControllerSourceSensor
zaber_motion
AxisAddressChannelAddressCyclicDirectionDeviceDbSourceDeviceDbSourceTypeDeviceDiscoveryResultDevicePortTypeFirmwareVersionLibraryLogOutputModeMeasurementNamedParameterRotationDirectionToolsUnitConversionDescriptorUnitsUnitTable
SupportBinary Protocol (Legacy)
© 2026 Zaber Technologies Inc.

API Reference v9.0.0

Deviceclass

Module: zaber_motion.binary

Represents a device using the binary protocol.

To use this type, add from zaber_motion.binary import Device to the top of your source code.

Index

cConstants
DEFAULT_MOVEMENT_TIMEOUT
pProperties
connection
device_address
device_id
device_type
firmware_version
identity
is_identified
is_peripheral
name
peripheral_id
peripheral_name
serial_number
settings
mMethods
generic_command()
generic_command_no_response()
generic_command_with_units()
get_position()
home()
identify()
is_busy()
is_parked()
move_absolute()
move_relative()
move_velocity()
park()
stop()
__repr__()
unpark()
wait_until_idle()

Constants

c

DEFAULT_MOVEMENT_TIMEOUT

Device.DEFAULT_MOVEMENT_TIMEOUT
float Default timeout for move commands in seconds.
Value
60

Properties

p

connection

readonly
device.connection
Connection Connection of this device.
p

device_address

readonly
device.device_address
int The device address uniquely identifies the device on the connection. It can be configured or automatically assigned by the renumber command.
p

device_id

readonly
device.device_id
int Unique ID of the device hardware.
p

device_type

readonly
device.device_type
DeviceType Determines the type of an device and units it accepts.
p

firmware_version

readonly
device.firmware_version
FirmwareVersion Version of the firmware.
p

identity

readonly
device.identity
DeviceIdentity Identity of the device.
p

is_identified

readonly
device.is_identified
bool Indicates whether or not the device has been identified.
p

is_peripheral

readonly
device.is_peripheral
bool Indicates whether the device is a peripheral or part of an integrated device.
p

name

readonly
device.name
str Name of the product.
p

peripheral_id

readonly
device.peripheral_id
int Unique ID of the peripheral hardware.
p

peripheral_name

readonly
device.peripheral_name
str Name of the peripheral hardware.
p

serial_number

readonly
device.serial_number
int Serial number of the device. Requires at least Firmware 6.15 for devices or 6.24 for peripherals.
p

settings

readonly
device.settings
DeviceSettings Settings and properties of this axis.

Methods

m

generic_command()

async available
device.generic_command(command, data = 0, timeout = 0.0, check_errors = True)
Sends a generic Binary command to this device. For more information please refer to the Binary Protocol Manual.
Arguments
NameTypeDescription
commandCommandCodeCommand to send.
dataintOptional data argument to the command. Defaults to zero.
timeoutfloatNumber of seconds to wait for a response from the device. 0 or negative defaults to 0.5s.
check_errorsboolControls whether to throw an exception when the device rejects the command.
Return Value
Message A response to the command.
m

generic_command_no_response()

async available
device.generic_command_no_response(command, data = 0)
Sends a generic Binary command to this device without expecting a response. For more information please refer to the Binary Protocol Manual.
Arguments
NameTypeDescription
commandCommandCodeCommand to send.
dataintOptional data argument to the command. Defaults to zero.
m

generic_command_with_units()

async available
device.generic_command_with_units(command, data = 0, from_unit = Units.NATIVE, to_unit = Units.NATIVE, timeout = 0.0)
Sends a generic Binary command to this device with unit conversions for both sent data and retrieved data.
Arguments
NameTypeDescription
commandCommandCodeCommand to send.
datafloatData argument to the command. Defaults to zero.
from_unitUnitsAndLiteralsUnit to convert sent data from.
to_unitUnitsAndLiteralsUnit to convert retrieved data to.
timeoutfloatNumber of seconds to wait for a response from the device. 0 or negative defaults to 0.5s.
Return Value
float Data that has been converted to the provided unit.
m

get_position()

async available
device.get_position(unit = Units.NATIVE)
Returns current device position.
Arguments
NameTypeDescription
unitLengthUnitsUnits of position.
Return Value
float Axis position.
m

home()

async available
device.home(unit = Units.NATIVE, timeout = DEFAULT_MOVEMENT_TIMEOUT)
Homes device. Device returns to its homing position.
Arguments
NameTypeDescription
unitLengthUnitsUnit to convert returned position to.
timeoutfloatNumber of seconds to wait for response from the device chain (defaults to 60s).
Return Value
float Current position that has been converted to the provided unit.
m

identify()

async available
device.identify(assume_version = None)
Queries the device and the database, gathering information about the product. Without this information features such as unit conversions will not work. Usually, called automatically by detect devices method.
Arguments
NameTypeDescription
assume_versionOptional[FirmwareVersion]The identification assumes the specified firmware version instead of the version queried from the device. Providing this argument can lead to unexpected compatibility issues.
Return Value
DeviceIdentity Device identification data.
m

is_busy()

async available
device.is_busy()
Check whether the device is moving.
Return Value
bool True if the device is currently executing a motion command.
m

is_parked()

async available
device.is_parked()
Returns bool indicating whether the axis is parked or not. Requires at least Firmware 6.06.
Return Value
bool True if the axis is currently parked. False otherwise.
m

move_absolute()

async available
device.move_absolute(position, unit = Units.NATIVE, timeout = DEFAULT_MOVEMENT_TIMEOUT)
Move device to absolute position.
Arguments
NameTypeDescription
positionfloatAbsolute position.
unitLengthUnitsUnit for the provided position as well as position returned by the device.
timeoutfloatNumber of seconds to wait for response from the device chain (defaults to 60s).
Return Value
float Current position that has been converted to the provided unit.
m

move_relative()

async available
device.move_relative(position, unit = Units.NATIVE, timeout = DEFAULT_MOVEMENT_TIMEOUT)
Move device to position relative to current position.
Arguments
NameTypeDescription
positionfloatRelative position.
unitLengthUnitsUnit for the provided position as well as position returned by the device.
timeoutfloatNumber of seconds to wait for response from the device chain (defaults to 60s).
Return Value
float Current position that has been converted to the provided unit.
m

move_velocity()

async available
device.move_velocity(velocity, unit = Units.NATIVE)
Begins to move device at specified speed.
Arguments
NameTypeDescription
velocityfloatMovement velocity.
unitVelocityUnitsUnit to convert returned velocity to.
Return Value
float Device velocity that has been converted to the provided unit.
m

park()

async available
device.park()
Parks the axis. Motor drivers remain enabled and hold current continues to be applied until the device is powered off. It can later be unparked and moved without first having to home it. Requires at least Firmware 6.06.
m

stop()

async available
device.stop(unit = Units.NATIVE, timeout = DEFAULT_MOVEMENT_TIMEOUT)
Stops ongoing device movement. Decelerates until zero speed.
Arguments
NameTypeDescription
unitLengthUnitsUnit to convert returned position to.
timeoutfloatNumber of seconds to wait for response from the device chain (defaults to 60s).
Return Value
float Current position that has been converted to the provided unit.
m

__repr__()

device.__repr__()
Returns a string that represents the device.
Return Value
str A string that represents the device.
m

unpark()

async available
device.unpark()
Unparks axis. Axis will now be able to move. Requires at least Firmware 6.06.
m

wait_until_idle()

async available
device.wait_until_idle()
Waits until device stops moving.
Top