QuickstartΒΆ

Using slave is easy. The following example shows how device drivers are used. We are going to implement a short measurement script, which initializes a Stanford Research SR830 lock-in amplifier and performs a measurement.

The first step is to initialize a transport to the lock-in amplifier. Here we are using pyvisa to establish a GPIB transport with the device at primary address 8.

from slave.transport import Visa
transport = Visa('GPIB::08')

Slave does not communicate directly with the device. It uses an object referred to as transport object for the low level communication (see The transport object for a detailed explanation).

In the next step, we construct a SR830 instance and inject the pyvisa transport.

from slave.srs import SR830

lockin = SR830(transport)

This creates a fully functional, high level interface to the lock-in amplifier. Before we start the actual measurement, we’re going to configure the lock-in.

lockin.frequency = 22.08  # Set the internal frequency generator to 22.08 Hz
lockin.amplitude = 5.0    # Use an amplitude of 5 V
lockin.reserve = 'high'

And finally measure 60 times, waiting one second between each measurement, and print the result.

import time

for i in xrange(60):
    print lockin.x
    time.sleep(1)

Putting it all together, we get a small 13 line script, capable of performing a complete measurement.

#!/usr/bin/env python
import time

from slave.srs import SR830
from slave.transport import Visa


lockin = SR830(Visa('GPIB::08'))
lockin.frequency = 22.08
lockin.amplitude = 5.0
lockin.reserve = 'high'
for i in xrange(60):
    print lockin.x
    time.sleep(1)