Fork PyRPL on GitHub

pyrpl.software_modules.lockbox.models package

Submodules

pyrpl.software_modules.lockbox.models.custom_lockbox_example module

class pyrpl.software_modules.lockbox.models.custom_lockbox_example.CustomInputClass(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputSignal

A custom input signal for our customized lockbox. Please refer to the documentation on the default API of
InputSignals

Setup Attributes:

  • custom_gain_attribute: custom factor for each input signal
calibrate()[source]

This is a simplified calibration method. InputSignal.calibrate works better than this in most cases.

custom_gain_attribute

custom factor for each input signal

expected_signal(variable)[source]
expected_slope(variable)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

custom_gain_attribute

custom factor for each input signal

calibration_data
class pyrpl.software_modules.lockbox.models.custom_lockbox_example.CustomLockbox(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

A custom lockbox class that can be used to implement customized feedback controllers Setup Attributes:

  • custom_attribute:
  • inputs:
  • outputs:
custom_attribute
custom_function()[source]
inputs
outputs
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘V’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. custom_attribute: sequence: _auto_lock_loop: _lockstatus_loop: inputs: outputs:
variable = 'displacement'
class pyrpl.software_modules.lockbox.models.custom_lockbox_example.ExampleLoop(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.LockboxPlotLoop

Setup Attributes:

loop()[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
class pyrpl.software_modules.lockbox.models.custom_lockbox_example.ExampleLoopLockbox(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

Setup Attributes:

interval
loop = None
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘V’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. sequence: inputs: _auto_lock_loop: outputs: _lockstatus_loop:
start()[source]
stop()[source]
class pyrpl.software_modules.lockbox.models.custom_lockbox_example.GalvanicIsolationLoopLockbox(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

an example for a loop fully described in the lockbox class definition Setup Attributes:

galvanic_isolation_loop_function()[source]

the loop function to be executed

gi_interval

Minimum interval at which the loop updates the second redpitaya output

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘V’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. sequence: inputs: _auto_lock_loop: outputs: _lockstatus_loop:
start_gi()[source]
stop_gi()[source]
class pyrpl.software_modules.lockbox.models.custom_lockbox_example.ShortLoopLockbox(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

an example for very short loop description Setup Attributes:

  • loop:
loop
plot_sin_and_in1(lockbox_self, loop_self)[source]

if you pass an instance_method of the lockbox, it should take two arguments: the instance of the lockbox (self) and the instance of the loop

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘V’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. sequence: inputs: _auto_lock_loop: outputs: _lockstatus_loop: loop:

pyrpl.software_modules.lockbox.models.fabryperot module

class pyrpl.software_modules.lockbox.models.fabryperot.FPAnalogPdh(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputSignal, pyrpl.software_modules.lockbox.models.fabryperot.Lorentz

Setup Attributes:

  • mod_freq:
expected_signal(setpoint)[source]
is_locked(loglevel=20)[source]
mod_freq
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

mod_freq
calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.FPPdh(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputIq, pyrpl.software_modules.lockbox.models.fabryperot.FPAnalogPdh

Same as analog pdh signal, but generated from IQ module Setup Attributes:

setup(**kwds)
setup a PDH error signal using the attribute values
input_signal

the dsp module or lockbox signal used as input signal

mod_freq
mod_amp
mod_phase
mod_output

Options: [‘out1’, ‘out2’]

bandwidth: quadrature_factor: calibration_data:
class pyrpl.software_modules.lockbox.models.fabryperot.FPReflection(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputSignal, pyrpl.software_modules.lockbox.models.fabryperot.Lorentz

Setup Attributes:

expected_signal(setpoint)[source]
relative_mean

returns the ratio between the measured mean value and the expected one.

relative_rms

returns the ratio between the measured rms value and the expected mean.

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.FPTilt(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputSignal, pyrpl.software_modules.lockbox.models.fabryperot.Lorentz

Error signal for tilt-locking schemes, e.g.
https://arxiv.org/pdf/1410.8773.pdf

Setup Attributes:

expected_signal(setpoint)[source]

expected error signal is centered around zero on purpose

is_locked(loglevel=20)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.FPTransmission(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.FPReflection

Setup Attributes:

expected_signal(setpoint)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.FabryPerot(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.interferometer.Interferometer

Setup Attributes:

  • setpoint_unit:

Options: [‘bandwidth’, ‘linewidth’] - finesse: - round_trip_length: - eta: - inputs:

eta
finesse
free_spectral_range

returns the cavity free spectral range in Hz

inputs
round_trip_length
setpoint_unit

Options – [‘bandwidth’, ‘linewidth’]

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘bandwidth’, ‘linewidth’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. wavelength: finesse: round_trip_length: eta: sequence: _auto_lock_loop: _lockstatus_loop: outputs: inputs:
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseAnalogPdh(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseInput, pyrpl.software_modules.lockbox.models.fabryperot.FPAnalogPdh

Setup Attributes:

calibrate(trigger_signal='reflection', autosave=False)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
mod_freq
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseFabryPerot(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.FabryPerot

Setup Attributes:

  • inputs:
inputs
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘bandwidth’, ‘linewidth’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. wavelength: finesse: round_trip_length: eta: sequence: _auto_lock_loop: _lockstatus_loop: outputs: inputs:
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseInput(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputSignal

Since the number of points in the scope is too small for high finesse cavities, the acquisition is performed in 2 steps:

  1. Full scan with the actuator, full scope duration, trigged on asg
  2. Full scan with the actuator, smaller scope duration, trigged on input (level defined by previous scan).

Scope states corresponding to 1 and 2 are “sweep” and “sweep_zoom”

Setup Attributes:

calibrate(autosave=False)[source]
get_threshold(curve)

returns a reasonable scope threshold for the interesting part of this curve

get_threshold_empirical(curve)[source]

returns a reasonable scope threshold for the interesting part of this curve

get_threshold_theoretical(curve)[source]

returns a reasonable scope threshold for the interesting part of this curve

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
sweep_acquire_zoom(threshold, input2=None)[source]
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinessePdh(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseAnalogPdh, pyrpl.software_modules.lockbox.models.fabryperot.FPPdh

Setup Attributes:

setup(**kwds)
setup a PDH error signal using the attribute values
mod_amp
mod_phase
mod_output

Options: [‘out1’, ‘out2’]

bandwidth: quadrature_factor: mod_freq: input_signal: the dsp module or lockbox signal used as input signal calibration_data:
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseReflection(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseInput, pyrpl.software_modules.lockbox.models.fabryperot.FPReflection

Reflection for a FabryPerot. The only difference with FPReflection is that acquire will be done in 2 steps (coarse, then fine)

Setup Attributes:

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseTransmission(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.fabryperot.HighFinesseInput, pyrpl.software_modules.lockbox.models.fabryperot.FPTransmission

Setup Attributes:

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.fabryperot.Lorentz[source]

Bases: object

base class for Lorentzian-like signals

pyrpl.software_modules.lockbox.models.interferometer module

class pyrpl.software_modules.lockbox.models.interferometer.Interferometer(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

Setup Attributes:

  • setpoint_unit:

Options: [‘deg’, ‘rad’] - wavelength: - inputs: - outputs:

inputs
outputs
setpoint_unit

Options – [‘deg’, ‘rad’]

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘deg’, ‘rad’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. wavelength: sequence: _auto_lock_loop: _lockstatus_loop: inputs: outputs:
wavelength
class pyrpl.software_modules.lockbox.models.interferometer.InterferometerPort1(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputDirect

Setup Attributes:

expected_setpoint(transmission)[source]
expected_signal(phase)[source]
plot_range
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.interferometer.InterferometerPort2(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.interferometer.InterferometerPort1

Setup Attributes:

expected_signal(phase)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
class pyrpl.software_modules.lockbox.models.interferometer.PdhInterferometer(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.interferometer.Interferometer

Setup Attributes:

  • inputs:
inputs
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘deg’, ‘rad’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. wavelength: sequence: _auto_lock_loop: _lockstatus_loop: outputs: inputs:
class pyrpl.software_modules.lockbox.models.interferometer.PdhInterferometerPort1(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.interferometer.InterferometerPort1, pyrpl.software_modules.lockbox.input.InputIq

Setup Attributes:

expected_signal(phase)[source]
setup(**kwds)
setup a PDH error signal using the attribute values
mod_freq
mod_amp
mod_phase
mod_output

Options: [‘out1’, ‘out2’]

bandwidth: quadrature_factor: input_signal: the dsp module or lockbox signal used as input signal calibration_data:
class pyrpl.software_modules.lockbox.models.interferometer.PdhInterferometerPort2(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.models.interferometer.InterferometerPort2, pyrpl.software_modules.lockbox.input.InputIq

Setup Attributes:

expected_signal(phase)[source]
setup(**kwds)
setup a PDH error signal using the attribute values
mod_freq
mod_amp
mod_phase
mod_output

Options: [‘out1’, ‘out2’]

bandwidth: quadrature_factor: input_signal: the dsp module or lockbox signal used as input signal calibration_data:

pyrpl.software_modules.lockbox.models.linear module

class pyrpl.software_modules.lockbox.models.linear.Linear(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.lockbox.Lockbox

A simple linear dependance of variable vs input

Setup Attributes:

setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
classname
default_sweep_output

Options: [None]

auto_lock: Turns on the autolock of the module. is_locked_threshold: Setpoint interval size to consider system in locked state setpoint_unit:

Options: [‘V’]

auto_lock_interval: lockstatus_interval: _auto_lock_timeout: maximum time that a locking stage is allowed to take before a lock is considered as stalled. sequence: inputs: _auto_lock_loop: outputs: _lockstatus_loop:
variable = 'x'
class pyrpl.software_modules.lockbox.models.linear.LinearInputDirect(parent, name=None)[source]

Bases: pyrpl.software_modules.lockbox.input.InputDirect

Setup Attributes:

expected_signal(variable)[source]
setup(**kwds)
Sets the module up for acquisition with the current setup attribute values.
input_signal

the dsp module or lockbox signal used as input signal

calibration_data
signal_at_0
slope

Module contents