Peter K, Fil, Danny, TVo
TCS Electronics block diagram: E1100892
Yesterday's trouble with the CO2Y led us to investigating the RF signal chain for the laser. Fil checked that the signal coming from the function generator in the chiller mezzanine is giving us a clean ~40.6 MHz sine wave all the way to the table. However, once it reached a Pulse Research Lab comparator that turns the sine wave into a TTL square wave (or close to one), we found the signal did not match CO2Xs' RF signal and was an odd shape as well, it looked more like a wave packet shape instead of a square wave like we'd expect.
So we pulled the PRL comparator as well as the RF splitter/amplifier box from Access to test the units in the EE lab. In the LVEA, the signals looked terrible but once we tested it in the lab, they seemed to do what was expected. Then we hooked everything back up at the CO2 table and the RF signals looked a lot cleaner, even though we haven't really made any changes!. At this point we decided to try to test out the laser out again but there were still no lasing, unfortunately.
The next steps we're going to try to debug is the RF Driver outputs to the laser, however, there isn't a lot of documentation on how this driver actually works and I'm not sure what we should expect as far as power out but we can try to compare the signals to CO2X for reference and try to narrow down what could be wrong. The drivers and lasers are paired together so if either are broken, we'll need to swap both and re-align the table.
Note to self: We can try to measure the control signals that enable the RF Drive, usually it's controlled by our TCS Controller box via a DB15 cable but we can test that the interlocks and gates are properly enabled with a breakout board directly at the RF driver.
We have seen this happen several times today that when we are trying to acquire DRMI the SCRL1 INPUT is not engaged.
Here is an example of the guardian log from one of these times:
2018-08-16_02:26:16.482989Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1_SW1 => 4
2018-08-16_02:26:16.483443Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.484120Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH2 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.484522Z ISC_DRMI [ACQUIRE_DRMI_1F.main] setting gains for DRMI with arms
2018-08-16_02:26:16.484900Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1_GAIN => 2.8
2018-08-16_02:26:16.485747Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1_SW1 => 4
2018-08-16_02:26:16.486142Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.489634Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL2 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.490422Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1_GAIN => 16
2018-08-16_02:26:16.491160Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_SW1 => 4
2018-08-16_02:26:16.491516Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.492437Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL2 => ON: INPUT, OUTPUT
2018-08-16_02:26:16.493309Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_GAIN => -30
2018-08-16_02:26:16.494002Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_SW1 => 0
2018-08-16_02:26:16.744942Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1 => OFF: OFFSET
2018-08-16_02:26:30.405918Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_02:26:30.410829Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_02:26:30.916934Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_02:26:58.930257Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_02:26:58.930964Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_02:26:59.430789Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_02:27:20.292016Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_02:27:20.292626Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_02:27:20.793482Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_02:27:51.890241Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_02:27:51.891743Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_02:27:52.393734Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
Attached is also a plot of SRCL1_SWSTAT and the guardian state at this time, from Aug 16 2018 02:26:14 UTC on the SRCL1_SWSTAT is 37632, which is:
FM9
FM10
OUTPUT
DECIMATION
The input really was off, Hang manually turned it on.
This seems to be happening consistently each time we try to lock DRMI, it happened again at around 2:55 UTC
Hang and I did a test where we commented out a switch that happens to the SRCL1 filter:
for dof in ['MICH', 'PRCL', 'SRCL']:
ezca.get_LIGOFilter('LSC-%s1'%dof).switch('INPUT','OUTPUT', 'ON', wait=False)
ezca.get_LIGOFilter('LSC-%s2'%dof).switch('INPUT','OUTPUT', 'ON', wait=False)
if ezca.read('GRD-SUS_ETMX_STATE', as_string=True) == 'MISALIGNED' or lscparams.gate_valve_flag == True:
log('setting gains for DRMI without arms')
ezca.get_LIGOFilter('LSC-%s1'%dof).ramp_gain(lscparams.gain['DRMI_%s'%dof]['NO_ARMS'], ramp_time=2, wait=False)
else:
log('setting gains for DRMI with arms')
ezca.get_LIGOFilter('LSC-%s1'%dof).ramp_gain(lscparams.gain['DRMI_%s'%dof]['ACQUIRE'], ramp_time=2, wait=False)
#ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') # ensure modehop offset is off before trying to acquire
with the last line here commented out, the input was on at the end of the state. I don't understand why switching the offset off should also turn off the input, this seems like a bug which could be bad.
Here is the guardian log at this time:
2018-08-16_03:15:29.555316Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1_SW1 => 4
2018-08-16_03:15:29.555808Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.650288Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH2 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.651080Z ISC_DRMI [ACQUIRE_DRMI_1F.main] setting gains for DRMI with arms
2018-08-16_03:15:29.653531Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1_TRAMP => 2
2018-08-16_03:15:29.657395Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-MICH1_GAIN => 2.8
2018-08-16_03:15:29.660579Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1_SW1 => 4
2018-08-16_03:15:29.661017Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.661774Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL2 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.663042Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1_TRAMP => 2
2018-08-16_03:15:29.664269Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-PRCL1_GAIN => 16
2018-08-16_03:15:29.665760Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_SW1 => 4
2018-08-16_03:15:29.666674Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.668874Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL2 => ON: INPUT, OUTPUT
2018-08-16_03:15:29.669472Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_TRAMP => 2
2018-08-16_03:15:29.677308Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_GAIN => -30
2018-08-16_03:15:57.549237Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_03:15:57.553965Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_03:15:58.049619Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_03:16:26.037704Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_03:16:26.038565Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_03:16:26.540255Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_03:16:52.536669Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_03:16:52.542715Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_03:16:53.043944Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
2018-08-16_03:17:32.666054Z ISC_DRMI [ACQUIRE_DRMI_1F.run] flashed, waiting to proceed
2018-08-16_03:17:32.672112Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] = 0.5
2018-08-16_03:17:33.173887Z ISC_DRMI [ACQUIRE_DRMI_1F.run] timer['lockpause'] done
So the problem is that switching off th OFFSET is also switching off the INPUT? Can you try using "cdsutils switch" from the command line and see what that does? It should also be able to tell you what buttons are engaged/disengaged, or you can use "cdsutils sfm" to decode the raw SW1/2 EPICS records.
Are these channels hooked up to any triggers?
When I open a guardian shell for ISC_DRMI everything works correctly. Same with cdsutils switch, everything is working correctly. The switching statementsH1:LSC-SRCL1_SW1 => "Number"are only sent if the button needs to be pressed, and the"Numberis not 0, unlike these two lines from Sheila's original alog:2018-08-16_02:26:16.494002Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1_SW1 => 0 2018-08-16_02:26:16.744942Z ISC_DRMI [ACQUIRE_DRMI_1F.main] ezca: H1:LSC-SRCL1 => OFF: OFFSETSeems that our online guardian is not functioning the same as the interactive shell.craig.cahillane@zotws14:~ 0$ guardian -i ISC_DRMI -------------------- aLIGO Guardian Shell -------------------- ezca prefix: H1: system: ISC_DRMI (/opt/rtcds/userapps/release/isc/h1/guardian/ISC_DRMI.py) In [1]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1 => OFF: OFFSET In [2]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1 => OFF: OFFSET In [3]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1_SW1 => 8 H1:LSC-SRCL1 => OFF: OFFSET In [4]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1_SW1 => 8 H1:LSC-SRCL1 => OFF: OFFSET In [5]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1 => OFF: OFFSET In [6]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1_SW1 => 8 H1:LSC-SRCL1 => OFF: OFFSET In [7]: ezca.get_LIGOFilter('LSC-SRCL1').switch('OFFSET','OFF') H1:LSC-SRCL1 => OFF: OFFSET In [8]: ezca.get_LIGOFilter('LSC-SRCL1').switch('INPUT','OFF') H1:LSC-SRCL1_SW1 => 4 H1:LSC-SRCL1 => OFF: INPUT In [9]: ezca.get_LIGOFilter('LSC-SRCL1').switch('INPUT','ON') H1:LSC-SRCL1_SW1 => 4 H1:LSC-SRCL1 => ON: INPUT
Jamie,
SRCL1 has FM1 triggered, none of the rest of them are triggered.
Above In[3] and In[4] are examples where Craig had set the SRCL1 bank up in the same way it will be when this command is run by the guardian.
As far as I can tell from looking at H1:LSC-SRCL1_SWSTAT channel via NDS remotely, it looks like the INPUT is never set to on, even though the log would have you believe that it was.
Are you really sure there's no internal triggering happening on this filter module?
If there's triggering happening on this filter module I would be much more suspicious of that than guardian just spontaneous not doing something. The triggering and guardian could easily be fighting each other. Please check that you know exactly what the triggering is doing in this circumstance.
This does seem to be something to do with the triggering, only FM1 is triggered.
Daniel, Nutsinee
It seemed that we weren't in dual resonance but somehow still got some down conversion through. About -60dB of 6 MHz beat note was visible from the RF mon (this number has already taken 23dB attenuation into account). The UGF was only at ~80Hz but a lock is a lock! We will try again after we tune the oven temperature for dual resonance tomorrow -- expecting a factor of 100 more signal once this is achieved. The VCXO should have 100kHz range. The transfer function was a bit noisy due to an on-going work on the SQZT6

