Science Operations

Operating TMS (updated)

Update (Oct 12, 2023):

Starting in 2023B, a software service running in the background will automatically switch between FPIA and TMS. After the observer has started the TMS active loop, they will not need to interact with TMS again until the LBC observations are finished. When they run FPIA (dofpia or dohybrid), TMS will automatically be stopped, and when FPIA converges successfully, a TMS reference will automatically be taken and the TMS loop resumed.

In this mode of operation, FPIA should no longer be run from the IDL window, but from a terminal window at the Linux shell prompt, using a slightly modified command syntax. The old syntax used commas to separate keywords, e.g. IDL> dofpia, /x2, whereas the new syntax uses the double-dash to indicate keyword options, e.g. obs1> dofpia --x2

This web page was updated on October 12, 2023 to reflect the new procedure with the background FPIA/TMS service.

Update (Sep 4, 2024):

Following the upgrade of the remote and on-site workstations, some paths have changed. Also the TMS software has been updated to simplify the the use of previous references. The page has been updated to reflect these changes.

Quick Review

  1. Turn on the TMS lasers and send an email to telescopework@lbto.org to let everyone know the lasers are ON. Instructions for turning the lasers ON can be found at this link.
  2. Open a terminal window in your partner account on the remote (robs1, robs2) and on-site (obs1-5) workstations. You can run the TMS software from this terminal window.
  3. The TMS scripts are in the path for all partner accounts on these workstations, so to start the program the user need only type the program name from any directory.
    1. Summary of available programs and their function:
      1. tms_loop   — runs the TMS correction loop (see 4, below, for more details)
      2. lbc_set_tms_offset   — sets a new TMS reference manually (see 5a, below)
      3. watch_tms_left, watch_tms_right — monitors TMS corrections (see 7, below)
      4. dataloop — testing/reporting info on raw etalon length (for troubleshooting – will be added to that section)
      5. tmsplot — plot TMS results
    2. For reference, the full path to the TMS scripts is:
      1. /lbt/lbto/supportscripts/MetrologySupport
  4. Start the active TMS loop from your working directory by giving the full path (above) followed by tms_loop.py and optional arguments as described below:
    1. tms_loop for binocular operation (the default)
    2. tms_loop -s 0 for operation only with LBCB on SX
    3. tms_loop -s 1 for operation only with LBCR on DX
  5. Once the active loop has been started, it does not need to be stopped (by control-C) until the end of LBC operations. A background task will handle both stopping the loop before dofpia or dohybrid is run and setting a new reference upon successful completion of dofpia or dohybrid. Wait until the reference has been taken before playing the copointing script.
    1. But if you have not started the active loop yet, and still want to take a reference, the command is:
      1. lbc_set_tms_offset -s 2 to set a new reference on both sides
      2. lbc_set_tms_offset -s 0 to set a new reference on SX only
      3. lbc_set_tms_offset -s 1 to set a new reference on DX only
  6. If you want to position M1 to a previous reference, helpful for reducing time-to-collimate at the beginning of the night (see Using the last good reference as a starting point for guidance on using a previous reference), then the syntax is as follows:
    1. tms_loop for binocular operation using the most recent previous references on SX and DX.
    2. References are stored in /lbt/data/share/tms/refs/<UTdate> — the first one will have a name like ***-<UTdate>.dat and subsequent ones will be numbered as ***-<UTdate>-#.dat, with the most recent reference having the largest index number.
    3. tms_loop.py -s 1 –ref ‘dx:20240529-3’ will run the active loop only on DX and use the 4th DX reference taken on UT 20240529
    4. tms_loop.py –ref ‘dx:20240529’ will run the active loop on both sides but use the latest reference on SX and the first reference from 20240529 on DX.
  7. Start “watcher” scripts. These are helpful because they show the TMS corrections that are being sent (labelled active) or reasons why TMS corrections are not sent (mirror or telescope moving, shutter open). See the Notes 10a and 10b below. Run each in its own, small, terminal window:
    1. watch_tms_left
    2. watch_tms_right
  8. (Optional) Start LBTplot to monitor TMS corrections
    1. LBTplot and look for SXTMS and DXTMS tabs near the top right (LBTplot does not currently run from obs1-5, 17-Sep-2024).
  9. From here on, observe as usual with the LBCs, with the exception that dofpia/dohybrid will now be run from the Linux terminal window. The steps are outlined below for convenience:
    1. Slew to the copointing target for your first field. Stop the OB and wait for a TMS update before proceeding either:
      1. to take the pair of copointing images (from which you can assess image quality); or
      2. to run FPIA.
    2. run dofpia if necessary (TMS should hold collimation over slews and over time, so dofpia may not be necessary).
      1. The following examples are meant to illustrate the syntax. See Observing Procedure –> Collimating for all of the options which dofpia and dohybrid can take.
        • dofpia --askme --x2
        • dohybrid
        • dofpia --backout
    3. In IRAF, run lbcrangebal to correct pointing & copointing
      1. Note that with TMS running, these pointing and copointing corrections may be larger than normal (see the Notes section below).
  10. Slew to your target. Stop the OB and wait for a TMS update before starting the first exposure (look in the “watcher” script output for the first line marked “active”). Once you see the update, play the OB.
  11. Notes:
    1. WARNING #1: Wait until TMS is finished taking a reference before playing a new OB.
    2. WARNING #2: After you slew to a new field, always wait for a new TMS update before starting to take an exposure.
    3. To know whether TMS is sending updates, look for a new line with “active” printed to the terminal by the ./watch_tms_[left,right].py script
    4. For very low elevation targets, it is better to collimate at higher elevation where the seeing is better (~65-75 deg, though not > 80 deg because, here, rotational trailing may be an issue). Then set the reference and run the TMS loop to hold the collimation as you slew to the lower elevation target.
  12. After finishing the LBC observations:
    1. Stop the TMS loop (control-C in the terminal window where you launched tms_loop.py).
    2. Turn the TMS lasers off and send an email to telescopework@lbto.org to let everyone know that the lasers are now off.

