![]()  | 
  
    cacao
    Release 0.1.03-dev
    
   Compute And Control For Adaptive Optics 
   | 
 
Start aolconf with loop number and loop name (you can ommit these arguments when launching the script again):
The loop name (testsim in the above example) will both allocate a name for the loop and execute an optional custom setup script. The software package comes with a few such pre-made custom scripts for specific systems / examples. When the -N option is specified, the custom setup script ./setup/setup_<name> is ran. The script may make some of the steps described below optional.
You can check the current loop number and name settings with:
The script can also launch a pre-written CPU/OS configuration script named ./aocscripts/cpuconfig_<LOOPNAME> :
There are four options for setting up the DM:
Before choosing an option, select if the DM to be controlled is MODAL or ZONAL. A zonal DM is one where the DM pixel locations map to physical actuator locations on the DM, allowing spatial filtering when creating control modes. With a zonal DM, each pixel of the DM map corresponds to a wavefront control mode, and spatial filtering functions are turned off.
Options [C] and [D] are MODAL options, as the DM does not represent physical spatial actuators. These options build a virtual DM which controls another DM.
S command in Top Menu screen). You should see its x and y size in the two lines below. If not, the DM does not exist yet (see next section).nolink in Top Menu screen). This command automactically sets up the following symbolic links:M in Top Menu screen). The dm performs the symbolic links to the DM channels.S command in Top Menu screen).dmxs and dmys commands.Top Menu screen)initDM command in the Top Menu. You may need to run the stopDM command first.nolink in Top Menu screen). This command automactically sets up the following symbolic links:M in Top Menu screen). The dm performs the symbolic links to the DM channels.In this mode, the AO loop controls a virtual DM. The virtual actuators are correspond to modes controlling the zero point offset of another loop. In this section, I assume that loopA is the main loop (directly controls a physical DM) and that loopB is the virtual loop (this is the loop we are setting up).
DMmodeZ in Top Menu screen)S command in Top Menu screen). This is the DM index for loopB.dmolink in Top Menu screen).Top Menu screen)initDM command in the Top Menu.M in Top Menu screen). The dm performs the symbolic links to the DM channels.In this mode, the AO loop controls a virtual DM. The virtual actuators correspond to modes controlling another DM stream. In this section, I assume that loop A is the main loop (directly controls a physical DM) and that loop B is the virtual (higher level) loop.
S) for loop Bdmxs in Top menu)dmys in Top menu)initDM)M in Top Menu screen). The dm performs the symbolic links to the DM channels.Commands to the loop B DM should now propagate to modal commands to loop A.
It is possible to add a zero point offset to mode D. Every write to the loop B's modal DM then generate both a write to loop A's DM (described above) and a write to the reference of a wavefront sensor (presumably loop A's wavefront sensor). This optional feature is refered to as a CPU-based WFS zero point offset.
To enable this feature, add between steps 4 and 5:
You can (Re-)Start DM comb to re-initialize arrays and links ('stopDM' and 'initDM' commands in Top Menu screen). The initDM command will
wfs to Loop Configuration screen). Select the WFS shared memory stream.An aosetup script may be used to perform all these operations. Inspect the content of directory aosetup to see such scripts. You may use or modify as needed. If you use a aosetup script, execute it from the working directory, and then start aolconf: