Triggered Picotech Oscilloscope



The picotech-adc-triggered daemon can be installed using the following package managers:



The picotech-adc-triggered daemon is composed of the following traits:



The picotech-adc-triggered daemon has been tested with the following hardware:



channels (map)

enable (boolean) default: True
Disable this daemon. The kind entry-point will not attempt to start this daemon.
from is-daemon

log_level ({'name': 'level', 'symbols': ['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency'], 'type': 'enum'}) default: info
Set daemon log-level.
from is-daemon

log_to_file (boolean) default: False
Optionally force logging to a file.
from is-daemon

loop_at_startup (boolean) default: False
If set to true, the daemon will begin to loop measure as soon as it starts.
from has-measure-trigger

make (['null', 'string']) default: picotech
from is-daemon

max_samples (int) default: 200
Number of samples per trigger (per channel).

model (['null', 'string']) default: ps2000
from is-daemon

oversample (int) default: 16
Average on board to increase vertical resolution. Int between 1 and 256. Reduces output readings per trigger and increases time_interval in proportion.

port (int)
TCP port for daemon to occupy.
from is-daemon

serial (['null', 'string']) default: None
Serial number for the particular device represented by the daemon
from is-daemon

shots_processing_path (string)
Path to a .py module that processes raw scope traces into output channels. Example module is included in examples directory (`processing_module.py`). Path can be absolute or relative to the config file.

timebase (int) default: 5
Time step between measurements is `10 ns * 2^(time_base)`.

trigger_channel (string)
trigger channel id (A, B, C, or D)

trigger_delay (int) default: -15
Delay, as a percentage of sampled data points, between trigger and start block (delay in [-100, 100]). 0 means trigger event is first data point, -50 means trigger event is in the middle of block.

trigger_rising (boolean) default: True
Trigger on rising (true) or falling (false) edge

trigger_self (boolean) default: False
Sets whether (True) or not (False) ADC is triggered by its own AWG. AWG generates 0-1 V square wave at 1 kHz. Connect AWG to trigger.physical_channel.

trigger_threshold (int) default: 500000
Voltage value (in uV) that triggers sampling.


The picotech-adc-triggered daemon will provide the following state information:

nshots (int)


The picotech-adc-triggered daemon will expose the following public messages:

busy ➜ boolean
Returns true if daemon is currently busy.
from is-daemon

get_channel_mappings ➜ {'type': 'map', 'values': {'items': 'string', 'type': 'array'}}
Defines which mapping keys apply to which channel keys. Each channel may have zero or many mappings. Mappings must broadcast into corresponding channels.
from has-mapping

get_channel_names ➜ {'items': 'string', 'type': 'array'}
Get current channel names.
from is-sensor

get_channel_shapes ➜ {'type': 'map', 'values': {'items': 'int', 'type': 'array'}}
Get current channel shapes. If list is empty, channel is scalar.
from is-sensor

get_channel_units ➜ {'type': 'map', 'values': ['null', 'string']}
Get current channel units.
from is-sensor

get_config ➜ string
Full configuration for the individual daemon as defined in the TOML file. This includes defaults and shared settings not directly specified in the daemon-specific TOML table.
from is-daemon

get_config_filepath ➜ string
String representing the absolute filepath of the configuration file on the host machine.
from is-daemon

get_mapping_id ➜ int
Mapping ID. This integer increments every time the mapping is updated. Clients can safely check this id to verify that their cached mappings are correct, if desired.
from has-mapping

get_mapping_units ➜ {'type': 'map', 'values': ['null', 'string']}
Must return units for every mapping. Units can be null.
from has-mapping

get_mappings ➜ {'type': 'map', 'values': ['null', 'ndarray', 'double']}
Mappings themselves.
from has-mapping

get_measured ➜ {'type': 'map', 'values': ['int', 'double', 'ndarray']}
Returns map of channel_name to measured_value. Always returns additional key measurement_id.
from is-sensor

get_measured_samples ➜ ndarray
Get full raw channel data. Returns array of shape (channel, sample, shot).

get_measurement_id ➜ {'type': 'int'}
Get current measurement_id. Clients are encouraged to watch for this to be updated before calling get_measured to get entire measurement.
from is-sensor

get_nshots ➜ int
Get the currently planned number of shots.

get_state ➜ string
Get version of the running daemon
from is-daemon

id ➜ {'type': 'map', 'values': ['null', 'string']}
JSON object with information to identify the daemon, including name, kind, make, model, serial.
from is-daemon

measure ➜ int
Initiate a measurement. Returns integer, measurement ID.
from has-measure-trigger

loop (boolean) default: False

set_nshots ➜ null
Set the number of shots to acquire.

nshots (int)

shutdown ➜ null
Cleanly shutdown (or restart) daemon.
from is-daemon

restart (boolean) default: False

stop_looping ➜ null
Stop looping measurement.
from has-measure-trigger


The picotech-adc-triggered daemon uses the following avro types:

processing_method (enum)
symbols: ['average', 'sum', 'min', 'max']

adc_range (enum)
symbols: ['_20_mV', '_50_mV', '_100_mV', '_200_mV', '_500_mV', '_1_V', '_2_V', '_5_V', '_10_V', '_20_V']

adc_coupling (enum)
symbols: ['DC', 'AC']

channel (record)

enabled (boolean) default: False

coupling (adc_coupling) default: DC

range (adc_range) default: 5 V

invert (boolean) default: False

built 2022-11-30 17:44:22                                      CC0: no copyright