With some work on the homodyne unbalancing problem, finally the homodyne is working with visibility 97%.
Diodes Quantum Efficiency:
There are little mount of back reflections in the level of uW that are hard to measure, resulting in the >1 QE.
Note: These diodes are sensitive to the beam size and angle, which should be paid much attention.
Visibility:
Thanks for Lee sending a new diode, and help from Marc on the circuits and board!
Next step:
[Sheila, Gabriele]
The REFL DC centering loops (DC1 and DC2) were not working very well. We measured the loop transfer functions for all pitch and yaw degrees of freedom, and tried to tune the gains. We were confused by the different shapes of the loops, the different signs and gains.
Therefore:
We measured again the output matrix to RM1 and RM2, by adding DC offsets at the suspension M1 stages and measuring the motion on REFL_A and REFL_B. We did this with single bounce from the PRM. The old matrix was completely wrong. The plot below shows the effect of adding offsets at the output of the DC1/2 pitch/yaw loops, before and after inverting the matrix. Before the loops were completely coupled, after they are quite well decoupled.
After this, we fixed a couple of more things in the control filters: a different sign in DC2_P, and reduced the Q of all ~1 Hz zeros to 3 (from 7). With this configuration, all centering loops can be closed with the same control filter, with a bandwidth of about 2 Hz, same sign in all cases, gain of -200 in pitch and -300 in yaw. The plots below shows the measured open loop transfer functions.
The configuration of the DC1 and DC2 and of the output matrixes is shown in the attached plots.
15:00 Bubba, Christina, Nicole & Caltech property people to EX/EY
16:00 Nutsinee Haosun to squeezer area
16:00 Peter, Tvo & Danny to TCSY table
16:45 Hugh, Edgard to EX to move anemometers
17:30 Kyle to MY
20:00 Terry Nutsinee to LVEA
22:00 A 6.5M eq in the Aleutians breaks lock, I put SEI_CONF in LARGE_EQ, additionally, I noticed vertical drives on all the BSCs were large, so I temporarily switched the St1Z blends to 250mhz blends to keep the tables from tripping.
23:00 Danny to HWS table
J. Kissel for the Commissioning Vanguard We had a good solid lock stretch under RF DARM (not yet on DC readout, but cavities fully resonance, some ASC loops were engaged) from 2018-08-15 19:19 UTC to 20:48 UTC. And from 20:00 UTC to about 20:40 UTC, the detector was left alone, undisturbed while we were in our daily commissioning meeting. A good stretch of data to use for looking at things offline!
Attached is a sketch of the locations to which Edgard and I moved the Anemometers. We only moved Sensors 2 & 4; there is no Speed_3 yet. Coordinates are feet from fence center post.
I've added a photo too.
I have removed the test mass oplev damping from the guardian. As things are currently, the optics take longer to damp with the oplevs on than with them off. This is true of all 4 test masses. ETMX is more egregious in that the kick it receives upon lockloss can push the optic off the oplev entirely, and then the oplev loop just goes into oscillation.
When we have some time, we should re-look at these loops. And, recenter ETMX's oplev.
The ALS fiber polarization remote control changes the fiber polarization when it is turned on. In the attached plot you can see the behavior, the box was turned on at the time of the first large step.
I have also had difficulty correcting the polarization using the box.
Also, some of the channel names with it seem to not be in the DAQ (or for some other reason I can't find them in dataviewer). One example is H1:CDS-PULIZZI_ACPWRCTRL_MSR0_OUTLET_1_STATUS
my bad, I had created the ini file for the remote power channels (H1EDCU_CDSACPWR.ini) but forgot to add it to the DAQ master. It has now been added and will go into effect on the next DAQ restart.
I believe the issue on power up is that it is returning to the last position it was manually set to. From the manual: "When any waveplate is moved manually at the front panel, the MPC1 commits the position to memory within 3ms, thereby, automatically enabling the angular position of all waveplates to be reset on the next power-up. This short interval provides adequate time for the user’s angular settings to be saved in all but the most severe power failure conditions. It is important to note that this memory functionality does not exist, however, when motion commands are invoked via remote control, user entered pre-set programs, or the scramble mode. The resolution is also not saved in memory – on power-up it will be set to the default 0.15° per tick." This is not immediately seen on the medm screen because the position is not periodically polled. It is only polled after a remote positioning command is sent or if the 'Update' button on the medm screen is clicked.
I chose not to have it periodically poll the positions of the paddles, because there is no way for the software to know if the MPC is powered off, and if the MPC is powered off then the periodic polling would constantly report a communication timeout error.
TVo, Danny
To get a better idea of how the picomotor movements effect the movement of the Hartmann beam across the ITM, we decided to move them by a larger amount. To make sure there isn't any clipping I went out to the HWS table and removed the Hartmann plate to view the beam on the ccd while moving.
The following moves were made:
ITMX upper periscope mirror: 700 counts to the right
ITMX lower periscope mirror: 500 counts to the right
ITMY upper periscope mirror: 500 counts to the left.
Attached are the current picomotor settings.
A ring heater test will be coming soon.
TVo, Georgia, Danny
After a discussion at the commissioning meeting about using CO2X for a contrast defect measurement, we moved the Hartmann beam for ITMX back to where it was before this comment in order to make an attempt at centering CO2X sometime tomorrow. The plan is to do a contrast defect measurement and have CO2X (about) centered sometime before Friday so we can use CO2X to improve it on Friday.
Danny, Georgia
This morning we worked on the ETMY HWS table. All mirror labels are referenced from this diagram.
This looks very similar to what we got with the 50 micron fiber in May: aLOG 42204. Where is the beam from the fiber launcher converging in this system?
I had expected the 50-micron fiber to improve things but it, counter-intuitively, made the beam much bigger. With nominally the same NA on the fibers, the extra modes in the 200 micron fiber should produce a larger beam size. This suggests that the mode-matching is not exactly what I think it is.
One possible test is to scan the range of the translation stage (in steps of 2mm) and get images of the beam profile on the HWS for each step with the fiber launcher iris fully open, partly open (say 6mm diameter) and almost completely closed (say 2mm diameter aperture).
Alastair sent me an email saying that the RF driver and lasers are paired for optimal performance but it will work for the short term in order to diagnose where the issue might be stemming from (laser or driver). Although we're not sure the duration of "short term" in this case but we'll cross that bridge when we get there.
Alastair sent me an email saying that the RF driver and lasers are paired for optimal performance but it will work for the short term in order to diagnose where the issue might be stemming from (laser or driver). Although we're not sure the duration of "short term" in this case but we'll cross that bridge when we get there.