40m QIL Cryo_Lab CTN SUS_Lab CAML OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 231 of 350  Not logged in ELOG logo
ID Date Author Type Category Subjectup
  14016   Mon Jun 25 22:27:57 2018 shrutiUpdatePEMSeismometer temp control - heater circuit

After removing all the clamping screws from the heater circuit board, I soldered the wire connecting IRF630 to the output of OP27, which had come off earlier. This can only be a temporary fix as the wire was not long enough to be able to make a proper solder joint. I also tried fixing two other connections which were also almost breaking.

After re-assembling everything I found out that one of the LEDs was not working. The most likely cause seems to be an issue with LM791, LM 781 or the LED itself. Due to the positioning of the wires, I was unable to test them today but will try again possibly tomorrow.

Equipment used for this is still lying at the X end.


We (Rana and I) are re-assembling the temperature controls on the seismometer to attempt PID control and then improve it using reinforcement learning.

We tried to re-assemble the connections for the heater and in-loop temperature sensor on the can that covers the seismometer.

We fixed (soldered) two of the connections from the heater circuit to the heater, but did not manage to get the PID working as one of the wires attached to the MOSFET had come off. Re-soldering the wire would be attempted tomorrow.

Equipment for undertaking all this is still left at the X-end of the interferometer and will be cleared soon.

  14030   Thu Jun 28 11:05:48 2018 shrutiUpdatePEMSeismometer temp control equipment

Earlier today I cleared up most of the equipment at the X end near the seismometer to make the area walkable. 

In the process, I removed the connections to the temperature sensor and placed the wires on top of the can.

  7733   Tue Nov 20 15:24:52 2012 AyakaUpdatePEMSeismometers and a microphone

 I got two seismometers and one microphone back from Tara.

They are now near the Gurlap under the MC.

  7734   Tue Nov 20 16:03:37 2012 janoschUpdatePEMSeismometers and a microphone


 I got two seismometers and one microphone back from Tara.

They are now near the Gurlap under the MC.

 If anybody wants a fancy single-axis seismometer for a while (GS-13), then please let me know.

  10939   Mon Jan 26 13:07:28 2015 JenneUpdatePEMSeismometers back in nominal places

I have just put the seismometers back into their nominal positions, on the concreted slabs.  The T-240 is in the vertex, and the 2 Guralps are at the end stations.

The vertex location doesn't have a spaghetti pot right now.  There is an aluminum support for cable trays that is welded to the supports under the beam tube that is in the way.  The pot looks like it will fit barely, if it were slid totally horizontally into place.  However we can't do that with the seismometer in place.  I'll chat with Steve this afternoon about our options. 

Since I don't know that we are planning on ever putting a cable tray on the inside of the beamtube, perhaps we can cut ~6 inches of this piece away. 

  6945   Mon Jul 9 15:05:00 2012 JenneUpdatePEMSeismometers being moved, new safety shower

[Masha, Jenne]

Masha is moving the seismometers, so they are all off right now.  Were they on, they would see a bunch of noise from the guy outside the 40m front door who is installing a safety shower.

  10539   Thu Sep 25 11:38:47 2014 JenneUpdatePEMSeismometers in place

[Zach, Jenne, Steve]

This work happened on Tuesday.  Bad Jenne for forgetting to elog it!

Zach brought the 40m's seismometers back (one Guralp and one T-240).  We have set the seismometers on their slabs.  Also, we ran the T240 cable from 1X5 over to the vertex slab.  Also, also, Zach and Steve mounted the T-240 readout box in the 1X5 rack.  We have not yet hooked it up to power, although there are fused power blocks available on that rack. 

So, the T-240 box needs power, and then we need to connect the seismometers to their respective boxes.  Also, we need to run medium-short BNC cables from the T-240 readout box to the PEM AA board over in 1X7.

  3149   Wed Jun 30 17:30:54 2010 JenneUpdatePEMSeismometers moved for MC Wiener work

