Skip to main content

Lab Automation

Automating Quantum Photonic Lab Setups

Why Lab Automation?

When we say "lab automation," we really mean two different things. Firstly, the ability to connect to our hardware remotely from computers that may not have the best specs and are not necessarily in the lab. Secondly, the actual automation of routine tasks and testing.

In the former case, we're providing common interfaces to instruments found in multiple setups within a laboratory. Additionally, since the devices are made available across a network, they can be used remotely. On client computers, one single program can be installed that provides access to many remote instruments, each with their own dependencies, without having to install their respective softwares on the computer controlling the test.

In the latter case, data taking routines can be set up to run overnight, or remotely, when a researcher doesn't need to be physically present in the lab.

During unprecedented times like the coronavirus pandemic, lab automation has the ability to keep research going even when researchers are unable to be physically present in the lab (perhaps due to illness or when lab capacities are reduced). Additionally, by standardizing tests and hardware driver interfaces, we can reduce human error in data acquisition and reduce the amount of time it takes for new recruits to become familiar with a test setup or the data acquisition process.

Thorlabs Kinesis (Python Wrapper)

ThorLabs Kinesis provides a C API (in the form of a Windows DLL) for interacting with hardware that is physically connected to a given computer. Since Python can be extended by C, it can be used to wrap the DLL, allowing much easier-to-write Python scripts to control ThorLabs drivers and accompanying hardware.

Our fork is based on an existing repository and follows the same convention in wrapping drivers; we have simply contributed some additional drivers, extending its capabilities.

Thorlabs Kinesis on GitHub


PyroLab is a framework for using remote lab instruments as local resources from any computer, built on Pyro5.

This project aims to allow all laboratory instruments to be accessed as local objects from a remote machine. Many machines these days support network access through protocols such as VISA. However, there are instruments that don't natively support network access, such as those required to be connected by a USB cable (or similar). PyroLab allows these to be wrapped with a Pyro5 interface, exposing them as network devices. PyroLab's instrument library also contains some instruments that are already internet-capable and don't rely on Pyro5. That's alright; we're just trying to create a minimal-dependency, one-stop-shop for laboratory instruments!

In addition to hardware devices, more powerful computers could be set up to provide remote resources for intense computational tasks, relieving the strain on your local machine. This allows researchers to use lower-capability laptops to perform experiments and analyze data without having to hookup to unwieldy lab equipment, or even be present in the lab!

PyroLab on GitHub


Autogator is a fusion of hardware and software, the product of which is an automated setup for coupling light into, and testing, photonic integrated circuits with grating coupler. Designed to be used with motorized stage axis, it can optimize the position of the chip for maximal coupling efficiency. Given files dictating the positions of circuits on the chip (usually given in GDS coordinates), Autogator can automate the process of collecting data and moving between devices. It allows for custom test routines to be written, and similar circuits to be grouped in a batch and assigned various tests.

Included with these automated capabilities is a polished graphical user interface (GUI) that allows manual control of the stage and visual references to the fiber array and chip. Simple tests, such as sweeps, can also be run from the GUI.

Autogator on GitHub