Pineblaster

This labscript device controls the PineBlaster open-source digital pattern generator based on the Digilent chipKIT Max32 Prototyping platform.

Warning

The chipKIT Max32 board is no longer commercially available. As such, this device is considered deprecated. We recommend the PrawnBlaster as a replacement device (for both new users looking for a cheap pseudoclock, and existing users of the PineBlaster). The PrawnBlaster microcontroller only costs ~$5USD and supports more instructions, multiple independent pseudoclocks, an internal wait monitor, and an easier connection for referencing to an external clock source.

Detailed Documentation

class labscript_devices.PineBlaster.PineBlaster(name, trigger_device=None, trigger_connection=None, usbport='COM1')[source]

Bases: PseudoclockDevice

Instantiates a pseudoclock device.

Parameters:
  • name (str) – python variable to assign to this device.

  • trigger_device (DigitalOut) – Sets the parent triggering output. If None, this is considered the master pseudoclock.

  • trigger_connection (str, optional) – Must be provided if trigger_device is provided. Specifies the channel of the parent device.

  • **kwargs – Passed to TriggerableDevice.__init__().

add_device(device)[source]

Adds a child device to this device.

Parameters:

device (Device) – Device to add.

Raises:

LabscriptError – If device is not an allowed child of this device.

allowed_children = [<class 'labscript_devices.PineBlaster.PineBlasterPseudoclock'>]

Defines types of devices that are allowed to be children of this device.

Type:

list

clock_limit = 10000000.0
clock_resolution = 2.5e-08
clock_type = 'fast clock'
property clockline
description = 'PineBlaster'

Brief description of the device.

generate_code(hdf5_file)[source]

Generate hardware instructions for device and children, then save to h5 file.

Will recursively call generate_code for all children devices.

Parameters:

hdf5_file (h5py.File) – Handle to shot file.

max_instructions = 15000
property pseudoclock
trigger_delay = 3.5e-07
wait_delay = 2.5e-06
class labscript_devices.PineBlaster.PineBlasterPseudoclock(name, pseudoclock_device, connection, **kwargs)[source]

Bases: Pseudoclock

Creates a Pseudoclock.

Parameters:
  • name (str) – python variable name to assign the device instance to.

  • pseudoclock_device (PseudoclockDevice) – Parent pseudoclock device

  • connection (str) – Connection on this device that links to parent

  • **kwargs – Passed to Device().

add_device(device)[source]

Adds a child device to this device.

Parameters:

device (Device) – Device to add.

Raises:

LabscriptError – If device is not an allowed child of this device.

class labscript_devices.PineBlaster.PineblasterTab(notebook, settings, restart=False)[source]

Bases: DeviceTab

get_child_from_connection_table(parent_device_name, port)[source]
initialise_GUI()[source]
labscript_device_class_name = 'PineBlaster'
start_run(*args, **kwargs)
status_monitor(*args, **kwargs)
class labscript_devices.PineBlaster.PineblasterWorker(*args, **kwargs)[source]

Bases: Worker

abort()[source]
abort_buffered()[source]
abort_transition_to_buffered()[source]
init()[source]
program_manual(values)[source]
shutdown()[source]
start_run()[source]
status_monitor()[source]
transition_to_buffered(device_name, h5file, initial_values, fresh)[source]
transition_to_manual()[source]
class labscript_devices.PineBlaster.RunviewerClass(path, device)[source]

Bases: object

clock_resolution = 2.5e-08
clock_type = 'fast clock'
get_traces(add_trace, clock=None)[source]
labscript_device_class_name = 'PineBlaster'
trigger_delay = 1e-06
wait_delay = 2.5e-06