Now that the MC is back up and running, I put the Guralp seismometers at the ends of the mode cleaner.  Gur1 is near MC2, and Gur2 is near MC1 (yes, it seems backwards....that's how the cable lengths work).  Also, the set of 3 MC2 accelerometers are in place under MC2.  I can't find the black cube for the other set of accelerometers, so there aren't any around MC1/3. 

  2825   Wed Apr 21 15:53:57 2010 JenneUpdatePEMSeismometers now on the granite slab

The 3 seismometers are now on the granite slab.  The Ranger is now aligned with the Xarm (perpendicular to the Mode Cleaner) since that's the only way all 3 would fit on the slab.

  10711   Thu Nov 13 22:52:48 2014 kateUpdatePEMSeismometers set up for huddle test

Jenne, Diego, Kate

We want to conduct a huddle test with the three 40m seismometers (2 Guralps and 1 Trillium), so we began to get that set up in order. All three are currently sitting on the large granite slab approximately halfway down the length of the MC tube. We had to move all three seismometers: the Trillium had been next to the BS and the Guralps at the end stations. All three are balanced and aligned and we have put the foam box over them. 

The Trillium has not yet been used here, so we had to first wire its power supply. We're now providing its readout box with +/- 20 V. Getting that hooked up required powering down several electronics racks, which involved auxiliary prep work like turning off the suspension watchdogs. We also installed 3 new BNC cables to carry the Trillium x,y,z signals from its box to the CDS AA board. We're using the inputs which had previously been used for recording the STS2 signals. 

We could find only one of the two 'short' Guralp cables, so at the moment just one of the two Guralps is powered and connected to CDS. Jenne made (some time ago) new cables so that we could leave the long cables that run from the corner to each end station in place to preserve the nominal setup. 

Attachment/edit by Jenne: Seismic spectra.  Note that the T240 is connected to the channels that are called STS_1.  I compared the Guralp spectra to our seismic_ref, and they match up pretty well.  The new spectra is maybe a factor of 2 or so above the reference, at a few Hz. Anyhow, the Guralp seems fine.  I am sure that somewhere we have a second short (as in, not 50m long) Guralp cable, I just can't remember right now where it might be.  Also, the T-240 has some seriously crazy noise up around 30Hz.  What's up with that??  I want to ask Zach if he saw this when he had the Trillium, or if it is new.


  10721   Sat Nov 15 21:51:09 2014 ranaUpdatePEMSeismometers set up for huddle test

  In order to do high quality huddle subtraction, we need to align the seismometer axes to high precision. We would need 1000x subtraction to see the instrument noise floor, but are likely to only get 100x. For that we need to align the axes to 0.5 deg (or do a Wiener coordinate transform with the data). To do this, we need to use a high quality bubble level and eventually iterate after trying out.

We should strain relieve the seismometer cables on the slab. It should be a tight clamp so that acoustic vibrations on the cables are terminated at the clamp and don't get to the seismometers. The clamp can be attached to the slab using some strong epoxy.

  3928   Mon Nov 15 22:24:28 2010 SureshUpdateSUSSelection of Magnets

I have selected a set of 16 magnets which have a B field between 900 to 950 Gauss (5% variation) when measured in the following fashion.

I took a Petri-dish, of the type which we usually use for mixing the glue, and I placed a magnet on its end.  I then brought the tip of the Hall-probe into contact with the Petri-dish from the opposite side and adjusted the location (and orientation) of the probe to maximise the reading on the Gauss meter.

The distribution of magnets observed is listed below


Range of B Field (Gauss) # of Magnets
800-849 2
850-899 6






The set of sixteen has been have been placed inside two test tubes and left on the optical bench (right-side)  in the clean room.



  6870   Mon Jun 25 16:21:10 2012 KojiSummaryIOOSelection of motorized mirror mounts

I am considering to have 3 to 6 motorized optical mounts at the PSL and end tables for remote beam steering.

Question 1:

Was there any issue on the PI 3-axis PZT on the PSL?
Why was it disabled (even before the PSL upgrade)?

Question 2:

Do we need two mount at a place? Or we do have one instead?

- Comparing the distance of the steering mirrors and that from the steering mirror to the cavity waist, induced shift
is mostly cancelled by angle adjustemnts of a either of the mounts.
i.e. Induced misalignments by the steering mirrors are nearly degenerated.

We need to move two steering mirrors only for the initial installation, but any drift felt by a cavity can be compensated by a single mirror.

Question 3:
Do we like PI-style 2 or 3 axis PZT mount with analog inputs on the HV amp?
Or do we like "Newport Agilis" style controller with USB connection?

Any opinion?

  9217   Mon Oct 7 18:36:39 2013 JenneUpdateLSCSensing Matrix scripts updated

I discovered that I was not getting enough SNR on all the refl RFPDs when I actuated using the Sensing Matrix script.  The problem was that the ITMs have actuation constants that are a factor of 5 lower than the PRM.  So, I need to push on the ITMs (for MICH) about 5 times as hard as I push on the PRM (for PRCL).  I have modified the sensing matrix scripts to allow different actuation amplitudes for each degree of freedom.  If I watch the REFL PD spectra while the script is running, I see that I now have some actual SNR (as in, more than 1, which is what the SNR was for some diodes previously). 

A consequence of this is that the script to analyze past data will no longer work on sensing matrix data taken before this afternoon.  On the other hand, that data isn't very useful, since there was no SNR.

  8711   Mon Jun 17 16:34:15 2013 JenneUpdateLSCSensing Matrix vs. Schnupp Asymmetry

I have made some plots of the sensing matrix (PRCL / MICH amplitude ratio, and relative angle) versus Schnupp asymmetry for all the configurations that involve the power recycling cavity.  I am still meditating on what they mean for us, in terms of whether or not we should be changing our Schnupp asymmetry.

The Schnupp asymmetry scan starts at 1mm, rather than 0.  Also, recall that our current Schnupp asymmetry is 3.9cm.















  8713   Mon Jun 17 21:10:25 2013 JenneUpdateLSCSensing Matrix vs. Schnupp Asymmetry

The plots, with a log y axis









  8716   Tue Jun 18 07:22:20 2013 KojiUpdateLSCSensing Matrix vs. Schnupp Asymmetry

What's the reason why the PRMI/MICH ratio gets worse (larger) for 55MHz and 165MHz for the DRMI compared to the PRMI case?

  8788   Mon Jul 1 23:27:07 2013 JenneUpdateLSCSensing Matrix vs. Xarm sweep

I have modeled the PRMI sensing matrix as I bring the Xarm into resonance.  In optickle, I have the PRMI on sideband resonance, the ETMY is artificially set to have a transmission of 1, and the ETMX has it's nominal transmission of 15ppm.  I start with the ETMX's microscopic position set to lambda/4 (antiresonant for IR in the arm), and take several steps until the ETMX's microscopic position is 0 (resonant for IR in the arm).

Xarm antiresonant:

Modeled sensing matrix, units = W/m, Offset = 2.66e-07, phase in degrees
            MICH Mag   MICH Phase    PRCL Mag   PRCL Phase  
AS55         3.348E+04   142.248      5.111E+03    70.571    
POX11        3.968E+01   -66.492      1.215E+04    54.312    
REFL11       3.231E+05    24.309      9.829E+07   144.311    
REFL165      9.946E+03  -159.540      4.540E+05   -64.710    
REFL33       1.963E+04  -168.530      1.573E+06    -2.744    
REFL55       1.160E+06    -6.755      5.429E+07    86.895 


Xarm resonant:

Modeled sensing matrix, units = W/m, Offset = 0, phase in degrees
            MICH Mag   MICH Phase    PRCL Mag   PRCL Phase  
AS55         1.647E+06    57.353      3.676E+06   -81.916    
POX11        3.927E+02  -118.791      2.578E+04  -102.158    
REFL11       7.035E+05    61.203      1.039E+08   167.149    
REFL165      1.602E+04  -144.586      5.971E+05   -49.802    
REFL33       2.157E+04   171.658      1.940E+06    -9.133    
REFL55       1.822E+06     7.762      6.900E+07   101.906 


For REFL55, the MICH magnitude increases by a factor of 1.6, while the PRCL  magnitude increases by 1.3 .  The MICH phase changes by 15 degrees, while the PRCL phase also changes by 15 degrees.  Just eye-balling (rather than calculating), the other REFL PDs look to have similar-ish magnitude and phase changes.  Certainly none of them are different by orders of magnitude.

Movies forthcoming.

  8790   Tue Jul 2 02:29:47 2013 JenneUpdateLSCSensing Matrix vs. Xarm sweep

Here is the Sensing Matrix movie (sorry for the iffy quality - my movies usually come out better than this):


This is the sensing matrix for the sideband locked on PRMI, bringing the Xarm into resonance from anti-resonance, in 20 equally-spaced steps.  You can see the microscopic ETMX offset (units of meters) in the title of the figures.

I was surprised to see some of the 'jumps' in the sensing matrix that happen near the end, when the arm is almost in resonance.  I'm in the process of making movies of the error signals as the Xarm is brought into resonance.  I'll have to post those in the morning, since they're taking a long time to produce and save, however when I looked at a few, there is some weird stuff going on as we get close to resonance, even with the 3f signals. 

The modeling phone call is in the morning, but if anyone who is not regularly on the call has thoughts, I'm all ears.

  17607   Wed May 31 10:23:40 2023 YehonathanUpdateBHDSensing matrix model

I calculated the sensing matrix for PRMI carrier using the Finesse model (git updated) using MAXTEM=2. PRG is calculated to be 11.14, consistent with observations.

LO Phase is chosen such that it maximizes MICH signal on BHD_DIFF.

The RFPDs were assumed to have a demodulation angle that maximizes the signal they are intended to sense (using MAXTEM=2).

That is,

BH44/55 maximized for HPC

REFL11 maximized for PRCL

AS55 maximized for MICH

Values are in uW/nm

REFL11_I 1.9e-2


7.6e-2 4.0e-2 0

Some interesting numbers here. First, BHD_SUM is sensitive to MICH. It's not surprising because PRM reflects the MICH signal into POP.

Also interesting, BHD_SUM is super sensitivef to PRCL. Much more than REFL11. We can use it to enhance the PRCL lock.

Unfortunately, although BH44/55 are sensitive to HPC (LO phase), they are swamped by MICH and PRCL. This issue needs to be addressed in order to gain robust LO Phase locking in PRMI.

  17608   Wed May 31 12:08:07 2023 ranaUpdateBHDSensing matrix model

it is great to see a sensing matrix without 900 digits of precision!

for choosing what sensor to use, we don't necessarily care about W/m, but more like the equivalent noise of the sensor in m/rtHz, taking into account the real noise floor. In that case, we would possibly rotate the demod phase to maximize the SNR rather than maximize the S or minimize the N.

  8630   Thu May 23 14:45:08 2013 JenneUpdateLSCSensing matrix scripts calculations make more sense now

I think I have most of the magnitude issues figured out now. 

First of all, the lockin outputs are different from the actual responses in the PDs by a factor of 2. 

If the optic is driven with amplitude D, it will have a response of Asin(wt) + Bcos(wt) + other frequency junk.  The lockin bandpasses the response to get rid of the 'other frequency junk'.  Then creates 2 new signals, one multiplied by cos(wt), the other multiplied by sin(wt).  So, now we have Asin^2(wt) + Bcos(wt)sin(wt) and Asin(wt)cos(wt) + Bcos^2(wt).   If I rewrite these, I have A/2*(1-cos(2wt))+B/2*(sin(2wt) and A/2*sin(2wt)+B/2*(1+cos(2wt)).  We lowpass to get rid of the 2w components, and are left with A/2 for the Q-phase, and B/2 for the I-phase of the lockin outputs.  Since the real amplitudes of the response were A for the Q-phase and B for the I-phase, we need to multiply the lockin outputs by 2.

The other problem was that in the 'uncalibrated' version of numbers that I was printing to compare with Koji's, I had not normalized by the drive amplitude yet.  That happens in the "calibration" part of my script.  So, if I go back to comparing the calibrated versions of our numbers, I get quite close to Koji's answers.

For the PRCL magnitudes, 3 of the 4 numbers match to ~5%.  However, the MICH magnitudes all seem to be off by a factor of 2.  I'm still stuck on this factor of 2, but I'm thinking about it. Also, the phases that Koji and I get are pretty different.

Koji's sensing matrix:

Sensing Matrix, units = cts/meter, phase in degrees
            PRCL Mag   PRCL Phase    MICH Mag   MICH Phase  
REFL33_I    3.100E+11  -109.727      4.900E+09    74.434     
REFL33_Q    3.300E+09  -141.730      7.900E+08    71.120     
REFL55_I    3.200E+11  -109.672      5.900E+08    77.313     
REFL55_Q    1.200E+10  -143.169      6.500E+09    91.559  

My sensing matrix:

Sensing Matrix, units = cts/meter, phase in degrees
            PRCL Mag   PRCL Phase    MICH Mag   MICH Phase  
REFL33_I    3.242E+11  -157.846      1.067E+10    19.010     
REFL33_Q    2.217E+09  -104.088      1.683E+09    28.731     
REFL55_I    3.371E+11  -157.915      3.645E+09    11.072     
REFL55_Q    1.213E+10  -118.348      1.346E+10     2.847

Here are the plotted versions of these matricies:



SOME EDITS:  Koji's measurement was 1Hz away from the violin mode, while mine (him running my script) was at the violin mode, so the sensor TFs were actually taken at slightly different frequencies. This helps explain the discrepancies.

Also, the phase in these plots isn't correct, so I need to figure that out. Corrected version of the 'koji' measurement put in place of the incorrect one.  I convert from radians to degrees for my script, but Koji had already reported his phases in degrees, so when I multiplied by 180/pi, it didn't make any sense. I now convert his numbers to radians before running them through my analysis script.


  8621   Wed May 22 20:50:26 2013 JenneUpdateLSCSensing matrix scripts don't calculate correctly

I am trying to re-analyze the data that Koji took last night.  

I think that my script is just pulling out the I and Q data for each port, and each degree of freedom, calculating the magnitude from sqrt( I**2 + Q**2 ) and the phase from atan2( I / Q ).  No calibration.

If I print out the results, I get:

Sensing Matrix, units = cts/ct, phase in degrees
            MICH Mag   MICH Phase    PRCL Mag   PRCL Phase  
AS55_I      1.627E-02   62.063        4.189E-03   68.344       
AS55_Q      2.073E-02  -105.353        1.983E-02   66.361       
REFL11_I    8.165E+02  -112.624        2.441E+00   77.911       
REFL11_Q    2.712E+02  -112.650        7.065E-01  -127.093       
REFL33_I    8.028E+00  -112.154        6.282E-02   70.990

REFL33_Q    5.490E-02  -165.912        9.908E-03   61.269       

REFL55_I    8.347E+00  -112.085        2.146E-02   78.928       
REFL55_Q    3.003E-01  -151.652        7.924E-02   87.153

If, however, I take the raw values that are stored in the data file, for one row (say, REFL33_Q) and calculate by hand (same formulas), I get different results:

            MICH Mag   MICH Phase    PRCL Mag   PRCL Phase  
REFL33_Q    9.9E-03    28.89         5.46E-02   -103.8

Contrast that with Koji's uncalibrated transfer function result from elog 8611:

            MICH Mag    MICH Phase    PRCL Mag     PRCL Phase  
REFL33Q     1.8665e-5   71.1204      
1.6310e-4    -141.73


I am currently confused, and need to re-look at my script, as well as make sure I am actually measuring the things I think I am.

EDIT:  This has been fixed, in that my 2 calculations agree with one another.  I have crossed out the incorrect numbers, and put correct numbers below.  I still don't agree with Koji, but at least I agree with myself. 

The phase issue:  I needed to calculate the phase with "ATAN2(I,Q)", which I did when I calculated by hand, but the script had "atan2(Q,I)".  This has been fixed. 

The magnitude issue:  They match, but my "pretty print" script labels MICH as PRCL, and vice versa.  Doh.

Corrected values:

Sensing Matrix, units = cts/ct, phase in degrees
            PRCL Mag   PRCL Phase    MICH Mag   MICH Phase  
AS55_I      1.627E-02    27.937      4.189E-03    21.656     
AS55_Q      2.073E-02  -164.647      1.983E-02    23.639     
REFL11_I    8.165E+02  -157.376      2.441E+00    12.089     
REFL11_Q    2.712E+02  -157.350      7.065E-01  -142.907     
REFL33_I    8.028E+00  -157.846      6.282E-02    19.010     
REFL33_Q    5.490E-02  -104.088      9.908E-03    28.731     
REFL55_I    8.347E+00  -157.915      2.146E-02    11.072     
REFL55_Q    3.003E-01  -118.348      7.924E-02     2.847 

  8609   Tue May 21 18:22:18 2013 JenneUpdateLSCSensing matrix scripts modified to include actuator calibration

The PRMI sensing matrix scripts have been modified to output a sensing matrix which is calibrated into units of counts/meter.

To run, you should just need to run .../scripts/LSC/runPRMI_SENS.py . 

If it looks like the drive amplitude is not large enough (no nice peak in the photodiode signals), you can increase the drive amplitude, which is line 21 in runPRMI_SENS.py  

  8611   Wed May 22 00:08:19 2013 KojiUpdateLSCSensing matrix scripts modified to include actuator calibration

It was too embarassing to see that the actuation frequency was set at the violin mode frequency in order to avoid designing a new filter!?

I ran Jenne's sensing matrix code and the immitated the same result by manual measurement with DTT.
I noticed that the PRM excitation was not transmitted to the mirror. I tracked down the cause and found that
Jenne is using 628Hz which is the notch frequency of the viloing filter.

There is no way we can measure the precise calibration of the error signal exactly at the violin mode frequency.

Nevertheless I waited for the ringdown of the violin mode to the floor level and ran the code again WITH the violin mode filter OFF

The result was stored in the data file


The code spit the message at the end

Sensing Matrix, magnitude only, units = cts/meter
            MICH          PRCL         
AS55        5.304E+08     1.716E+09     
REFL11      1.732E+13     2.151E+11     
REFL33      1.616E+11     5.384E+09     
REFL55      1.681E+11     6.950E+09

Now I replicated the same measurement with DTT.

MICH or PRCL were excited with the lockin. In order to aviod the violin mode, I shifted the excitation freq by 1Hz. (i.e. 629.125Hz)

The peaks in REFL33I/Q and RFL55I/Q were observed with PSD and TF. The spectrum was measured with the FLATTOP window with the line resolution of 0.1Hz
DTT suggested that this corresponds to the BW of 0.471271Hz if I correctly understood what DTT plot said. We need this information to convert cnt/rtHz to cnt_pk
if we need. For the TF measurements, I needed to find the excitatin monitor but I could not. Therefore, I set the offset of LSC-LOCKIN1_SIG to be 1000,
so that C1:LSC-LOCKIN1_I_IN1 produce the same signal as the excitation.

Note that during the measurement, 628Hz nothces in the LSC servos were on. I confirmed that this provides the reduction of the feedback by a factor of 76.
As the original openloop gain at 629Hz is lower than the unity more than a factor of 2, this was sufficient attenuation to measure the optical gain with the systematic error of less than a %.

MICH excitation (ITMX -1, ITMY +1)
        PSD (cnt/rtHz)   TF Mag    Phase

REFL33I 0.098590         9.5691e-5 74.4344
REFL33Q 0.019294         1.8665e-5 71.1204
REFL55I 0.016123         1.3890e-5 77.3132
REFL55Q 0.157522         1.5285e-4 91.5594

PRCL excitation (PRM +1)
        PSD (cnt/rtHz)   TF Mag    Phase

REFL33I 15.7565          1.5298e-2 -109.727
REFL33Q  0.171648        1.6310e-4 -141.73
REFL55I 16.2834          1.5809e-2 -109.672
REFL55Q  0.634096        6.1012e-4 -143.169

These measurements are saved in the XML files (for DTT) in
130521_MICH_EXC.xml and 130521_PRCL_EXC.xml

As the actuator of the PRM/ITMX/ITMY are {19.6, 4.70, 4.66}/f^2 nm/cnt, the optical gains were calculated from the TF measurements.

MICH excitation (ITMX -1, ITMY +1)
REFL33I 4.0e9
REFL33Q 7.9e8
REFL55I 5.9e8
REFL55Q 6.5e9

PRCL excitation (PRM +1)

REFL33I 3.1e11
REFL33Q 3.3e9
REFL55I 3.2e11
REFL55Q 1.2e10

These should be compared with the measurement by the script and we get more information from the script (like AS55, REFL11)

  8632   Thu May 23 19:09:15 2013 JenneUpdateLSCSensing matrix scripts modified to include actuator calibration

After fixing up my calculations in my scripts, I have calculated the final PRMI sensing matrix (as measured very close to the violin frequency, so things may not be perfect). The data is from the file that Koji mentioned in his elog when he did the measurement:  elog 8611, sensematPRM_2013-05-22.12615.dat

Sensing Matrix, units = cts/meter, phase in degrees
            PRCL Mag   PRCL Phase    MICH Mag   MICH Phase  
AS55        1.064E+09   141.880      3.442E+09    11.929     
REFL11      3.474E+13  -108.372      4.316E+11   106.143     
REFL33      3.242E+11   -90.392      1.080E+10    81.037     
REFL55      3.373E+11   -92.060      1.394E+10    15.153 


In the plot, the little blobs on the ends of the 'sticks' are the error blobs.  Many of them are smaller than is really visible - this is good.  These errors come from measuring the lockin outputs several times while there is no drive to any optics, then the errors are propagated to each degree of freedom.  These errors do not incorporate any information about the precision of the actuator calibration, and they assume that the shape of all the sensor transfer functions are the same. 

If you look at the REFL11 and REFL33, it kind of seems like a miracle that we've ever been able to lock the full PRMI with the I&Q signals from either PD!

  8635   Thu May 23 21:45:51 2013 JenneUpdateLSCSensing matrix scripts now check for lockloss

A few more small mods to the sensing matrix script.  Now the script saves the data after each measurement, so that in case you lose lock and can't measure any more, you still have the data you already measured.  Also, the error bar measurements are last, so that the consequence of losing lock partway through the measurement is just that you get fewer error bar numbers.  Not a big deal, since the actual sensing matrix data is already saved.

Also, the old script had a lockloss checker that I had overridden since it wasn't where I wanted it.  I have now re-implemented it, so that the script will stop the oscillation and quit measuring if either the LSC enable switch is off, or the degrees of freedom you're trying to measure are not triggered.  All data saved before the lockloss is saved though (as mentioned above).

  15874   Sat Mar 6 12:34:18 2021 gautamUpdateLSCSensing matrix settings messed with

To my dismay, I found today that somebody had changed the oscillator frequencies for the sensing matrix infrastructure we have. The change happened 2 days and 2 hours ago (I write this at ~1230 on Saturday, 3/6), i.e. ~1030am on Thursday. According to the elog, this is when Anchal and Paco were working on the interferometer, but I can find no mention of these settings being changed. Not cool guys 😒 .

This was relatively easy to track down but I don't know what else may have been messed with. I don't understand how anything that was documented in the elog can lead to this weird doubling of the frequencies.

I have now restored the correct settings. The "sensing matrix" I posted last night is obviously useless.

  15876   Sun Mar 7 19:56:27 2021 AnchalUpdateLSCSensing matrix settings messed with

I understand this mst be frustrating for you. But we did not change these settings, knowingly atleast. We have documented all the things we did there. The only thing I can think of which could possibly change any of those channels are the scripts that we ran that are mentioned and the burt restore that we did on all channels (which wasn't really necessary). We promise to be more vigilant of changes that occur when we are present in future.


To my dismay, I found today that somebody had changed the oscillator frequencies for the sensing matrix infrastructure we have. The change happened 2 days and 2 hours ago (I write this at ~1230 on Saturday, 3/6), i.e. ~1030am on Thursday. According to the elog, this is when Anchal and Paco were working on the interferometer, but I can find no mention of these settings being changed. Not cool guys 😒 .

This was relatively easy to track down but I don't know what else may have been messed with. I don't understand how anything that was documented in the elog can lead to this weird doubling of the frequencies.

I have now restored the correct settings. The "sensing matrix" I posted last night is obviously useless.


  13313   Fri Sep 15 16:00:33 2017 gautamUpdateLSCSensing measurement

I've been working on analyzing the data from the DRMI locks last week.

Here are the results of the sensing measurement.


  1. The sensing measurement is done by using the existing sensing matrix infrastructure to drive the actuators for the various DoFs at specific frequencies (notches at these frequencies are turned on in the control loops during the measurement).
  2. All the analysis is done offline - I just note down the times at which the sensing lines are turned on and then download the data later. The amplitudes of the oscillators are chosen by looking at the LSC PD error signal spectra "live" in DTT, and by increasing the amplitude until the peak height is ~10x above the nominal level around that frequency. This analysis was done on ~600seconds of data.
  3. The actual sensing elements in the various PDs are calculated as follows:
    • Calculate the Fourier coefficients at the excitation frequency using the definition of the complex DFT in both the LSC PD signal and the actuator signal (both are in counts). Windowing is "Tukey", and FFT length used is 1 second.
    • Take their ratio
    • Convert to suitable units (in this case V/m) knowing (i) The actuator discriminant in cts/m and (ii) the cts/V ADC calibration factor. Any whitening gain on the PD is taken into account as well.
    • If required, we can convert this to W/m as well, knowing (i) the PD responsivity and (ii) the demodulation chain gain.
    • Most of this stuff has been scripted by EricQ and is maintained in the pynoisesub git repo.

The plotting utility is a work in progress - I've basically adapted EricQs scripts and added a few features like plotting the uncertainties in magnitude and phase of the calculated sensing elements. Possible further stuff to implement:

  • Only plot those elements which have good coherence in the measurement data. At present, the scripts check the coherence and prompt the user if there is poor coherence in a particular channel, but no vetos are done.
  • The uncertainty calculation is done rather naively now - it is just the standard deviation in the fourier coefficient determined from various bins. I am told that Bendat and Piersol has the required math. It would be good to also incorporate the uncertainties in the actuator calibration. These are calculated using the python uncertainties package for now.
  • Print a summary of the parameters used in the calculation, as well as sensing elements + uncertainty in cts/m, V/m and W/m, on a separate page.
  • Some aesthetics can be improved - I've had some trouble getting the tick intervals to cooperate so I left it as is for the moment.

Also, the value I've used for the BS actuator calibration is not a measured one - rather, I estimated what it will be by scaling the old value by the same ratio which the ITMs have changed by post de-whitening board mods. The ITM actuator coefficients were recently  measured here. I will re-do the BS calibrations over the weekend.

Noise budgeting to follow - it looks like I didn't set the AS55 demod phase to the previously determined optimal value of -82degrees, I had left it at -42 degrees. To be fixed for the next round of locking.

  15579   Fri Sep 18 10:47:48 2020 gautamUpdateBHDSensing scheme for homodyne phase


I don't think the proposed scheme for sensing and controlling the homodyne phase will work without some re-thinking of the scheme. I'll try and explain my thinking here and someone can correct me if I've made a fatal flaw in the reasoning somewhere.

Field spectrum cartoon:

Attachment #1 shows a cartoon of the various field components.

  • The input field is assumed to be purely phase modulated (at 11 MHz and 55 MHz) creating pairs of sidebands that are in quadrature to the main carrier field.
  • The sideband fields are drawn with positive and negative imaginary parts to indicate the relative negative sign between these terms in the Jacobi-Anger expansion.
  • For our air BHD setup, the spectrum of the LO beam will also be the same.
  • At the antisymmetric (= dark) port of the beamsplitter, the differential mode signal field will always be in the phase quadrature.
  • I'm using the simple Michelson as the test setup:
    • The ITMs have real and (nearly) identical reflectivities for all frequency components incident on it.
    • The sideband fields are rotated by 90 degrees due to the i in the Michelson transmission equation.
    • The Schnupp asymmetry preferentially transmits the 55 MHz sideband to the AS port compared to the 11 MHz sideband - note that in the simple Michelson config, I calculate T(11 MHz) = 0.02%, T(55 MHz) = 0.6% (both numbers not accounting for the PRM attenuation).
  • I think the cartoon Hang drew up is for the DRFPMI configuration, with the SRC operated in RSE.
    • The main difference relative to the simple Michelson is that the signal field picks up an additional 90 degrees of phase propagating through the SRC.
  • For completeness, I also draw the case of the DRFPMI where the SRC is operated at nearly the orthogonal tuning.
    • I think the situation is similar to the simple Michelson

So is there a 90 degree relative shift between the signal quadrature in the simple Michelson vs the DRFPMI? But wait, there are more problems...

Closing a feedback loop using the 44 MHz signal:

We still need to sense the 44 MHz signal with a photodiode, acquire the signal into our CDS system, and close a feedback loop.

  • The 44 MHz signal is itself supposed to be generated by the interference between the TEM00 55 MHz sideband from the IFO output with the TEM00 11 MHz sideband from the LO field (let's neglect any mode mismatch, HOMs etc for the moment).
  • By splitting this beat signal photocurrent in two, mixing each part with an electrical 44 MHz signal, and digitizing the IF output of said mixers, we should in principle be able to reconstruct the magnitude and phase of the signal.
  • The problem is that we know from other measurements that this signal is going to go through multiple fringes, and hence, we don't have a signal that is linear in the quantity we would like to control, namely the homodyne phase (either quadrature signal can be a candidate linear signal around a zero crossing, but when the signals are going through multiple fringes, neither signal stays linear).
  • One possible way to get around this problem is to use a phase tracker servo - basically, close a purely digital feedback loop, using one of the demodulated quadratures as an error signal, and changing the demodulation phase digitally such that the signal stays entirely in the orthogonal quadrature. However, such a scheme relies on the signal magnitude remaining constant. If the "error signal" goes to zero for multiple reasons (rotation out of the quadrature being considered, or just that the signal itself goes to zero), then this technique won't work. Of course, the phase tracker doesn't know what the "phase" of the signal is, when it's magnitude is (nearly) zero.
  • It is true that we always expect a "background" level of 44 MHz signal, from the 11 MHz and 55 MHz sidebands in the LO beam directly interfering, but this doesn't contain any useful information, and in fact, it'd only contaminate the phase tracker error signal I think.
  • So we can't rely on the error staying in one quadrature (like we do for the regular IFO PDH signals, where there is no relative phase propagation between the LO and RF sideband optical fields and so once we set the demodulation phase, we can assume the signal will always stay in that quadrature, and hence we can close a feedback loop), and we can't track the quadrature. What to do? I tried to dynamically change the phase tracker servo gain based on the signal magnitude (calculated in the RTCDS code using sqrt(I**2 + Q^2), but this did not yield good results...

Next steps:

I don't have any bright ideas at the moment - anyone has any suggestions?🤔


I wanted to check what kind of signal the photodiode sees when only the LO field is incident on the photodiode. So with the IFO field blocked, I connected the PDA10CF to the Agilent analyzer in "Spectrum" mode, through a DC block. The result is shown in Attachment #2. To calculate the PM/AM ratio, I assumed a modulation depth of 0.2. The RIN was calculated by dividing the spectrum by the DC value of the PDA10CF output, which was ~1V DC. The frequencies are a little bit off from the true modulation frequencies because (i) I didn't sync the AG4395 to a Rb 10 MHz signal, and (ii) the span/BW ratio was set rather coarsely at 3kHz.

I would expect only 44 MHz and 66 MHz peaks, from the interference between the 11 MHz and 55 MHz sideband fields, all other field products are supposed to cancel out (or are in orthogonal quadratures). This is most definitely not what I see - is this level of RIN normal and consistent with past characterization? I've got no history in this particular measurement. 

  15596   Tue Sep 22 22:38:11 2020 gautamUpdateBHDSensing scheme for homodyne phase - some analytic calcs

I got some feedback from Koji who pointed out that the phase tracker is not required here. This situation is similar to the phase locking of two lasers together, which we frequently do, except in that case, we usually we offset the absolute frequencies of the two lasers by some RF frequency, and we demodulate the resulting RF beatnote to use as an error signal. We can usually acquire the lock by simply engaging an integrator (ignoring the fact that if we actuate on the laser PZT, which is a frequency actuator, just a proportional feedback will be sufficient because of the phase->frequency conversion), the idea being that the error signal is frequently going through a zero-crossing (around which the sinusoidal error signal is approximately linear) and we can just "catch" one of these zero crossings, provided we don't run of actuation range.

So the question here becomes, is the RF44 signal a suitable error signal such that we can close a feedback loop in a similar way? To try and get more insight, I tried to work out the situation analytically. I've attached my thinking as a PDF note. I get some pretty messy complicated expressions for the RF44 signal contributions, so it's likely I've made a mistake (though Mathematica did most of the heavy lifting), it'll benefit from a second set of eyes. 

Anyways, I definitely think there is some additional complications than my simple field cartoon from the preceeding elog would imply - the relative phases of the sidebands seem to have an effect, and I still think the lack of the PRC/SRC make the situation different from what Hang/Teng et. al. outlined for the A+ homodyne phase control analysis. Before the HEPA failed, I had tried closing the feedback loop using one quadrature of the demodulated RF44 signal, but had no success with even a simple integrator as the loop (which the experience with the PLL locking says should be sufficient, and pretty easily closed once we see a sinusoidally oscillating demodulated error signal). But maybe I'm overlooking something basic conceptually?



I don't think the proposed scheme for sensing and controlling the homodyne phase will work without some re-thinking of the scheme. I'll try and explain my thinking here and someone can correct me if I've made a fatal flaw in the reasoning somewhere.

  5987   Wed Nov 23 13:53:36 2011 ZachUpdateGreen LockingSensor noise

The in-loop Y-Arm error signal looks equal to the beat note noise divided by the Y-Arm OL gain in the broadband-noise region (>20 Hz), which would be the case if the loop was dominated by sensor noise here.

I would re-check the Y-Arm dark noise, or at least check for coherence between the Y-Arm error signal and the beat signal above 20 Hz. The input-referred PDH box noise should not be flat there according to the LISO model, but that might be worth checking, too.


  6502   Fri Apr 6 20:24:31 2012 Mike J.UpdateComputersSensoray

The Sensoray device is currently viewing Monitor 4 and plugged into Pianosa.  The user interface is run at /home/controls/Downloads/sdk_2253_1.2.2_linux/python demo.py. It can preview and capture the video stream, however the captured files are terrible. I believe it has something to do with the bitrate, since the captured video with lower bitrates are not as bad as the ones with higher bitrates, but  I am not certain.

  6503   Fri Apr 6 20:38:41 2012 Mike J.UpdateComputersSensoray

 Turns out that the "MPEG-4 VES" video format is just bad for captured video.  Everything except "MP4" and "MPEG-TS" works for streaming, and "MP4" and "MPEG-TS" seem to be the only captured formats that can be viewed properly.

  6513   Mon Apr 9 20:02:19 2012 Mike J.UpdateComputersSensoray

The highest resolution available is 720x480 pixels. Bit depth of captured images and video is most likely 16 bits per pixel. Video may be captured raw as well, which will be necessary for image subtraction/enhancement, however it cannot currently be played raw. A captured image is shown below, along with MP4 video.



  6517   Tue Apr 10 23:56:44 2012 ranaUpdateComputersSensoray

Now that Mike has got the Sensoray working, Jenne/Suresh should grab some new images of the ETM cage as Keiko did so that we can analyze them for another mode matching diagnostic.

  6592   Tue May 1 17:42:15 2012 Mike J.UpdateComputersSensoray

I've upgraded the Sensoray GUI so it can now switch the video channel it receives, thanks to the videoswitch script.


  17239   Mon Nov 7 21:57:42 2022 alexUpdateGeneralSensoray

I have made little progress in getting the sensoray driver installed on Donatella. I have confirmed that it is indeed the reason why none of the hardware is working. I am now working through changes on a virtual machine that is running Scientific Linux to find something that may work. If no progress is made soon, I will ensure that software for a replacement video encoder is able to be installed before requesting we order one.

  17247   Tue Nov 8 21:39:12 2022 alexSummaryGeneralSensoray & SDI Video Encoder selection

I have been looking at various replacements for the sensoray, and have found that the majority of new usb video encoders don't have drivers anymore and now just work through being embedded with video-capturing software. This means that the hardware must be used with a compatible video player such as VLC or OBS. VLC can natively be run with terminal commands, and because OBS is open source, there are packages that can be downloaded to use terminal commands to control the software as well. I am not sure to what extent the usb video encoder can then be controlled with these commands, but this seems to be the easiest method so far. I will finish picking which new unit we should purchase tomorrow, and order it through JC. 

  7364   Fri Sep 7 17:24:16 2012 Mike J.UpdateComputersSensoray Video Capture

To capture video with the Sensoray, open the GUI (python ./demo.py), simply press "Save," enter a filename, and hit "Stop" when you wish to stop recording. If you want to change the video format, there is a dropdown menu labelled "Format." I recommend MP4 for standard video, and nv12 for RAW video.

  7365   Fri Sep 7 17:34:53 2012 JenneUpdateComputersSensoray Video Capture


To capture video with the Sensoray, open the GUI (python ./demo.py), simply press "Save," enter a filename, and hit "Stop" when you wish to stop recording. If you want to change the video format, there is a dropdown menu labelled "Format." I recommend MP4 for standard video, and nv12 for RAW video.

 I also installed mplayer on rossa, so we can play the videos there.

Even though Mike won't admit it, the video stuff is all in /users/sensoray/ .  I opened the demo.py from there, and it also works.

  7362   Fri Sep 7 15:31:52 2012 Mike J.UpdateComputersSensoray back up

Video Capture with the Sensoray works again. Pianosa just needed mplayer installed for it to play properly.

  17224   Thu Nov 3 16:00:58 2022 alexSummaryGeneralSensoray updates

I am currently working on getting the driver reinstalled on Donatella for the sensoray. An issue keeps arising that will not allow me to run "make" successfully in the unzipped driver folder. Will continue to remedy this.

This is why there is no light showing up on the device while plugged in. The computer does see the device, but does not show its model due to the inability for it to communicate without the driver.



  3545   Wed Sep 8 11:56:24 2010 kiwamuSummaryCDSSeptember CDS test plan

 Joe and Kiwamu

We discussed about our CDS plan for this September. The summary of the plan and "to do list" are now on the wiki page;



  Basically there are three major missions that we will do in this month;

1. complete damping of the vertex suspensions
2. Preparation for Green locking
3. Development of Simulated Plants

 We also try to keep updating the wiki page.

  14320   Mon Nov 26 21:58:08 2018 JonOmnistructure Serial Vacuum Signals

All the serial vacuum signals are now interfaced to the new digital controls system. A set of persistent Python scripts will query each device at regular intervals (up to ~10 Hz) and push the readings to soft channels hosted by the modbus IOC. Similar scripts will push on/off state commands to the serial turbo pumps.

IP Addresses/Comm Settings

Each serial device is assigned an IP address on the local subnet as follows. Its serial communication parameters as configured in the terminal server are also listed.

Device IP Address Baud Rate Data Bits Stop Bits Parity
MKS937a vacuum gauge controller 9600 8 1 even
MKS937b vacuum gauge controller 9600 8 1 even
GP307 vacuum gauge controller 9600 8 1 even
GP316a vacuum gauge controller 9600 8 1 even
GP316b vacuum gauge controller 9600 8 1 even
N2 pressure line gauge 9600 7 1 odd
TP2/3 9600 8 1 none

Hardware Modifications

  • Each of the five vacuum gauge controllers has an RJ45 adapter installed directly on its DB9/DB25 output port. Because the RJ45 cable now plugs directly into the terminal server, instead of passing through some additional adapters as it formerly did, it was necessary to reverse the wiring of the controller TXD and RXD pins to Ethernet pins. The DB9/25-to-RJ45 adapters on the back of the controllers are now wired as follows.
    • For the MKS controllers: DB2 (RXD) --> Eth4;  DB3 (TXD) --> Eth5;  DB5 (RTN) --> Eth6
    • For the Granville-Phillips controllers: DB2 (TXD) --> Eth5;  DB3 (RXD) --> Eth4;  DB7 (RTN) --> Eth6
  • I traced a communications error with the GP307 gauge controller all the way back to what I would have suspected least, the controller itself. The comm card inside each controller has a set of mechanical relay switches which set the communications parameters (baud rate, parity, etc.). Knowing that this controller was not part of the original installation, but was swapped in to replace the original in 2009, I pulled the controller from the rack and checked the internal switch settings. Sure enough, the switch settings (pictured below) were wrong. In the background of the photo is the unit removed in 2009, which has the correct settings. After setting the correct communications parameters, the controller immediately began communicating with the server. Did these readouts (PRP, PTP1) never work since 2009? I don't see how they could.
  8745   Tue Jun 25 12:42:16 2013 gautamUpdateGeneralSerial-interface with Doubling Oven at Y end


I have been working on setting up a serial-link with the temperature controller of the PPKPT crystal doubling oven at the Y-end for some time now. The idea was to remotely tune the PID gains of the controller and get temperature data. The device used to serially interface with the temperature controller is a Raspberry Pi model B, which is connected to the temperature controller by means of a USB to serial adaptor with a PL2303 chip. I installed the interface this morning, and have managed get talking with the doubling oven. I am now able to collect time-series data by ssh-ing to the Raspberry Pi from the control room. I will use this data to manually tune the PID gains for now, though automatic tuning via some script is the long-term goal.



The temperature controller for the doubling oven is a Thorlabs TC200, and supports serial communication via the RS232 protocol by means of a female DB9 connector located on its rear panel. I have hooked up the Raspberry Pi to this port by means of a USB-Serial adaptor that was in one of the cabinets in the 40m control room. After checking the Martian Host Table, I assigned the Raspberry Pi the static IP so that I could ssh into it from the control room and test the serial-link. This morning, I first hooked up the Raspberry pi to an ethernet cable running from rack 1Y4 to make sure I could ssh into it from the control room. Having established this, I moved the raspberry pi and its power supply to under the Y-endtable, where it currently resides on top of the temperature controller. I then took down the current settings on the temperature controller so that I have something to revert to if things go wrong: these are

Set-Point:                           35.7 Celcius

Actual Temperature:          35.8

P-gain:                                 250

I-gain:                                 60

D-gain:                                25

TUNE:                                  ON

I then connected the Pi to the temperature controller using the serial-USB cable, and plugged the ethernet cable in. Rebooted the Pi and ssh-ed into it from the control room. I first checked the functionality of the serial-link by using terminal's "screen" feature, but the output to my queries was getting clipped on the command line for some reason (i.e. the entire output string wasn't printed on the terminal window, only the last few characters were). Turns out this is some issue with screen, as when I tried writing the replies to my queries to a text file, things worked fine. 

At present, I have a python script which can read and set parameters (set-point temperature, actual temperature, PID gains)on the controller as well as log time-series data (temperature from the temperature sensor as a function of time )to a text file on the Pi. As of now, I have only checked the read functions and the time-series logger, and both are working (some minor changes required in the time-series function, I need to get rid of the characters the unit spits out, and only save the numbers in my text-file). 

For the time-being, I plan to apply a step to the controller and use the time-series data to manually tune the PID parameters using MATLAB. I am working on a bunch of shell scripts to automate the entire procedure.

  9091   Fri Aug 30 11:00:46 2013 ManasaUpdateGeneralSeries of earthquakes

There has been a series of earthquakes since the big 7.0 in Alaska this morning.

None of the watchdogs were tripped when I came in. But I could not retrieve any info about the suspensions from fast channels because c1sus was not talking to the fb and that required an mxstream restart to fix it.

MC is trying to lock itself, but the seismic doesn't seem to get quiet. So MC is not all that happy.



  3459   Mon Aug 23 21:04:14 2010 JenneUpdateTreasureSeriously?

Bad CDS team. Bad.





  16907   Fri Jun 10 15:02:04 2022 yutaUpdateSUSServo gain sign flipped for MC1 WFS relief

The servo gain for MC1 in /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefWFS was flipped to account for COIL_GAIN flip done in 40m/16898.
The reliefWFS script now works fine.

ezcaservo -r 'C1:SUS-MC2_ASCPIT_OUT16' -g ${g} -t ${ts} C1:SUS-MC2_PIT_COMM & 
ezcaservo -r 'C1:SUS-MC2_ASCYAW_OUT16' -g ${g} -t ${ts} C1:SUS-MC2_YAW_COMM & 
ezcaservo -r 'C1:SUS-MC1_ASCPIT_OUT16' -g -${g} -t ${ts} C1:SUS-MC1_PIT_COMM &  
ezcaservo -r 'C1:SUS-MC1_ASCYAW_OUT16' -g -${g} -t ${ts} C1:SUS-MC1_YAW_COMM & 
ezcaservo -r 'C1:SUS-MC3_ASCPIT_OUT16' -g ${g} -t ${ts} C1:SUS-MC3_PIT_COMM & 
ezcaservo -r 'C1:SUS-MC3_ASCYAW_OUT16' -g ${g} -t ${ts} C1:SUS-MC3_YAW_COMM & 

ELOG V3.1.3-