Skip to content

RTC:Configuring and running the AO loop

Olivier Guyon edited this page Feb 18, 2024 · 28 revisions

The visible pyramid AO loop is controlled from the scexao6/scexaoRTC computer, and is running from the directory /home/scexao/AOloop. The loop name is vispyr2, and loop number is 7 (subject to change - check regularly).

1. Initial setup and checks

Upon reboot, the loop should already be setup.

To check if the loop is already set up, run (from anywhere on the system):

cacao-loops

If the loop is already set up, you should see this entry:

LOOP  7 using DM 00 ( 50 x 50 )  NAME: vispyr2
rootdir     : /home/scexao/AOloop/vispyr2-rootdir
Last access script : /usr/local/milk/bin/cacao-fpsctrl-TUI
Last access time   : 2024-02-17 02:37:47.248393258 +0000

If so, then proceed to section 3.

If you do not see this entry, the loop needs to be set up - see section 2.

Check also if ocam2d is not running using the milk-streamCTRL tool.

If ocam2d is not spinning, run:

camstack -s pueo

AO loop conventions:

  • ROOTDIR is /home/scexao/AOloop/vispyr2-rootdir
  • RUNDIR is /home/scexao/AOloop/vispyr2-rootdir/vispyr2-rundir

Logging:

  • logs are written into directory ROOTDIR/logdir, which should be set up to by a sym link to the main computer log directory
  • start cacao-fpsctrl-logtail from ROOTDIR to start logging
  • new instances of milk-fpsCTRL should be started from ROOTDIR, with MILK_FPS_LOGFILE="fpsCTRL.log"

2. Initializing the loop processes

Skip this section is the loop is already set up. Initialization should only be needed after a computer reboot.

Full install from scratch

This step is only required if ROOTDIR is empty or if changes in the source code need to be propagated. This step is NOT required after a computer reboot.

cd AOloop
cacao-loop-deploy scexao-vispyr-bin2
# Equivalent to :
# CACAO_LOOPNUMBER=7 CACAO_DMINDEX="00" CACAO_LOOPNAME="vispyr2" cacao-loop-deploy -c scexao-vispyr-bin2
# cacao-loop-deploy -r scexao-vispyr-bin2

Full instructions are on step 1 of scexao cacao example page.

Deploy processes

To (re)start processes, from ROOTDIR, run :

$ cacao-setup vispyr2

From milk-fpsCTRL you should see a list of processes and tasks. The left PID column should be green (process configuration running), and the right PID column should be blank (0s) as the processes are not yet running.

3. Running the loop

The loop will be controlled from two separate TUIs:

fpsCTRL TUI:

cd /home/scexao/AOloop/vispyr2-rootdir
cacao-fpsctrl-TUI

Alignment TUI:

cd ~/AOloop/AOloop0
./aolconf -n
# Press ENTER when prompted
# then press A and ENTER

Note that you should not need to interact with the milk-fpsCTRL within the tmux session. You can start your own milk-fpsCTRL instance for manual control.

Loop is controlled from a single VNC screen. The recommended layout is showed below.

Screenshot from 2023-06-26 12-47-47

Calibration and setup

Follow the instructions on cacao scexao cacao example page, from steps 3 to step 7 (included). Note, on step 3, that you need to block the optical beam during the WFS dark acquisition.

The cacao-aorun commands should be run from the ROOTDIR directory. Within the VNC control screen, you can use the terminal "cacao scripts" at the lower right to enter the commands, and the "Data inspection" terminal to inspect files as needed.

Operating/tuning the loop

Controls

Making sure the required processes are running

First, make sure all processes are running. You can check from the milk-fpsCTRL screen. Go to the root (click left until only the list of processes is visible). Each process has 2 numbers: control process PID (left) and run process PID (right). If the PID is active, then it is green. If it has crashed it is in red.

The following processes should be on (both PIDs highlighted in green) for the loop to run :

  • acquWFS-X : WFS acquisition
  • wfs2cmodeval-X : WFS to mode values
  • mfilt-X : modal control
  • mvalC2dm-X : mode values to DM

If the configuration process is not running (left PID not green), navigate to it (up down arrows) and type SHIFT+o in milk-fpsCTRL.

If the run process is not running (right PID not green), navigate to it (up down arrows) and type SHIFT+r in milk-fpsCTRL, or, preferably, run the cacao-aorun command to start it, as described in step 8 of the scexao cacao example page.

Controlling the loop

The loop is controlled from the mfilt-X process in milk-fpsCTRL. First, navigate to it (up down arrow) and then expand it (right arrow) to access the parameters. The main controls are :

  • loopON to toggle the loop on and off. Use the space bar to toggle
  • LoopZERO to set the control command to zero. Use it after you have turned the loop off to remove the last correction. Use space bar to run.
  • loopgain to set the loop integrator gain (enter, type value, enter). Values around 0.2 usually work well.
  • loopmult to set the integrator leak (enter, type value, enter). No leak is 1.0. Usually set at 0.98. At every loop iteration, the cumulative command is multiplied by this coefficient.

To apply modal control (applying stronger gain for lower modes) :

$ cacao-aorun-061-setgains 0.8 -f 0.1 -t 1.3

Turning off the loop

To stop the any of these processes, press ctrl-R over the process. It is recommended to stop the processes in the reverse order that they were started.

Alignment

Loop frequency

To change the loop frequency change the pyramid modulation in aolconf > align > pyfr*.

Calibration speckles (astrogrid)

Calibration speckles are generated using astrogrid, which dynamically creates tip and tilt patterns which, when applied to the DM, create copies of the central PSF. This is extremely useful for coronagraphic imaging as a means to calibrate the photometry and astrometry of the star behind the focal plane mask. See Sahoo et al. (2020) for more technical details.

Astrogrid commands are run from the visible pyramid loop scexao6:~/AOloop/AOloop-vispyr/vispyr

⚠️ The AO loop must be running for these scripts to take effect.

~/AOloop/AOloop-vispyr/vispyr $ ./scexao-astrogrid-on <amp>

where the <amp> is modulation amplitude in micron. This uses the default pattern (bin 0 XY grid). To use a different pattern you will have to edit the script manually, or use one of the aliases present in that directory.

To stop the grid

~/AOloop/AOloop-vispyr/vispyr $ ./scexao-astrogrid-off
Clone this wiki locally