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

Lockstepclass

Module: zaber_motion.ascii

Represents a lockstep group with this ID on a device. A lockstep group is a movement synchronized pair of axes on a device. Requires at least Firmware 6.15 or 7.11.

The following example illustrates how you can obtain an instance of this type:

from zaber_motion.ascii import Connection

connection = Connection.open_serial_port('COM3')
device = connection.get_device(1)
lockstep = device.get_lockstep(1)
Related Guides:
  • Lockstep

Index

pProperties
device
lockstep_group_id
mMethods
disable()
enable()
get_axis_numbers()
get_offsets()
get_position()
get_twists()
home()
is_busy()
is_enabled()
is_parked()
move_absolute()
move_max()
move_min()
move_relative()
move_sin()
move_sin_stop()
move_velocity()
park()
set_tolerance()
stop()
__repr__()
unpark()
wait_until_idle()

Properties

p

device

readonly
lockstep.device
Device Device that controls this lockstep group.
p

lockstep_group_id

readonly
lockstep.lockstep_group_id
int The number that identifies the lockstep group on the device.

Methods

m

disable()

async available
lockstep.disable()
Disable the lockstep group.
m

enable()

async available
lockstep.enable(*axes)
Activate the lockstep group on the axes specified.
Arguments
NameTypeDescription
*axesintThe numbers of axes in the lockstep group.
m

get_axis_numbers()

async available
lockstep.get_axis_numbers()
Gets the axis numbers of the lockstep group.
Return Value
List[int] Axis numbers in order specified when enabling lockstep.
m

get_offsets()

async available
lockstep.get_offsets(unit = Units.NATIVE)
Gets the initial offsets of secondary axes of an enabled lockstep group.
Arguments
NameTypeDescription
unitLengthUnitsUnits of position. Uses primary axis unit conversion.
Return Value
List[float] Initial offset for each axis of the lockstep group.
m

get_position()

async available
lockstep.get_position(unit = Units.NATIVE)
Returns current position of the primary axis.
Arguments
NameTypeDescription
unitLengthUnitsUnits of the position.
Return Value
float Primary axis position.
m

get_twists()

async available
lockstep.get_twists(unit = Units.NATIVE)
Gets the twists of secondary axes of an enabled lockstep group.
Arguments
NameTypeDescription
unitLengthUnitsUnits of position. Uses primary axis unit conversion.
Return Value
List[float] Difference between the initial offset and the actual offset for each axis of the lockstep group.
m

home()

async available
lockstep.home(wait_until_idle = True)
Retracts the axes of the lockstep group until a home associated with an individual axis is detected.
Arguments
NameTypeDescription
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
m

is_busy()

async available
lockstep.is_busy()
Returns bool indicating whether the lockstep group is executing a motion command.
Return Value
bool True if the axes are currently executing a motion command.
m

is_enabled()

async available
lockstep.is_enabled()
Checks if the lockstep group is currently enabled on the device.
Return Value
bool True if a lockstep group with this ID is enabled on the device.
m

is_parked()

async available
lockstep.is_parked()
Returns bool indicating whether the axis is parked or not.
Return Value
bool True if lockstep group is parked.
m

move_absolute()

async available
lockstep.move_absolute(position, unit = Units.NATIVE, wait_until_idle = True, velocity = 0, velocity_unit = Units.NATIVE, acceleration = 0, acceleration_unit = Units.NATIVE)
Move the first axis of the lockstep group to an absolute position. The other axes in the lockstep group maintain their offsets throughout movement.
Arguments
NameTypeDescription
positionfloatAbsolute position.
unitLengthUnitsUnits of position.
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
velocityfloatMovement velocity. Default value of 0 indicates that the maxspeed setting is used instead.
velocity_unitVelocityUnitsUnits of velocity.
accelerationfloatMovement acceleration. Default value of 0 indicates that the accel setting is used instead.
acceleration_unitAccelerationUnitsUnits of acceleration.
m

move_max()

async available
lockstep.move_max(wait_until_idle = True, velocity = 0, velocity_unit = Units.NATIVE, acceleration = 0, acceleration_unit = Units.NATIVE)
Moves the axes to the maximum valid position. The axes in the lockstep group maintain their offsets throughout movement. Respects lim.max for all axes in the group.
Arguments
NameTypeDescription
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
velocityfloatMovement velocity. Default value of 0 indicates that the maxspeed setting is used instead.
velocity_unitVelocityUnitsUnits of velocity.
accelerationfloatMovement acceleration. Default value of 0 indicates that the accel setting is used instead.
acceleration_unitAccelerationUnitsUnits of acceleration.
m

move_min()

