40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 312 of 344  Not logged in ELOG logo
ID Date Author Typedown Category Subject
  3296   Tue Jul 27 11:24:53 2010 josephbHowToComputer Scripts / Programskilldataviewer script

I placed a script for killing all instances of the dataviewer program on the current computer in /cvs/cds/caltech/scripts/general/.  Its called killdataviewer.  This is intended to get rid of a bunch of zombie dataviewer processes quickly.  These processes get into this bad state when the dataviewer program is closed in any way other than the graphical menu File -> Exit option.

Its contents are very simple:


kill `ps -ef | grep dataviewer | grep -v grep | grep -v killdataviewer | awk '{print $2}'`

  3336   Fri Jul 30 17:54:55 2010 steveHowToVACHow to stop and start slow pumpdown


Bob and Steve closed BS chamber with the help of the manual Genie lift and the pump down started. The PSL shutter was closed and manual block was placed in the beam path. High voltage power supplies were checked to be off.

Pumping speed ~ 1 Torr/min was achieved at  1/8 of a turn opened roughing valve RV1

 We are at 370 Torr at 9 hrs of  pumping. RV1 is opened to ~ 3/8 turn orifice. We are using one roughing pump RP3  and butterfly valve is in place.


How to stop: 1, close RV1 by torque wheel  2, close V3 from MEDM screen  3, turn off RP3 roughing from MEDM screen  4, disconnect metal hose to oily pump

after butterfly valve. This KF-45 O-ring seal should be kept clean 5, place/close  45 mm cover blanks at the end of the hose and and on the 5" nipple.


How to start: 1, remove blanks from  hose and nipple 2, reconnect roughing pump hose to RV1 nipple  3, turn on PR3  4, open V3  5, open RV1 by wrench to ~3/8

6, fine tune RV1 opening to 1 Torr/min


ESSENTIAL: one operator has to be present when oilly roughing pump is connected to the vac. envelope

  3338   Fri Jul 30 22:07:42 2010 KojiHowToVACHow to stop and start slow pumpdown

Kiwamu and Koji

The rough pumping was stopped at 230mmTorr. We are going to resume the pumping tomorrow morning.

  • RV1 was closed with torque wheel.
  • V3 was closed from MEDM
  • RP3 wss stopped from MEDM
  • The quick coupling to RP3 was disconnected.


    How to stop: 1, close RV1 by torque wheel  2, close V3 from MEDM screen  3, turn off RP3 roughing from MEDM screen  4, disconnect metal hose to oily pump

after butterfly valve. This KF-45 O-ring seal should be kept clean 5, place/close  45 mm cover blanks at the end of the hose and and on the 5" nipple. 

    How to start: 1, remove blanks from  hose and nipple 2, reconnect roughing pump hose to RV1 nipple  3, turn on PR3  4, open V3  5, open RV1 by wrench to ~3/8

6, fine tune RV1 opening to 1 Torr/min

ESSENTIAL: one operator has to be present when oilly roughing pump is connected to the vac. envelope

  3407   Thu Aug 12 11:59:31 2010 kiwamuHowToCDSset up ntp daemom

(sad story)

When I was working on a new front end machine c1sus, I found that make command didn't run and gave the following message.

      "make:warning:clock skew detected.Your build may be incomplete"

This was caused by a clock difference between the nfs (nodus) and the terminal machine (c1sus).

I had to set up ntp daemon to synchronize them. Here is a procedure to set up it


(how to)

- log in to a front end machine

              ssh c1sus

- enable the ntp daemon

              sudo ntsysv

- configure the ntpd

              vi (emacs)  /etc/ntp.conf

- below is the contents I wrote on ntp.conf

             server  minpoll 4 maxpoll 4 iburst

      driftfile /var/lib/ntp/drift

 - let the daemon run
            sudo service ntpd start
- check it if it's running
             ntpq -p
  3491   Mon Aug 30 23:21:36 2010 ranaHowToPSL2W NPRO Mount designed with emachineshop.com software

To test out this website - emachineshop.com, Jenne and I are designing some of the mounts for the new beam height.


It took me a few hours to figure out how to do it, but the software is easy enough for simple stuff. This is a brass mount with M4 clearance holes which are countersunk and a lip so that it can be dogged down to the table.

  3503   Wed Sep 1 08:36:59 2010 KojiHowToPSL2W NPRO Mount designed with emachineshop.com software

1. I can not see whether the attaching surface is flat or not.
It should have ~1mm step to avoid "the legs" of the laser at the four corners.
Otherwise we will have ~0.5mm space between the block and the laser
and will squish this gap by the screws => cause the deformation of the block and the laser.

2. The countersinks for the M4 screws can be much deeper so that we can use the existing M4 screws.
In any case, the long M4 screws are not rigid and also not common.


To test out this website - emachineshop.com, Jenne and I are designing some of the mounts for the new beam height.


It took me a few hours to figure out how to do it, but the software is easy enough for simple stuff. This is a brass mount with M4 clearance holes which are countersunk and a lip so that it can be dogged down to the table.


  3536   Tue Sep 7 20:44:54 2010 YoichiHowToCOMSOL TipsCOMSOL example for calculating mechanical transfer functions

I added COMSOL example files to the 40m svn to demonstrate how to make transfer function measurements in COMSOL.


