Resources for operating the LAPPD test stand at Fermilab¶
The LAPPD test stand is located in the dark chamber at Lab6 in Fermi village. It consists of a darkbox containing the LAPPD and a motorized optical setup which can accommodate either a LED or a laser source and which collimates their beams onto the LAPPD surface. The motor can be interfaced via the software package C3P0 which is already installed on the computer located directly next to the darkbox.
C3P0 - Basic communication with the hardware¶
The C3PO framework lets users communicate with hardware components by abstracting them into process variables (PV). This way, the end user does not have to worry about the device drivers or how to interface with the hardware components. Process Variables can be written to (i.e. when setting an actuator position) or read from (i.e. reading a voltage). The names of PV names are generally structured in the format
<instrument name>.<function>, e.g.
k2410.rcurr would be the PV for reading a current from a Keithley 2410 picoammeter.
When starting the C3P0 software, one should execute the following commands to setup the environment
./generatePVlist.py ./Pvs_Defs_user ./SSLs232.py SSLs232_0 ./SSLgpibAg2050.py SSLlanGPIB_1
The user then communicates with the PVs with the help of python scripts. The python script to read a PV is
rpv.py and the one to write to a PV is
wpv.py. In order to move the actuator position to an x-position of 100 mm, y-position of -100mm, and read out the current position, one would for example do
./wpv.py xtr.mvabs 100 ./wpv.py ytr.mvabs -100 ./rpv.py xtr.mposn ./rpv.py ytr.mposn
In order to calibrate the (x/y = 0/0) position, one needs to execute the following commands when the setup is currently at the (x/y = 0/0) position:
./wpv.py xtr.mcal 0 ./wpv.py ytr.mcal 0Other useful commands include (for a more detailed description of the software you should review the attached pdf-document ExperimentControl.pdf)
- Initialize the motor driver DCH:
./wpv.py dch.init 1
- Clear all currently existing locks:
./wpv.py lock.clearall 1
- Read a current from the reference picoammeter:
- Set voltage limit for LED:
./wpv.py LEDpwr.ulim 4
- Set voltage of LED:
./wpv.py LEDpwr.svolt 1
- Stop the daemon for SSLs232_0:
./wpv.py daemon.stop SSLs232_0
Performing a scan¶
To perform a scan of the whole surface e.g. in terms of Quantum Efficiency, one should first adapt the desired configuration for the scan (start point, end point, spacing, ...) in a text file and write the configuration parameters to the database by executing the script
setupScan.py. An exemplary text file with such setup parameters is part of the standard installation of C3P0 and called
setupScanD1. One would hence type
setupScan.py setupScanD1 before actually starting the scan. This setup procedure has to be done before every scan.
The actual scan in the case of a full 2D scan can then be started by typing
./wpv.py scanD2.Trg 1