async available
lockstep.move_min(wait_until_idle = True, velocity = 0, velocity_unit = Units.NATIVE, acceleration = 0, acceleration_unit = Units.NATIVE)
Moves the axes to the minimum valid position. The axes in the lockstep group maintain their offsets throughout movement. Respects lim.min for all axes in the group.
Arguments
NameTypeDescription
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
velocityfloatMovement velocity. Default value of 0 indicates that the maxspeed setting is used instead.
velocity_unitVelocityUnitsUnits of velocity.
accelerationfloatMovement acceleration. Default value of 0 indicates that the accel setting is used instead.
acceleration_unitAccelerationUnitsUnits of acceleration.
m

move_relative()

async available
lockstep.move_relative(position, unit = Units.NATIVE, wait_until_idle = True, velocity = 0, velocity_unit = Units.NATIVE, acceleration = 0, acceleration_unit = Units.NATIVE)
Move the first axis of the lockstep group to a position relative to its current position. The other axes in the lockstep group maintain their offsets throughout movement.
Arguments
NameTypeDescription
positionfloatRelative position.
unitLengthUnitsUnits of position.
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
velocityfloatMovement velocity. Default value of 0 indicates that the maxspeed setting is used instead.
velocity_unitVelocityUnitsUnits of velocity.
accelerationfloatMovement acceleration. Default value of 0 indicates that the accel setting is used instead.
acceleration_unitAccelerationUnitsUnits of acceleration.
m

move_sin()

async available
lockstep.move_sin(amplitude, amplitude_units, period, period_units, count = 0, wait_until_idle = True)
Moves the first axis of the lockstep group in a sinusoidal trajectory. The other axes in the lockstep group maintain their offsets throughout movement.
Arguments
NameTypeDescription
amplitudefloatAmplitude of the sinusoidal motion (half of the motion's peak-to-peak range).
amplitude_unitsLengthUnitsUnits of position.
periodfloatPeriod of the sinusoidal motion in milliseconds.
period_unitsTimeUnitsUnits of time.
countfloatNumber of sinusoidal cycles to complete. Must be a multiple of 0.5 If count is not specified or set to 0, the axis will move indefinitely.
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
m

move_sin_stop()

async available
lockstep.move_sin_stop(wait_until_idle = True)
Stops the lockstep group at the end of the sinusoidal trajectory for the first axis. If the sinusoidal motion was started with an integer-plus-half cycle count, the motion ends at the half-way point of the sinusoidal trajectory.
Arguments
NameTypeDescription
wait_until_idleboolDetermines whether function should return after the movement is finished.
m

move_velocity()

async available
lockstep.move_velocity(velocity, unit = Units.NATIVE, acceleration = 0, acceleration_unit = Units.NATIVE)
Moves the first axis of the lockstep group at the specified speed. The other axes in the lockstep group maintain their offsets throughout movement.
Arguments
NameTypeDescription
velocityfloatMovement velocity.
unitVelocityUnitsUnits of velocity.
accelerationfloatMovement acceleration. Default value of 0 indicates that the accel setting is used instead.
acceleration_unitAccelerationUnitsUnits of acceleration.
m

park()

async available
lockstep.park()
Parks lockstep group in anticipation of turning the power off. It can later be powered on, unparked, and moved without first having to home it.
m

set_tolerance()

async available
lockstep.set_tolerance(tolerance, unit = Units.NATIVE, axis_index = 0)
Sets lockstep twist tolerance. Twist tolerances that do not match the system configuration can reduce performance or damage the system.
Arguments
NameTypeDescription
tolerancefloatTwist tolerance.
unitLengthUnitsUnits of the tolerance. Uses primary axis unit conversion when setting to all axes, otherwise uses specified secondary axis unit conversion.
axis_indexintOptional index of a secondary axis to set the tolerance for. If left empty or set to 0, the tolerance is set to all the secondary axes.
m

stop()

async available
lockstep.stop(wait_until_idle = True)
Stops ongoing lockstep group movement. Decelerates until zero speed.
Arguments
NameTypeDescription
wait_until_idleboolDetermines whether function should return after the movement is finished or just started.
m

__repr__()

lockstep.__repr__()
Returns a string which represents the enabled lockstep group.
Return Value
str String which represents the enabled lockstep group.
m

unpark()

async available
lockstep.unpark()
Unparks lockstep group. Lockstep group will now be able to move.
m

wait_until_idle()

async available
lockstep.wait_until_idle(throw_error_on_fault = True)
Waits until the lockstep group stops moving.
Arguments
NameTypeDescription
throw_error_on_faultboolDetermines whether to throw error when fault is observed.
Top