herosdevices.hardware.menlo.oscillator

HERO driver for the main seed oscillator of a Menlo Systems frequency comb.

Module Contents

class herosdevices.hardware.menlo.oscillator.Oscillator(ofc: herosdevices.hardware.menlo.ofc.OFC, observables: dict[str, dict[str, str]] | None = None)[source]

Bases: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule

Driver for the main seed oscillator (fs laser) of a Menlo Systems frequency comb.

Wraps the OFC’s functionalLayer.ofcSettings sub-tree, a fixed, singleton module (there is only one seed oscillator per OFC, so unlike DDS/ LaserLock there is no funclayer_identifier to select).

ofcSettings also has xps/fsOscillator pump-diode current-control nodes (e.g. xps.diode01, fsOscillator.preampDiode01), but which diodes are actually populated appears to vary by comb configuration (one observed unit had diode01/diode03/diode04 under both trees, with no diode02) - not modeled here since it isn’t confirmed to be a fixed, general shape. Poll/control specific diode nodes for your comb via observables, or ofc.get_node/set_node directly.

Parameters:
  • ofc – The OFC HERO this oscillator belongs to.

  • observables – Additional observables to poll, merged on top of DEFAULT_OBSERVABLES, see FunctionalLayerModule.

DEFAULT_OBSERVABLES: dict[str, dict[str, str]]
property mode_locked: bool

Whether the oscillator is currently mode-locked. Read-only.

property temperature: float

Actual temperature of the oscillator’s TEC. Read-only.

property dc_act: float

DC component of the mode-lock detection signal. Read-only.

property ac_act: float

AC component of the mode-lock detection signal. Read-only.

property laser_enabled: bool

Whether the oscillator’s pump laser is enabled.

ofc
base_path
observables
get(relative_path: str) Any

Read the current value of a node relative to this module’s settings object.

Use this for module properties not already exposed as a named attribute. See explore() to find the available relative paths, e.g. ofc.explore(module.base_path, depth=2).

Parameters:

relative_path – Dotted path relative to base_path.

Returns:

The current value of the node.

set(relative_path: str, value: Any) None

Set the value of a node relative to this module’s settings object.

Parameters:
  • relative_path – Dotted path relative to base_path, see get().

  • value – Value to set.