LDC500 Series Laser-diode Controllers
- class pymeasure.instruments.srs.ldc500series.LDC500Series(adapter, name='LDC500Series', **kwargs)
Bases:
SCPIMixin,InstrumentRepresents an SRS LDC500Series laser diode controller and provides a high-level interface for interacting with the instrument.
- ld
- Channel:
- pd
- Channel:
- tec
- Channel:
- check_errors()
Read all errors from the instrument.
- Returns:
List of [
last_execution_error,last_command_error]
- check_set_errors()
Check for errors after having set a property, and raise an error if any are present.
- property last_command_error: Any
Get the last command error code. This also resets the execution error code to 0.
- property last_execution_error: Any
Get the last execution error code. This also resets the execution error code to 0.
- property next_error
Get next error not implemented, raises:
NotImplementedError
- property options
Get options not implemented, raises
NotImplementedError
- class pymeasure.instruments.srs.ldc500series.LDC500SeriesLD(parent, id, **kwargs)
Bases:
ChannelLDC500Series channel for control of the laser-diode (LD).
- property current: Any
Measure the laser diode current, in mA (float).
- property current_limit: Any
Control the laser diode current limit, in mA (float).
The ouput current is clamped to never exceed
current_limitunder any conditions. Ifcurrent_limitis reduced belowcurrent_setpoint,current_setpointis “dragged” down withcurrent_limit.
- property current_range: Any
Control the laser diode current range (str “HIGH” or “LOW”).
The currents corresponding to current range depend on the model:
LDC500
LDC501
LDC502
HIGH
100mA
500mA
2000mA
LOW
50mA
250mA
1000mA
- property current_setpoint: Any
Control the laser diode current setpoint, in mA, when
mode == "CC"(float).
- property enabled: Any
Control whether the laser diode current source is enabled (bool).
- property interlock_closed: Any
Get the status of the interlock, True if closed, False if open. Laser will only operate with a closed interlock.
- property mode: Any
Control the laser diode control mode, (str “CC” or “CP”).
If the laser is on when
modeis changed, the controller performs a bumpless transfer to switch control modes on-the-fly.If
modeis changed from “CC” to “CP”, the present value of the photodiode current (or equivalently optical power) is measured and the CP setpoint is set to this measurement. If the measured photodiode current or power exceed the setpoint limit, an error is thrown.If the
modeis changed from “CP” to “CC”, the present value of the laser current is measured and the CC setpoint set to this measurement. Note that, by hardware design, the measured laser current can never exceed the setpoint limit.
- property modulation_bandwidth: Any
Control the laser diode modulation bandwidth (str “HIGH” or “LOW”).
The analog modulation input is DC coupled, with the –3 dB roll-off frequency dependent on
modeandmodulation_bandwidth:CC
CP
LOW
10kHz
100Hz
HIGH
1.2mhz
5kHz
- property modulation_enabled: Any
Control whether analog modulation of the laser diode is enabled (bool)
- property voltage: Any
Measure the laser diode voltage, in V (float).
- property voltage_limit: Any
Control the laser diode voltage limit, in V (float strictly in range 0.1 to 10). The current source turns off when the voltage limit is exceeded.
- class pymeasure.instruments.srs.ldc500series.LDC500SeriesPD(parent, id, **kwargs)
Bases:
ChannelLDC500Series channel for control of the photodiode (PD).
- property bias: Any
Control the photodiode bias (float strictly in range 0 to 5).
- calibrate(power)
Set the photodiode responsivity,
responsivity, via a real time power measurement.- Parmeters:
power (float): Real time power measurement, in mW.
- property current: Any
Measure the photodiode current, in uA (float).
- property current_limit: Any
Control the photodiode current limit, in uA, when
mode == "CP"andphotodiode_units == "uA"(float).
- property current_setpoint: Any
Control the photodiode current setpoint, in uA, when
mode == "CP"andphotodiode_units == "uA"(float).
- property power: Any
Measure the photodiode power, in mW (float).
- property power_limit: Any
Control the photodiode power limit, in mW, when
mode == "CP"andphotodiode_units == "mW"(float).If
power_limitis reduced belowpower_setpoint,power_setpointis “dragged” down withpower_limit.
- property power_setpoint: Any
Control the photodiode optical power setpoint, in mW, when
mode == "CP"andphotodiode_units == "mW"(float).
- property responsivity: Any
Control the photodiode responsivity, in uA/mW (float).
Changing
responsivity, either directly or viacalibrate, indirectly changes:current_setpointandcurrent_limitifunits == "mW"power_setpointandpower_limitifunits == "uA"
This is to maintain the relationships:
current_setpoint = power_setpoint x responsivitycurrent_limit = power_limit x responsivity
- property units: Any
Control the CP photodiode units (str “mW” or “uA”).
- class pymeasure.instruments.srs.ldc500series.LDC500SeriesTEC(parent, id, **kwargs)
Bases:
ChannelLDC500Series channel for control of the thermo-electric-controller (TEC).
- check_temperature_stability(tolerance=0.1, period=10, points=64)
Determine whether the temperature is stable at the temperature setpoint over a specified period.
- Parameters:
tolerance – Maximum allowed deviation from temperature setpoint, in degrees Centigrade. (default:
0.1)period – Time period over which stability is checked, in seconds. (default:
10)
- Returns:
True if stable, False otherwise.
- property current: Any
Measure the TEC current, in A.
- property current_limit: Any
Control the TEC current limit, in A (float strictly in range -4.5 to 4.5).
If
current_limitis reduced belowcurrent_setpoint,current_setpointis dragged down withcurrent_limit.
- property current_setpoint: Any
Control the TEC current setpoint, in A, when
mode == "CC"(float).
- property enabled: Any
Control whether the TEC current source is enabled (bool).
- property mode: Any
Control the TEC control mode (str “CC” or “CT”).
If the TEC is on when
modeis changed, the controller performs a bumpless transfer to swich control modes on-the-fly.If
modeis changed from “CT” to “CC”, the present value of the TEC current is measured, and the CC setpoint is set to this measurement.If
modeis changed from “CC” to “CT”, the present value of the temperature sensor is measured, and the CT setpoint is set to this measurement.
- property resistance_high_limit: Any
Control the TEC high resistance limit, in kΩ (float).
- property resistance_limits
Control the TEC resistance limits, in kΩ (two-tuple of floats).
- property resistance_low_limit: Any
Control the TEC low resistance limit, in kΩ (float).
- property resistance_setpoint: Any
Control the TEC resistance setpoint, in kΩ (float).
- property temperature: Any
Measure the TEC temperature, in °C (float).
- property temperature_high_limit: Any
Control the TEC high temperature limit, in °C (float).
- property temperature_limits
Control the TEC temperature limits, in °C (two-tuple of floats).
- property temperature_low_limit: Any
Control the TEC low temperature limit, in °C (float).
- property temperature_setpoint: Any
Control the TEC temperature setpoint, in °C (float).
- property thermometer_raw: Any
Measure the raw thermometer reading, kΩ, V, or μA depending on the sensor type (float).
- property thermometer_type: Any
Control the temperature sensor type (ThermometerType enum).
- property voltage: Any
Measure the TEC voltage, in V (float).
- property voltage_limit: Any
Control the TEC voltage limit, in V (float strictly in range -8.5 to 8.5).
- wait_for_temperature_stable(tolerance=0.1, period=10, should_stop=<function LDC500SeriesTEC.<lambda>>, timeout=60)
Block the program, waiting for the temperature to stabilize at the temperature setpoint.
- Parameters:
tolerance – Maximum allowed deviation from temperature setpoint, in degrees Centigrade. (default:
0.1)period – Time period over which stability is checked, in seconds. (default:
10)should_stop – Function that returns True to stop waiting. (default:
<function LDC500SeriesTEC.<lambda> at 0x76f1efc77a60>)timeout – Maximum waiting time, in seconds. (default:
60)
- Returns:
True when stable, False if stopped by should_stop.
- Raises:
TimeoutError – If the temperature does not stabilize within the timeout period.
- class pymeasure.instruments.srs.ldc500series.ThermometerType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
IntEnumEnumerator of thermometer types supported by the SRS LDC500Series. (NTC - negative temperature coefficient; RTD - Resistance temperature detector)
Members:
NTC10UA : 10 µA excitation for NTC thermistor.
NTC100UA : 100 µA excitation for NTC thermistor.
NTC1MA : 1 mA excitation for NTC thermistor.
NTCAUTO : Automatically detects optimal excitation for NTC.
RTD : Typically Pt-100 or other PTC sensors
LM335 : LM335 and compatible temperature-to-voltage transducers.
AD590 : AD590 and compatible temperature-to-current transducers.