The directory also contains an (incomplete) explanation of the method in a PDF file.

  3652   Tue Oct 5 16:30:00 2010 josephb, yutaHowToCDSScreen settings and medm screens for new system

You can find the sitemap medm screen in


The settings for the screens were last saved by burt in the original system on Sept 29, 2010 at 11:07.  So go to the


directory.  You can grep for the channels in the files in this directory.

You can also then use the autoBurt.req file in the /opt/rtcds/caltech/c1/target/sysname/sysnameepics (c1sus/c1susepics) to backup the settings entered.  Save to the /opt/rtcds/caltech/c1/target/snapshots directory for now.



  3658   Wed Oct 6 11:03:51 2010 josephb, yutaHowToCDSHow to start diaggui for right now

I'm hoping to get a proper install this week done, but for now, this a stop gap.

To start diagnostic test tools, go to rosalba.  (Either sit at it, or ssh -X rosalba).

cd /opt/apps

type "bash", this starts a bash shell

source gds-env.bash


 --------- Debugging section ------

If that throws up errors, try looking with "diag -i" and see if there's a line that starts with nds.  In the case last night, Alex had not setup a diagconf configuration file in the /etc/xinetd.d directory, which setups up the diagconf service under the xinit service.  To restart that service (if for example the nds line doesn't show up), go to /etc/init.d/ and type "sudo xinit start" (or restart).

Other problems can include awg and/or tpman not running for a particular model on the front end machine.  I.e. diag -i should show 3 results from (c1x02, c1sus, c1mcs) at the moment , for both awg and tp.  If not, that means awg and tpman need to be restarted for those.

