herosdevices.hardware.menlo.mixins

Reusable node-shape mixins shared across Menlo Systems functional-layer modules.

Menlo’s device tree repeats several node shapes (current-controlled laser diodes, frequency-distribution blocks, PID control loops, …) under different node names in different modules. Each mixin here models one such shape, taking the owning module and the shape’s relative node path, so a module can compose as many instances as its own tree needs - e.g. DualLaserLock needs two FrequencyDistribution instances, one per wavelength.

Module Contents

class herosdevices.hardware.menlo.mixins.CurrentControl(module: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule, relative_path: str)[source]

Bases: _NodeGroup

Laser-diode current control (setCurrentD1/D2/D3), e.g. an amp* node on a CW channel.

property set_current_d1: float

Current setpoint of the first diode stage.

property set_current_d2: float

Current setpoint of the second diode stage.

property set_current_d3: float

Current setpoint of the third diode stage.

class herosdevices.hardware.menlo.mixins.FrequencyDistribution(module: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule, relative_path: str)[source]

Bases: _NodeGroup

Frequency-distribution block (attenuation/counterInputFilter/ofdOutputFilter).

Shared shape across a CW channel’s frequencyDistribution, CEO’s frequencyDistributionCeoBeat, RR’s frequencyDistributionOpticalBeat/frequencyDistributionRfBeat, and the per-wavelength frequencyDistribution<wavelength> nodes on combo CW channels.

property attenuation: int

Attenuation applied to the beat signal before it reaches the loop electronics.

property counter_input_filter_enabled: bool

Whether the beat-frequency counter’s input filter is enabled.

property ofd_output_filter_enabled: bool

Whether the optical frequency divider output filter is enabled.

class herosdevices.hardware.menlo.mixins.SelectMonitor(module: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule, relative_path: str)[source]

Bases: _NodeGroup

Channel-select monitor.

CW channels and CEO expose a single hfsChannelSelected; RepetitionRate exposes two (hfs1ChannelSelected/hfs2ChannelSelected) instead. All three properties are always defined here; which ones actually resolve on the device depends on which module composes this mixin.

property hfs_channel_selected: int

Selected HFS reference channel.

property hfs1_channel_selected: int

Selected HFS reference channel for the first sub-channel.

property hfs2_channel_selected: int

Selected HFS reference channel for the second sub-channel.

class herosdevices.hardware.menlo.mixins.FrequencyControl(module: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule, relative_path: str)[source]

Bases: _NodeGroup

Frequency-control loop shape (gain/setpoint/slope/corner-frequency/handover/slow-branch-enable knobs).

Shared by a CW channel’s frequencyControl and RR’s controlSettingsDualLock/controlSettingsSingleLock.

property p_gain: float

Proportional gain of the loop.

property set_point: float

Setpoint of the loop.

property signal_slope: int

Sign/slope of the error signal used by the loop, i.e. the loop’s polarity convention.

Inferred name and semantics from context; verify against vendor documentation before relying on the exact meaning of the value.

property fs_corner_frequencies: Any

Corner frequencies of the loop’s feed-forward stage.

property int3_handover_freq: float

Handover frequency between the loop’s integrator stages.

property slow_branch_enabled: bool

Whether the loop’s slow feedback branch is enabled.

class herosdevices.hardware.menlo.mixins.Tec(module: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule, relative_path: str)[source]

Bases: _NodeGroup

Thermo-electric cooler status/control (i_actual/t_actual_il/t_actual_ool/t_set/tecOn).

property i_actual: float

Actual TEC current. Read-only.

property t_actual_il: float

Actual temperature, in-loop sensor. Read-only.

property t_actual_ool: float

Actual temperature, out-of-loop sensor. Read-only.

property t_set: float

Target temperature.

property tec_on: bool

Whether the TEC is enabled.