We used a red pitaya to lock a Mephisto laser to a reference cavity. Once the TEM00 mode is within the Mephisto's piezo's scanning range, a python script will automatically lock the laser to the reference cavity. The system held lock for over 30 minutes and was only unlocked when we disconnected the computer from the red pitaya to run other tests. We successfully locked and unlocked the laser from the cavity several times and the locking script worked every time. The lock acquisition is nearly instantaneous upon initiating the python script.
Chris also successfully ran the script and locked the cavity, and doing so doesn't require much know-how about the specific setup. The script automatically calculates the PID set point and the initial voltage to feed the piezo when initiating a lock.
The feedback loop is implemented as just an integrator, and could certainly be tuned up further. We have not yet implemented slow feedback control to the laser's temperature, so the laser will eventually loose lock if its frequency drifts relative to the cavity's by more than about 80 MHz.
I uploaded the locking script to a github repo for the lab. It should be generally useful for PDH locking optical cavities with FPGAs.
Attached files show the curve fit used to calculate the PID set point and initial piezo voltage, the locked TEM00 mode on a camera, and a schematic of the controls scheme.