These can be started manually by going to the front end, to the /opt/rtcds/caltech/c1/target/gds/bin/ directory, and running awgtpman -s sysname (or in the case of IOP files [c1x02, c1x03, etc], awgtpman -s sysname -4.  Better is probably to run the start scripts which live /opt/rtcds/caltech/c1/scripts/ which kills and restarts all the process for you.



  3661   Wed Oct 6 15:56:14 2010 josephbHowToCDSHow to load matrices quickly and easily

Awhile ago I wrote several scripts for reading in medm screen matrix settings and then writing them out.  It was meant as kind of a mini-burt just for matrices for switching between a couple of different setups quickly.

Yuta has expressed interest in having this instruction available.

In /cvs/cds/caltech/scripts/matrix/ there are 4 python scripts:

saveMatrix.py, oldSaveMatrix.py, loadMatrix.py, oldLoadMatrix.py

The saveMatrix.py and loadMatrix.py are for use with the current front end codes (which start counting from 1), where as the old*.py files are for the old system.

To use saveMatrix.py you need to specify the number of inputs, outputs, and the base name of the matrix (i.e. C1:LSP-DOF2PD_MTRX is the base of C1:LSP-DOF2PD_MTRX_0_0_GAIN for example), as well as an ouptut file where the values are stored.

So to save the BS in_matrix setting you could do (from /cvs/cds/caltech/scripts/matrix/)

./saveMatrix.py -i 4 -o 5 -n "C1:SUS-BS_TO_COIL_MTRX" -f -d ./to_coil_mtrx.txt

The -i 4 indicates 4 inputs, the -o 5 indicates 5 outputs, -n "blah blah" indicates the base channel name, -f indicates a matrix bank of filters (if its just a normal matrix with no filters, drop the -f flag), and -d ./to_coil_mtrx.txt indicates the destination file.

To write the matrix, you do virtually the same thing:

./loadMatrix.py -n "C1:SUS-PRM_TO_COIL_MTRX" -f -d ./to_coil_mtrx.txt

In this case, you're writing the saved values of the BS, to the PRM.  This method might be faster if you're trying to fill in a bunch of new matrices that are identical rather than typing 1's and -1's 20 times for each matrix.

I'll have Yuta add his how-to of this to the wiki.

  3708   Wed Oct 13 18:01:43 2010 yutaHowToCDSeditting all the similar medm screens

(Joe, Yuta)

Say, you want to edit all the similar medm screens named C1SUS_NAME_XXX.adl.

1. Go to /opt/rtcds/caltech/c1/medm/master and edit C1SUS_DEFAULTNAME_XXX.adl as you like.

2. Run generate_master_screens.py.

That's it!!

  3712   Thu Oct 14 00:54:12 2010 ranaHowToCDSBad PSL Quad, so I edited the SUS MEDM screens

We found today that there was some (unforgivably un-elogged) PSL-POS & PSL-ANG work today.

The wedge splitter at the end of the PSL table is so terribly dogged that it actually moves around irreversibly if you touch the post a little. Pictures have been recorded for the hall of shame. This should be replaced with a non-pedestal / fork mount.

I was so sad about the fork clamp, that I edited the SUS Master screen instead according to Joe-Yuta instructions; see attached.Untitled.png

There's clearly several broken/white links on there, but I guess that Yuta is going to find out how to fix these from Joe in the morning.

  3733   Mon Oct 18 09:01:48 2010 steveHowToGeneralHow not to

This BNC cable is crying for help. Please do not do this to me.  It should be reported  to the  abused center.Throw this cable into the garbage now.

Attachment 1: P1060926.JPG
  3785   Tue Oct 26 12:45:20 2010 yutaHowToCDSmaking a new master file for medm screens

(Joe, Yuta)

 In elog #3708, we showed how to edit all the similar medm screens easiliy.
 But if there are no master files you want to edit in /opt/rtcds/caltech/c1/medm/master/ directory, you can make one.
 Say, you want to edit all the similar medm screens named C1SUS_NAME_XXX.adl.

1. Copy one of C1SUS_NAME_XXX.adl to /opt/rtcds/caltech/c1/medm/master/ directory as C1SUS_DEFAULTNAME_XXX.adl.

2. Go to that directory and

3. Add "_XXX.adl" to file_array list in generate_master_screens.py


5. Run ./generate_master_screens.py

That's all!!

  3787   Tue Oct 26 16:02:55 2010 yutaHowToCDSthings to do after making a new Simulink model


Things to do after making a new Simulink model.

1. ssh c1sus, go to /opt/rtcds/caltech/c1/core/advLigoRTS/ and run
 bash ./makestuff.sh c1SYS

 makestuff.sh does;

  make uninstall-daq-$*
  make clean-$*
  make $*
  make install-$*
  make install-daq-$*
  make install-screens-$*
  sed -i 's/RO \(.*SW[12]R.*\)/\1/' /opt/rtcds/caltech/c1/target/$*/$*epics/autoBurt.req

 If you don't need to re-install DAQs or screens, just run line 2,3,4, and 7 and go to step #6.

2. ssh c1sus, go to /opt/rtcds/caltech/c1/scripts/ and run
 sudo ./startc1SYS

 For now, you have to put "1" in "BURT Restore" in GDS screens with in 5-10 secs.

3. Now the DAQ channel numbers are changed. So, go to /cvs/cds/rtcds/caltech/c1/chans/daq/ and run

 activateDAQ will activate the following DAQ channels for every optics with data rate 2048Hz;

4. Restart fb. See this wiki page.
 Basically you what have to do is kill and restart daqd in fb and restart mx_streams in c1sus.

5. DONE! Burt restore if you want.

6. If you don't need to re-install DAQs or screens;
  a. Go to /opt/rtcds/caltech/c1/target/c1SYS/c1SYSepics and run
    sudo rmmod c1SYSfe

  b. Go to /opt/rtcds/caltech/c1/target/c1SYS/bin/ and run
    sudo insmod c1SYSfe.ko

  3959   Sat Nov 20 01:58:56 2010 yutaHowToCDSeditting RT models and MEDM screens

(Suresh, Yuta)

If you come up with a good idea and want to add new things to current RT model;

 1. Go to simLink directory and open matlab;
    cd /cvs/cds/rtcds/caltech/c1/core/advLigoRTS/src/epics/simLink

 2. In matlab command line, type;
    addpath lib

 3. Open a model you want to edit.
    open modelname

 4. Edit! CDS_PARTS has useful CDS parts.
    open CDS_PARTS
    There are some traps. For example, you cannot put cdsOsc in a subsystem

 5. Compile your new model. See my elog #3787.
 6. If you want to burt restore things;
    cd /cvs/cds/caltech/burt/autoburt/snapshots/YEAR/MONTH/DATE/TIME/

 7. Edit MEDM screens
    cd /cvs/cds/rtcds/caltech/c1/medm

 8. Useful wiki page on making a new suspension MEDM screens;

  4005   Thu Dec 2 00:34:32 2010 ranaHowToLSCHow Does Cavity Locking Work (answered by Nikon)


Dr. Koji Arai and Nikon
  4128   Sun Jan 9 15:50:55 2011 ranaHowToPSLSetting the PMC gain


I ramped the PMC gain slider to find where it oscillates. It starts going bad at ~13 dB, so the new default gain is 7 dB to give us some margin for alignment improvements, etc.

I also fixed the TIME field in our MEDM screens by adding the following text to the C1IFO_STATE.db file which runs on c1iscaux:
grecord(stringin, "C0:TIM-PACIFIC_STRING")
    field(DESC, "Current time and date")
    field(DTYP, "EPICS IOC VAR")
    field(SCAN, "1 second")
    field(INP, "C1:FEC-34_TIME_STRING")

grecord(stringin, "C0:IFO-TIME_PACIFIC")
    field(DESC, "Current time and date")
    field(DTYP, "EPICS IOC VAR")
    field(SCAN, "1 second")
    field(INP, "C1:FEC-34_TIME_STRING")

This gets the time info from the c1ioo processor via channel access and gives it these mroe reasonable names. The first record is for backwards compatibility. The second record is a better name and we should use it in the future for all new screens. I had to reboot c1iscaux several times to figure out the right syntax, but its OK now. You have to reopen stale screens to get the field to refresh.

This avoids the previous idea of changing all of the MEDM screens.

  4159   Fri Jan 14 20:37:00 2011 kiwamuHowToGreen Lockingplan for this month

 I summarized how we proceed our green locking in this month on the wiki.

Since step1 and 2 shown on the wiki are mostly done apparently, so we will move on to step 3-D and 3-E.

A short term target in the coming couple of days is to phase lock the VCO to the beat note.


  4171   Thu Jan 20 00:39:22 2011 kiwamuHowToCDSDAQ setup : another trick

Here is another trick for the DAQ setup when you add a DAQ channel associated with a new front end code.


 Once you finish setting up the things properly according to this wiki page (this page ), you have to go to 


and then edit the file called master

This file contains necessary path where fb should look at, for the daqd initialization.

Add your path associated with your new front end code on this file, for example:



After editing the file, restart the daqd on fb by the usual commands:

             telnet fb 8088


  4185   Fri Jan 21 23:17:54 2011 ranaHowToDAQDAQ Wiki Failure

The DAQ Wiki pages say to use port 8088 for restarting the Frame Builder. I tried this to no avail.

op440m:daq>telnet fb 8088
Connected to fb.martian.
Escape character is '^]'.
telnet> quit
Connection to fb.martian closed.
op440m:daq>telnet fb 8087
Connected to fb.martian.
Escape character is '^]'.
daqd> shutdown
Connection to fb.martian closed by foreign host.

Apparently, 8087 is the right port. Various elog entries from Joe and Kiwamu say 8087 or 8088. Not sure what's going on here.

After figuring this out, I activated the C1:GCV-XARM_COARSE_OUT_DAQ and C1:GCV-XARM_FINE_OUT_DAQ and set both of them to be recorded at 2048 Hz. We are loading filters and setting gains into these filter modules such that the OUT signals will be calibrated into Hz (that's why we used the OUT instead of the IN1 as there was last night).

  4194   Mon Jan 24 10:39:16 2011 josephbHowToDAQDAQ Wiki Failure

Actually both port 8087 and 8088 work to talk to the frame builder.  Don't let the lack of a daqd prompt fool you.


Here's putting in the commands:

rosalba:~>telnet fb 8088 Trying

Connected to fb.martian ( Escape character is '^]'.


0000Connection closed by foreign host.

rosalba:~>date Mon Jan 24 10:30:59 PST 2011


Then looking at the last 3 lines of restart.log in /opt/rtcds/caltech/c1/target/fb/

daqd_start Fri Jan 21 15:20:48 PST 2011

daqd_start Fri Jan 21 23:06:38 PST 2011

daqd_start Mon Jan 24 10:30:29 PST 2011


So clearly its talking to the frame builder, it just doesn't have the right formatting for the prompt.  If you try typing in "help" at the prompt, you still get all the frame builder commands listed and can try using any of them.

However, I'll edit the DAQ wiki and indicate 8087 should be used because of the better formatting for the prompt.

Apparently, 8087 is the right port. Various elog entries from Joe and Kiwamu say 8087 or 8088. Not sure what's going on here.

After figuring this out, I activated the C1:GCV-XARM_COARSE_OUT_DAQ and C1:GCV-XARM_FINE_OUT_DAQ and set both of them to be recorded at 2048 Hz. We are loading filters and setting gains into these filter modules such that the OUT signals will be calibrated into Hz (that's why we used the OUT instead of the IN1 as there was last night).


  4271   Thu Feb 10 14:52:36 2011 AidanHowToComputersAdding filenames in MATLAB plots

The following code is incredibly useful when creating  MATLAB plots as it adds the filename of the script to the plot itself. I think it should be used for all MATLAB plots that go on the elog.

For example, I have no idea where the data/script is that was used to generate these plots.


orient landscape

xposn = 0.0;

yposn = -0.13; % you sometimes have to tweak this value depending on the page size and the number of subplots

text(xposn,yposn,[filename('fullpath'), '.m'], ...

     'Units', 'normalized', ...

     'Interpreter', 'none', ...

     'FontSize', 6)

print('-dpdf', [filename('fullpath'), '.pdf'])

  4432   Wed Mar 23 12:40:22 2011 Chief Recycling OfficerHowToEnvironmentRecycle stuff!

The following is a message from the LIGO 40m Chief Recycling Officer:

Please get up off your (Alignment Stabilization Servo)es and recycle your bottles and cans!  There is a recycling bin in the control room.  Recent weeks have seen an increase in number of bottles/cans thrown away in the regular garbage.  This is not cool. 

Thank you,


  4498   Thu Apr 7 13:12:23 2011 KojiHowToVIDEOVideo switching tip

Long time ago, I looked at the manual of the video switcher.
Here is the summary. This will be the basic of the more sophisticated switching program which may have GUI.

In principle, you can manually control the matrix via telnet. At the console machines, you can connect to the matrix using telnet


This opens TCP/IP port 23 of the specified machine. You will receive some messages.
Then type some command like:

  • 1*2!       (connect input#1 to output#2)
  • 1,           (save the current setting into preset1)
  • 1.           (restore the setting from preset1)


Basicaly that's all. There are many other features but I don't think we need them.

We can create a simple program with any of the language as any of the language has the capability of the TCP/IP connection.
e.g. C, Perl, Python. Tcl/Tk
Any of them are fine.

Now what we have to think about is how to implement the interface in the epics screen (or whatever).
It needs some investigation how the people is thinking as the ideal interface.
But, first of all, you should make the above three operations available as a simple UNIX command like:

videoswitch -i 1 2
videoswitch -i -store 1
videoswitch -i -recall 1
(There is no such command yet. These are showing what it should be!)

This can be done by a single day work and our life will be much better.

  4529   Fri Apr 15 02:30:24 2011 KojiHowToVIDEOVideo switching tip

I have made a small python script to handle the video matrix.

It is too far from the perfection, but I release it as it is already useful in some extent.

The script is in the /cvs/cds/rtcds/caltech/c1/scripts/general directory.


videoswitch.py in_ch_name out_ch_name

in_ch_name is one of the followings

MC1F, SRMF, AS, ETMYT, PRM, OMCT, Quad1, Quad2, Quad3

out_ch_name is one of the followings

Mon1, Mon2, Mon3, Mon4, Mon5, Mon6, Mon7,
ETMY, MC1, PSL1, PSL2, ETMX, MC2, CRT9,CRT10,Projector,
Quad1_1, Quad1_2, Quad1_3, Quad1_4,
Quad2_1, Quad2_2, Quad2_3, Quad2_4,

Quad3_1, Quad3_2, Quad3_3, Quad3_4

  4801   Thu Jun 9 18:25:22 2011 kiwamuHowToCDSlook back a channel which doesn' exist any more

For some purposes I looked back the data of some channels which don't exist any more.  Here I explain how to do it.

If this method is not listed on the wiki, I will put this instruction on a wiki page.


(How to)

   (1) Edit an "ini" file which is not associated to the real-time control (e.g. IOP_SLOW.ini)

   (2) In the file, write a channel name which you are interested in. The channel name should be bracketed like the other existing channels.

               example:  [C1:LSC-REFL11_I_OUT_DAQ]

   (3) Define the data rate. If you want to look at the full data, write

              datarate = 2048

        just blow each channel name.

        Or if you want to look at only the trends, don't write anything.

   (4) Save the ini file and restart fb. If necessary hit "DAQ Reload" button on a C1:AAA_GDS_TP.adl screen to make the indicators green.

   (5) Now you should be able to look at the data for example by dataviewer.

   (6) After you finish the job, don't forget to clean up the sentences that you put in the ini file because it will always show up on the channel list on dtt and is just confusing.

        Also don't forget to restart fb to reflect the change.

  4813   Tue Jun 14 03:15:29 2011 KojiHowToComputer Scripts / ProgramsKissel Button Generator

I have made a python script to generate the button designed by Jeff Kissel for his ISI screen.

It is currently located at the following location:
but should be relocated to somewhere appropriate.
It also uses fragmented medm files named "MATRIX*.adl_parts".

# Jamie, could you suggest the right place?

The parameters are assigned at the beggining of the script.
This script print the result to stdout. So you need to redirect the output into a file.

> ./generate_KisselButton.py >tmp.adl

The script should be modified such that it accepts the command line options.
It needs more python learning for me.

# Number of the column
mat_h = 20;

# Number of the row
mat_v = 10;

# horizontal pixel size of the rectangular display for each matrix element
button_width = 8;

# vertical pixel size of the rectangular display for each matrix element
button_height = 8;

replace_dict = {
# Title
# Path of the MEDM file to be open by clicking the button
# The channel name of the matrix element
# ($V and $H are replaced to the numbers i.e. "_3_4")


Attachment 1: kissel_button.png
  4820   Wed Jun 15 00:50:11 2011 KojiHowToComputer Scripts / ProgramsKissel Button Generator

Now the Kissel-button generator takes the command line arguments and options.
The script is fully documented by the usage message of the script itself.
It still needs the external supporting files "MATRIX*.adl_parts".

Now the LSC screen has these buttons for the input and output matrices.
The command lines to generate those buttons are listed at the end of this entry as the examples.


>./generate_KisselButton.py -h
generate_KisselButton.py [options]  end_row end_column matrix_ch_name

This generates an MEDM screen of a button with the style designed by
Jeff Kissel for his ISI screens. This button has a display of a matrix
elements. If the matrix element is non-zero it glows in green. Otherwise
its color is dark. Usually the button created by this script
is to be copy-pasted to other screens.

Three arguments have to be given:
  end_row         the number of the row at the end
  end_column      the number of the column at the end
  matrix_ch_name  the channel name of the matrix to be monitored
                  e.g. give C1:LSC-OUTPUT_MTRX for C1:LSC-OUTPUT_MTRX_1_1, ...

There are options prepared in order to control the parameters of the button.

generate_KisselButton.py 6 6 C1:LSC-OUTPUT_MTRX
      6x6 matrix for C1:LSC-OUTPUT_MTRX

  -h, --help          show this help message and exit
  --sr=START_ROW      specify the starting row number for the button array.
                      [default: 1]
  --sc=START_COLUMN   specify the starting column number for the button array.
                      [default: 1]
  --bw=BUTTON_WIDTH   specify the pixel width of the small button. [default:
  --bh=BUTTON_HEIGHT  specify the pixel height of the small button. [default:
  --dl=DISPLAY_LABEL  specify the button label. [default: channel name]
  --sn=SCREEN_NAME    specify the file name of the screen opened when one
                      click the button. The relative or absolute path can be
                      included. [default: a name guessed from the channel
                      name. e.g. C1LSC_OUTPUT_MTRX.adl for C1:LSC-OUTPUT_MTRX]

>./generate_KisselButton.py --bw=3 --bh=4 --dl="RFPD InMTRX" 16 8 C1:LSC-PD_DOF_MTRX > rfpd_mtrx.adl

>./generate_KisselButton.py --sc=21 --bw=6 --bh=4 --dl="DCPD InMTRX" 27 8 C1:LSC-PD_DOF_MTRX > dcpd_mtrx.adl

>./generate_KisselButton.py --bw=4 --bh=4 --dl="Trig MTRX" 11 8 C1:LSC-TRIG_MTRX > trig_mtrx.adl

>./generate_KisselButton.py --bw=4 --bh=4 --dl="Out MTRX" 9 10 C1:LSC-OUTPUT_MTRX > output_mtrx.adl

  4887   Sun Jun 26 18:35:16 2011 ranaHowToSUSfree swing all optics

I used scripts/SUS/freeswing-all.csh to give the optics a kick and then turn off their watchdogs and collect the free swinging data.  Final script end time = 993173551. Start taking data ~ 993173751

I had to fix up the script a little: it had amateur stuff in there, such as undefined variables.

It still doesn't work that well. On the new Ubuntu workstations, pianosa, it fails by just not setting some of the EPICS variables using the EZCA stuff.

On Allegra, it failed on ~1 out of 10 commands by returning "epicsThreadOnce0sd epicsMutexLock failed" ???

On Pianosa, it sometimes says, instead, "epicsThreadOnceOsd: pthread_mutex_lock returned Invalid argument.".   Ah...now I understand?

So finally, I had to run the script on op340m to get it to actually run all of its commands. That's right; I used a 15 year old Solaris 9 Blade 150 because none of our fancy new Linux machines could do the job reliably.

Fixing our EZCA situation is a pretty high priority; if the locking scripts fail to run ~1 command every hour its going to completely derail the lock acquisition attempts.

If you want to use the IFO tonight, just run the script again on op340m again when you're done.

Attachment 1: ringdown.png
  4892   Tue Jun 28 01:18:53 2011 ranaHowToSUSfree swing all optics

Chris Wipf tells me that the EPICS Mutex Jumbo Mumbo can be overcome by upgrading our EPICS. We should get one of Jamie's assistants to get this going on one of the Ubuntu workstations.

  4903   Tue Jun 28 22:07:46 2011 JamieHowToSAFETYEurocrate extender card fried (ie. Jamie did a very bad thing)


Yesterday, I fried the +15 V power supply rail on one of the Eurocrate extender cards while I was checking out the binary switching in the 1X5 rack.  I will describe what I did it in the hopes that everyone else will be less stupid than me.

I wanted to monitor the voltage across a resistor on the suspension OSEM whitening board.  Since I knew that both sides of the resistor would be at non-zero voltage (including possibly at the power-supply rail), I used a battery-operated scope with floating inputs, so that the scope would not try to pull the probe shield to ground.  That should be OK, although not recommended, as you'll see, because you must be very careful to make sure that the scopes inputs are indeed floating.

Let's call the original signal 'A'.  The trouble came when I then connected another signal (B), whose shield was connected to the ground on the whitening board, to the scope.  Apparently the grounds on the scope inputs are connected, or were in the configuration I was using.  When I connected the signal B, B's ground shorted A's shield to ground, which had been sitting at the +15V rail.  That short circuit then fried the +15V supply line on the extender card I was using (escaping magic smoke was detected).  Thankfully this only blew the extender card, and not the Eurocrate or the Eurocrate power supply or the whitening board or the scope etc, all of which would have been much worse.

The moral of the story is to be very careful when connecting power supply voltages to the shield or ground of a scope.  In short, don't do it.  I didn't ultimately need to, since I could have found other ways to measure the same signal.


  4952   Thu Jul 7 10:25:34 2011 steveHowToGeneralcleaning out refregerator

Please ask the owner unless  it is rotten. Do not put food into garbage can inside. Take them outside so you are not inviting ants !

  4953   Thu Jul 7 13:57:28 2011 steveHowToSAFETYhow not to

I found baked allen keys on the top of the clean optics cabinet.  Somewhat heavy box that can come down in an earthquake on our heads.

NOTHING SHOULD GO ON THE TOP OF THE CABINETS OR RACKS except  small plastic boxes that storing our clean clothing.

  4960   Mon Jul 11 14:03:37 2011 steveHowTolorehow to visit your old lab

Alberto is visiting us from Australia. He brought some terrific presents. It is going to be very demanding task to wait for the rest of the 40m team

to return from Wales to taste coffee:  PNG Peaberry of Wagonga, Monsooned Malabar of Jindebah and Signature Blue Blend of Cosmorex.

Attachment 1: P1080069.JPG
  4968   Thu Jul 14 17:34:35 2011 Ishwita, ManuelHowToWienerFilteringWiener-Hopf equations

Since we are using Wiener filtering in our project, we studied the derivation of Wiener-Hopf equations. Whatever we understood we have written it as a pdf document which is attached below...

Attachment 1: derivwf.pdf
derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf
  4981   Mon Jul 18 10:24:48 2011 steveHowToGeneralsolvent bottles for cleaning optics

Each bottle has matched seals. They are not interchangeable.

It is critical that the solvent do not reach the rubber bulb. Practice with the pipet.

In case of solvent touching the suction bulb: do not let the solvent go back into the bottle! Remove bulb, let it dry out and rinse pipet.

It is essential that the solvent bottle must be rinsed and refilled if it's content met with the rubber bulb.

Use glass syringe with SS needle in critical application: Hamilton ~0.1 ml

Attachment 1: P1080090.JPG
  5034   Mon Jul 25 23:43:20 2011 ManuelHowToElectronicsManual for 1201 Low Noise Preamplifier

I found the manual for the Low Noise Preamplifier Model 1201 at this link and I attached it.

The one we have in the lab (S/N 48332) miss the battery packs and miss also the remote programming options input/output. Its inside battery compartment is empty and I found 2 unscrewed screws with washers and nuts inside the preamplifier box. The battery cable are disconnected and they have 2 green tape labels (-) and 2 red tape label (+).



Attachment 1: ITHACO_1201_Instruction_&_Maintenance.pdf
ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf ITHACO_1201_Instruction_&_Maintenance.pdf
Attachment 2: DSC_3249.png
  5361   Wed Sep 7 18:19:37 2011 steveHowToVACstop pump down for overnight


Jamie and Steve

We closed ITMX and ITMY chambers and started pumping around 11am

What we did before:

1, turned off AC power  to PZT Jena HV ps

2, checked jam nut positions

3, cheched  single o-ring shims

4, closed psl out shutter

 We are at 30 Torr of 7 hours of pumping with 2 roughing pumps.

Kiwamu will take over the rest of the roughing today. He will keep an eye on  the pumping speed to be  ~1-2 Torr/min  and open up the manual RV1 valve if needed.

The present status is #3023 of  "chamber open to vacuum open" mode and waiting the P1 pressure to drop to 500 mTorr

He will do the following to stop pumping at P1 = 500 mTorr

1, close V3

2, close RV1 with torque wheel

3, turn off PR1 & 3

4, disconnect metal hose between RV1 and PR3

 I will start the Maglev tomorrow morning.

  5376   Sat Sep 10 11:07:37 2011 ranaHowToSUSOptical Lever Servo Tuning thoughts

Now that we are in a moderately stable condition, its time to design the optical lever feedback transfer functions. We should think carefully about how to do this optimally.

In the past, the feedback shape was velocity damping from 0-10 Hz, with some additional resonant gain around the pendulum and stack modes. There were some low pass filters above ~30 Hz. These were all hand tuned.

I propose that we should look into designing optimal feedback loops for the oplevs. In principle, we can do this by defining some optimal feedback cost function and then calculate the poles/zeros in matlab.

How to define the cost function (? please add more notes to this entry):

1) The ERROR signal should be reduced. We need to define a weight function for the ERROR signal: C_1(f) = W_1(f) * (ERR(f)^2)

2) The OL QPDs have a finite sensing noise, so there is no sense in suppressing the signal below this level. Need to determine what the sensing noise is.

3) The feedback signal at high frequencies (30 Hz < f < 300 Hz) should be low passed to prevent adding noise to the interferometer via the A2L coupling. It also doesn't help to reduce this below the level of the seismic noise. The cost function on the feedback should be weighted apprpriately given knowledge about the sensing noise of the OL, the seismic noise (including stack), and the interferometer noise (PRC, SRC, MICH, DARM).

4) The servo should be stable: even if there is a negligible effect on the ERROR signal, we would not want to have more than 10 dB of gain peaking around the UGFs.

5) The OL QPDs are dominated by drift of the stack, laser, etc. at some low frequencies. We should make sure the low frequency feedback is high passed appropriately.

6) Minimize transmitted power rms in single arm lock etc.

  5455   Mon Sep 19 02:33:34 2011 kiwamuHowToGeneralPlan for this week

GOAL1:  Stable lock of DRMI

GOAL2:  Measurement of the LSC input matrix in the DRMI configuration


 /- - Daytime works - - /

  + Measurement of the arm lengths (Jenne / Kiwamu / volunteers)

  + Optimization of the oplev control loops (Paul)

  + Inversion and installation of the SUS input matrices (Jenne)

  + Tuning of the SUS damping gains (Steve)

  + Measurement of the modulation depths (Mirko)

  + Preparation of the green broadband PD (Katrin)

  + Fixing the Y arm green lock servo (Katrin / Kiwamu)

  + Installation of RFPDs (Anamaria)

  + Minimization of the AM sidebands (Anamaria / Keiko)

  + Preparation of a script for measuring the LSC input matrix (Keiko)

  + MC WFS (Suresh)

  + Online adaptive filtering (Mirko / Jenne)

  + Modification of C1ASS (Kiwamu)

  + Fixing IPPOS (volunteers) 

  + Auto alignment of PRCL and SRCL (volunteers)

  + Loss measurement of the arm cavities (volunteers)

  + Fixing the ETMX SIDE slow monitor (volunteers)


 /- - Nighttime works - - /

 + Locking of DRMI

 + Characterization of DRMI and complete the wiki page

  5456   Mon Sep 19 11:49:32 2011 JenneHowToGeneralPlan for this week: SUS inversion


  + Inversion and installation of the SUS input matrices (Jenne)

 It turns out that this is complicated, since there are so many people working with the IFO this week.  What I would like to do is put in the new input matricies, and then do a free swinging test, to see if the suspensions are really diagonalized in the way that we want them to be.  I can't do this during the day, since it will interfere with Paul's OpLev work.  And at "night", I can't, since we'll be doing locking.  So, this may be a late-night task.  I'll write a script this afternoon that will put in all of the new input matricies, and then run the freeswing and the restore watchdogs scripts.  Whomever is the last one to leave for the night can run the combo script.

EDIT:  As of this time (~11:45am), ITMY has its new input matrix.

  5464   Mon Sep 19 16:44:16 2011 KeikoHowToLSCProcedure for the demodulation board check

 Here I note the procedure for the demodulation board orthogonality check for the future reference.

1. prepare two function generators and make sure I an Q demodulation signals go to the data acquisition system.

2. sync the two generators

3. drive the function generator at the modulation frequency and connect to the LO input on the demod board

4. drive the other function generator at the modulation frequency + 50Hz  the RF in

5. run "orthogonality.py"  from a control computer scripts/demphase directory. It returns the amplitude and phase information for I and Q signals. If necessary, compensate the amplitude and phase by the command that  "orthogonality.py" returns.


If you want to check in the frequency domain (optional):

1. 2. 3 are the same as above.

4. drive the function generator at the LO frequency + sweep the frequency, for example from 1Hz to 1kHz, 50ms sweep time. You can do it by the function generator carrier frequency sweep option.

5. While sweeping the LO frequency, run "orthogonality.py"

6. The resulting plot from "orthogonality.py" will show the transfer function from the RF to demodulated signal. The data is saved in "dataout.txt" in the same directory.

  5603   Mon Oct 3 17:06:27 2011 JenneHowToComputer Scripts / ProgramsKissel Button Generator



 I copied the Kissel button generator scripts folder into scripts:


Maybe this isn't the most intuitive place ever, since it's a script that only has to do with medm screens, but at least it's better than hidden in the depths of Koji's LSC medm path.....

  5650   Tue Oct 11 15:19:17 2011 ranaHowToEnvironment40m map

The Kinemetrics dudes are going to visit us @ 1:45 tomorrow (Wednesday) to check out our stacks, seismos, etc.


I put these maps here on the elog since people are always getting lost trying to find the lab.

  5651   Tue Oct 11 17:32:05 2011 jamieHowToEnvironment40m google maps link

Here's another useful link:


  5734   Tue Oct 25 11:48:02 2011 KatrinHowToElectronicssolder tiny smd op amps

Yesterday, I had the great pleasure to solder a tiny 4 x 4 mm op amp with 16 legs (AD8336).

I figured out that the best and fastest way to do it is

  1. to put solder with the soldering iron on every contact of the electronic board (top side)
  2. heat the bottom side of the electronic board with a heat gun
  3. use a needle to test if the solder is melted
  4. if it is melted place the op amp on the electronic board
  5. apply some vertical force on the op amp for proper contact and heat for 1 to 2 more minutes
  6. done


  5843   Tue Nov 8 19:08:21 2011 MirkoHowToComputersNew DV

To use the new ligoDV (previously GEO DV) to look at 40m data, open up a matlab, set up for mDV as usual,
and then from the /cvs/cds/caltech/apps/ligoDV/ directory, type 'ligoDV'.

Then select which NDS server you want to look at and then start clicking to get some plots.

To start ligodv go in matlab to /cvs/cds/caltech/apps/ligoDV/ and call ligodv. Ligodv will start up when you are in another directory, but will give strange errors. Only seems to work with NDS2 server mafalda port 31200. This doesn't have all channels. When pointing it to fb port 8088 it freezes when you try to adjust the start/stop time. Make sure to ask for the correct UTC time, not the local time.
  6117   Wed Dec 14 12:22:00 2011 VladimirHowToComputersligo_viewer installed on pianosa

I made a test installation of ligo_viewer in /users/volodya/ligo_viewer-0.5.0c . It runs on pianosa (the Ubuntu machine) and needs Tcl/Tk 8.5.


To try it out run the following command on pianosa:

cd /users/volodya/ligo_viewer-0.5.0c/



Press "CONNECT" to connect to the NDS server and explore. There are slides describing ligo_viewer at http://volodya-project.sourceforge.net/Ligo_viewer.pdf


Installation notes:

Use /users/volodya/ligo_viewer-0.5.0c.tgz or later version - it has been updated to work with 64 bit machines.

Make sure Tcl and Tk development packages are installed. You can find required packages by running

apt-file search tclConfig.sh

apt-file search tkConfig.sh

If apt-file returns empty output run apt-file update

Unpack ligo_viewer-0.5.0c.tgz, change into the created directory.

Run the following command to configure:

export CFLAGS=-I/usr/include/tcl8.5
./configure --with-tcl=/usr/lib/tcl8.5/ --with-tk=/usr/lib/tk8.5/

This works on Ubuntu machines. --with-tcl and --with-tk should point to the directories containing tclConfig.sh and tkConfig.sh correspondingly.

Run "make".

You can test the compilation with ./ligo_viewer.no_install

If everything works install with make install

If Tcl/Tk 8.5 is unavailable it should work with Tcl/Tk 8.3 or 8.4



Attachment 1: ligo_viewer_40m2.png
  6185   Wed Jan 11 14:06:28 2012 Leo SingerHowToComputer Scripts / ProgramsHowTo for getting data from NDS off site

 This may or may not be general knowledge already, but Jamie and I added a HowTo explaining how to retrieve channel data from the frame builder via NDS, but off site on one's own computer.  See the Wiki page:


ELOG V3.1.3-