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

Oscilloscopeclass

Module: zaber_motion.ascii

Provides a convenient way to control the oscilloscope data recording feature of some devices. The oscilloscope can record the values of some settings over time at high resolution. Requires at least Firmware 7.00.

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)
oscilloscope = device.oscilloscope
Related Guides:
  • Oscilloscope

Index

pProperties
device
mMethods
add_channel()
add_io_channel()
clear()
get_buffer_size()
get_delay()
get_frequency()
get_max_buffer_size()
get_max_channels()
get_timebase()
read()
set_delay()
set_frequency()
set_timebase()
start()
stop()

Properties

p

device

readonly
oscilloscope.device
Device Device that this Oscilloscope measures.

Methods

m

add_channel()

async available
oscilloscope.add_channel(axis, setting)
Select a setting to be recorded.
Arguments
NameTypeDescription
axisintThe 1-based index of the axis to record the value from.
settingstrThe name of a setting to record.
m

add_io_channel()

async available
oscilloscope.add_io_channel(io_type, io_channel)
Select an I/O pin to be recorded. Requires at least Firmware 7.33.
Arguments
NameTypeDescription
io_typeIoPortTypeThe I/O port type to read data from.
io_channelintThe 1-based index of the I/O pin to read from.
m

clear()

async available
oscilloscope.clear()
Clear the list of channels to record.
m

get_buffer_size()

async available
oscilloscope.get_buffer_size()
Get the number of samples that can be recorded per channel given the current number of channels added.
Return Value
int Number of samples that will be recorded per channel with the current channels. Zero if none have been added.
m

get_delay()

async available
oscilloscope.get_delay(unit = Units.NATIVE)
Get the delay before oscilloscope recording starts.
Arguments
NameTypeDescription
unitTimeUnitsUnit of measure to represent the delay in.
Return Value
float The current start delay in the selected time units.
m

get_frequency()

async available
oscilloscope.get_frequency(unit = Units.NATIVE)
Get the current sampling frequency. The values is calculated as the inverse of the current sampling interval.
Arguments
NameTypeDescription
unitFrequencyUnitsUnit of measure to represent the frequency in.
Return Value
float The inverse of current sampling interval in the selected units.
m

get_max_buffer_size()

async available
oscilloscope.get_max_buffer_size()
Get the maximum number of samples that can be recorded per Oscilloscope channel.
Return Value
int The maximum number of samples that can be recorded per Oscilloscope channel.
m

get_max_channels()

async available
oscilloscope.get_max_channels()
Get the maximum number of channels that can be recorded.
Return Value
int The maximum number of channels that can be added to an Oscilloscope recording.
m

get_timebase()

async available
oscilloscope.get_timebase(unit = Units.NATIVE)
Get the current sampling interval.
Arguments
NameTypeDescription
unitTimeUnitsUnit of measure to represent the timebase in.
Return Value
float The current sampling interval in the selected time units.
m

read()

async available
oscilloscope.read()
Reads the last-recorded data from the oscilloscope. Will block until any in-progress recording completes.
Return Value
List[OscilloscopeData] Array of recorded channel data arrays, in the order added.
m

set_delay()

async available
oscilloscope.set_delay(interval, unit = Units.NATIVE)
Set the sampling start delay.
Arguments
NameTypeDescription
intervalfloatDelay time between triggering a recording and the first data point being recorded.
unitTimeUnitsUnit of measure the delay is represented in.
m

set_frequency()

async available
oscilloscope.set_frequency(frequency, unit = Units.NATIVE)
Set the sampling frequency (inverse of the sampling interval). The value is quantized to the next closest value supported by the firmware.
Arguments
NameTypeDescription
frequencyfloatSample frequency for the next oscilloscope recording.
unitFrequencyUnitsUnit of measure the frequency is represented in.
m

set_timebase()

async available
oscilloscope.set_timebase(interval, unit = Units.NATIVE)
Set the sampling interval.
Arguments
NameTypeDescription
intervalfloatSample interval for the next oscilloscope recording. Minimum value is 100µs.
unitTimeUnitsUnit of measure the timebase is represented in.
m

start()

async available
oscilloscope.start(capture_length = 0)
Trigger data recording.
Arguments
NameTypeDescription
capture_lengthintOptional number of samples to record per channel. If left empty, the device records samples until the buffer fills.
m

stop()

async available
oscilloscope.stop()
End data recording if currently in progress.
Top