QCoDeS example with Thorlabs KLS1550 laser source

(same .dll as for KLS101, KLSnnn)

Initialisation

Import all required libraries for driving the devices.

[1]:
import qcodes as qc
from qcodes_contrib_drivers.drivers.Thorlabs.Kinesis import Thorlabs_Kinesis
from qcodes_contrib_drivers.drivers.Thorlabs.KLS1550 import Thorlabs_KLS1550

Create an instance of Thorlabs_Kinesis which is a wrapper for the device dll (passed as an argument to the object) that starts up the Kinesis server. The DLL needs be installed from https://www.thorlabs.com/software_pages/viewsoftwarepage.cfm?code=Motion_Control under “Kinesis software”.

[ ]:
kinesis = Thorlabs_Kinesis("Thorlabs.MotionControl.KCube.LaserSource.dll", sim=False)
print(kinesis.device_list())

Create an instance of Thorlabs_KLS1550 which is the device driver object, opening the device and starting polling (requesting device information) at 200 milisecods loops (must know the serial number shown on the device).

[ ]:
qc.Instrument.close_all()
laser = Thorlabs_KLS1550(
    name="laser",
    serial_number="...",
    polling_speed=200,
    kinesis=kinesis)

Turning the laser output on/off

Set the parameter output_enabled to True for “laser on” and False for “laser off”. Note that the laser will only turn on if the safety switch is also on.

[ ]:
laser.output_enabled.set(True) # laser turns on
[ ]:
laser.output_enabled.set(False) # laser turns off
[ ]:
laser.output_enabled.get() # Check laser output status

Setting the laser output power

Set the laser output power in Watts and get the current power value from the device (also in Watts)

[5]:
laser.power.set(1e-3) # Set power to 1 mW
[ ]:
laser.power.get() # Gets laser power reading

Disconnecting

Disconnect the device from the driver (but not the server, it still shows under device_list), stopping polling and closing the device (both for Kinesis server and qcodes).

[6]:
laser.close()