Using the last good reference as a starting point

Be aware that an old reference will not work if the channels used for it do not match the currently available channels. This may result:

  1. if VXWorks has gone down, causing a mirror panic (a special case of mirror panic).
  2. If work near the primary has accidentally disturbed one or more collimators.
  3. from damage to any of the fibers

Troubleshooting

  1. If there are problems taking the reference:
    1. Check for missing channels. TMS requires at least 6 channels, at least 1 and no more than 4 on each of the 3 retroreflectors that are mounted on the LBC.
      1. Missing channels may be due to a misalignment. This has been known to occur after power bumps when the mirror goes down. If this is the cause, then the collimators will need to be realigned during the day.
      2. Missing channels may also result from system malfunction. Recent cases like this have been resolved by power cycling the TMS cabinet.
  2. If no corrections are being sent, check for missing channels in the screen output from tms_loop.py.
    1. But be aware that, TMS will not send corrections when:
      1. the LBCs are exposing;
      2. telescope is slewing;
      3. mirrors are moving;
      4. dofpia or dohybrid is being run.
  3.  The first pointing/copointing corrections after setting the collimation from an old reference may be large (Large enough to violate or warn about violating the copointing limit). If in doubt, retake the copointing pair (when this has happened, the repeated images have shown that the pointing and copointing corrections were made).
  4. The tmsfpia synchronization service that runs on the dms machine should restart automatically in the event of a crash, but sometimes it does not.
    1. To check that this service is running, type (from <partner>@robsN or <partner>@obsN):
      1. nc dms.mountain.lbto.org 39999
        1. If it reports “Ncat: Connection refused.”, then the service will need to be reset.
        2. If it hangs, then the service is up and you can enter Cntl-D to return to the prompt, or type “state query” for additional information and then Cntl-D.
    2. To restart the tmsfpia sync service, the support staff will need to:
      1. login to the dms machine: ssh swg@dms.mountain.lbto.org
      2. at the terminal prompt, type: sudo systemctl restart lbto_tmsfpiasync
  5. Sometimes (rarely) the tmsfpia sychronization service only needs to be reset.
    1. To reset the tmsfpia sync service:
      1. type nc dms.mountain.lbto.org 39999
      2. type __reset__  (these are double-underscores) and press the enter key
      3. it should echo with “done”

For more details

More detailed information about TMS operation can be found at this wiki page and links therein. This page provides the syntax for running the TMS loop in engineering modes.

PSF GUIs (with TMS corrections labelled)