Picoscope - syue99/Lab_control GitHub Wiki
Introduction
The picoscope server controls the ps3000/5000 series digital oscilloscope made by picoscope (I believe other series too). We use this server to get feedbacks of photodiodes, voltage, rf signals and etc.
Running the server
There are multiple ways of running LabRAD server. The easiest is to run this python dirc/picoscope_server.py. At the end of this script, you will see
if __name__ == "__main__":
from labrad import util
util.runServer(PicoscopeServer())
Structures
The Picoscope server inherent from the hardwareinterfaceserver, which is a template for writing simple hardware servers such as scopes, motors, (wavemeters?). It basically try to use the manufacturers' api to load and select hardware instruments, and then to do simple tasks using the API.
Note that somehow the scopes 3020D cannot run ps.enumerateUnits(), which is a function to load available hardware's serial numbers. Thus we manually use a list to put the serial number in the server so that it can connect with the server.
Some of the key Methods (the number in the bracket is the method number in the server menus)
- (3)set_channel: Set the config of a channel (e.g. coupling, voltage_range, attenuation)
- (4)set_sampling_frequency
- (5)set_simple_trigger: set trigger with source and threshold, and a time for timeout in unit of ms
- (10)get_data: get a chuck of data. It calls the ps.getdataV functions with the a parameter set as 5000 (I think it means 5000 points)
- (13)get_single_shot_data: get a single shot data