40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  Cryo Lab eLog, Page 3 of 58  Not logged in ELOG logo
ID Date Author Type Category Subject
  2807   Tue Aug 31 15:14:28 2021 aaronDailyProgressLaserquieting the Rio W and Teraxion beat notes, but not much help

Between 0.5 and 50 Hz, there are a couple of regions where the Rio W laser noise dominates the three corner hat measurement. And, below 0.3 Hz, the Teraxion laser noise dominates the measurement. Today I'm going to try to quiet these two lasers a bit to make a slightly improved three corner hat estimate.

I'll be looking at the output of the delay line frequency discriminator (DFD) on the moku spectrum analyzer, so I've swapped in the 1.9 MHz lowpass filter for the one Rana was using to check the noise out at MHz.

I saved the following traces on an SR785, but with a nonfunctioning GPIB so ended up storing them on a floppy drive.

  • Baseline Rio W x Teraxion beat note spectrum, as measured by phasemeter to Moku / SR785
  • Beat note spectrum after securing the fibers and Faraday isolators to the table, and moving the Rio W laser to a different operating point. 
  • "" after adding a layer of foam atop the fibers
  • "" after turning off the HEPA blowers. Noticed several noise lines around 100-300 Hz substantially reduced after turning off the HEPA.

I saw minor improvements to the Rio W x Teraxion beat note spectrum, and took 20 minutes of data for each beat note. Dropbox upload failed several times, so I sent it to my laptop via ipad file storage and airdrop. After swapping fiber connectors and covering with foam, the system took ~15-30 minutes to equilibrate each time (though perhaps longer would have been prudent, since I still saw low frequency drift up to 4 MHz during the 20 min measurement time). No improvement to the estimate on Teraxion laser, and if anything the West laser was even more noisy relative to Rio E and Teraxion, across a wider frequency band (almost the entire band from 30 mHz - 90 Hz). The foam and turning off the HEPA FFU did reduce the noise below 1 Hz, especially for the Rio E x Teraxion beat note. Figure 1 uses maximal averaging for every 2-fold frequency increase, on 20 minutes of data taken today (attachment 2 reproduces the relevant figure from last week's data, without the Marconi reference for better viewing). 

Attachment 3 is the updated Teraxion noise estimate. 

Update: attachment 4 is a comparison of the frequency noise (uncalibrated) for three different configurations: after taping down the fibers, after adding foam, and after turning off the HEPA blowers. I'm not sure why turning off the HEPA blowers increased the noise, maybe should have let the system settle longer? Despite the overall higher noise floor with HEPA blowers off, several peaks between 10 and 100 Hz were reduced. 

Attachment 1: beats_regions_base2.pdf
Attachment 2: beats_regions_base2.pdf
Attachment 3: Teraxion_noise_base2.jpg
Attachment 4: DLFD_foam.pdf
  2806   Tue Aug 31 13:23:05 2021 aaronDailyProgressSuspensionclamped cantilever

[aaron, shruti]

We found a heavily pitted cantilever from Zach's early fab runs, and mounted it in his clamp using the alignment jig and pins. We tried optically contacting one of the mirrors to the cantilever, but some combination of surface oxidation and roughness (or just inexperience) prevented us from making a bond. The surface of the cantilever had obvious defects, so we weren't very hopeful. We're seeing what Koji suggests for glue.


  2805   Mon Aug 30 14:06:00 2021 aaronNotesSi fabCantilever fabrication process

We're starting to make new cantilevers this week. Here is our process, largely drawn from Zach's thesis, based on the process from the Chao group (D1200849) and the standard techniques of hard mask etching.

Wafer stock

Zach started with a 100 mm (4") undoped <100> Si wafer with 500 um thickness. He reports achieving similar mechanical Qs of the final cantilevers when starting with either SSP or DSP polished wafers, though we may want to investigate this further. To avoid spoiling too many large wafers, I'd like to start by processing our 2" x 280 um wafers that are leftover from the cryo Q experiment, and will inventory our larger wafers to determine what we should order. We also have some 3" wafers we can use to fabricate full-length (7 cm) cantilevers in smaller batches than had we used 4" wafer. 


  1. RCA clean, following the steps in elog 2343 but with the HF etch after the RCA2 bath. 
  2. Deposit a 400 nm thick hard mask of SiNx with PECVD
  3. Pattern the nitride mask with photolithogrphy
    1. Apply 1.5 um of AZ 5214E photoresist evenly on one side of the wafer, using a spinner run at 4000 rpm for 1 minute
    2. Bake the wafer with photoresist on a hot plate at 110 C for 50 seconds
    3. Load the wafer and a photolithography mask into the Suss Microtech MA6/BA6 contact aligner, which exposes the photoresist to UV for ~ 10 seconds
    4. Develop the photoresist by bathing in MF CD-26 for 1 minute, then rinse and dry the wafer
  4. Dry etch the nitride with a pseudo Bosch etch, which uses a plasma of sulfur hexafluoride and octafluorocyclobutane. The process produces a vertical etch profile by passivating the exposed surfaces during the etch. 
    1. Etch for 5 minutes to remove the 400 nm SiNx layer in the exposed region
    2. Then, use a remover solution (chemical not mentioned) to remove the remaining photoresist.
  5. Wet etch through the remaining Si in the exposed region
    1. Submerge the wafer in a 30% KOH solution at 80 C. At this temperature, the etch proceeds at 1 um / min, so it takes ~ 8 hours to etch through a 500 um wafer.
    2. 6 hours into the etch (for a 500 um wafer), remove the wafer from the KOH bath and break the remaining wafer into rectangular pieces along the etched lines
    3. Place the rectangular pieces into a fixture and return them to the KOH bath for the remainder of the etch.
    4. Rinse, dry, and finally etch away the remaining SiNx hard mask by submerging briefly in HF
  6. Finally, passivate the surface by depositing a thin (10s nm) layer of SiNx with PECVD

Zach's procedure calls for thinning the central region of the cantilever, which softens the suspension and improves isolation. I expect we'll want to evaluate our cantilevers before thinning, since the procedure to thin the central region is a bit tricky. When we do thin the cantilevers, we will not terminate the process at step 6 but instead continue with the following:

  1. Deposit another SiNx hard mask
    1. deposit 200-300 nm SiNx on the 'bottom' side of the cantilever with PECVD
    2. Also deposit 200-300 nm SiNx on the 'top' side of the cantilever, but physically obstruct the central region of the cantilever with a sacrificial piece of Si. Covering part of the cantilever ensures SiNx is mostly deposited only on the exposed regions.
  2. Another round of wet etching
    1. Etch in KOH for 4 hours, which leaves about 250 um thick region in the center of the cantilever (versus 500 um on the ends). 
  3. HF etch the remaining SiNx, DI rinse, and dry the cantilevers
    • It's unclear to me whether to passivate with SiNx after the final HF etch, or if the final etch is simply terminated before the bare Si surface can be exposed. Will ask Zach.
    • Following the final HF etch, package the cantilevers in a wafer carrier and seal in a plastic bag purged with dry N2 gas.  


Materials we need to acquire are in bold

  • RCA clean
    • Chemicals provided by KNI
    • Wafer from our stock
    • PVDF reinforced wafer tweezers and baskets for use with the HF bath
    • Possibly a better wafer holder, but the standard cassettes will do for now
  • photolithography
    • Possibly need to acquire our own developer, does KNI carry MF CD-26?
    • We found what we think is the appropriate transparency mask in Zach's old materials
  • Etching
    • KNI stock materials only


Our training status on the equipment is green for 'full user,' orange for 'supervised user,' or red for 'need initial training.

  • Oxford Instruments System 100 PECVD unit
  • Oxford Instruments System 100 ICP 380 etcher
  • Suss Microtech MA6/BA6 contact aligner
  2804   Fri Aug 27 15:27:38 2021 ranaDailyProgressLaserdelay line frequency discriminator

rather than the perfect solution to PSD estimates, how about using the code you already have and just change the binning a little more often than once per decade? i.e. stich together as you already did, but get more averaging in the noisy spots. Should be a very easy modification to the code.

  Draft   Thu Aug 26 19:40:06 2021 ranaNoise HuntingLaserhigh frequency frequency noise measurement w/ DFD and new low pass

I modified Aaron's DFD box: I replaced the SLP-1.9 (1.9 MHz low pass filter) with a 44 MHz low pass that we conveniently had in the lab.

The purpose of this is to measure the high frequency noise of some of our lasers to figure out if there's any difference between the RIO Planex and Teraxion NLL.

I did the hookup and everything looks good so far. So far I have measured the RIO E/W beat and the RIO E vs Terax beat.

Need to do some more data processing to get plots.

Some notes along the way:

  • For monitoring the output of the RF amp, we want to use the CPL IN port of the bi-directional coupler that goes between the amp and the DFD. The CPL IN measures a coupled version of the input, whereas the CPL OUT measures the reflection that comes back from the DFD box. At 175.5 MHz, with the 44 MHz low pass on the mixer IF port, the reflected signal ~ -40 dBm when the CPL IN was at ~ -10 dBm.
  • I have made a shared folder in ligo.wbridge dropbox called PSOMA_data. Now that Moku is logged in to dropbox, and dropbox installed on the gaston workstation, the files are automatically synced to the workstations. We can also share the folder with our personal dropbox accounts so that there's seamless data availability.
  • Also attaching the times series plot used to calibrate the discriminant. I used the Marconi knob to scan the frequency and find the min & max of the DFD box at

Attaching beat note noise spectra showing the noise of the DFD (with no pre-amp, so probably Moku input noise), the RIO Planex (E & W lasers from the Cryocav table), and the Teraxion NLL. Looks like they're similar in HF noise.

Attachment 1: TeraRIOEast_beat_Screenshot.png
Attachment 2: Planex-Beatnote-ASD.pdf
Attachment 3: DFD-Discriminant-Cal.pdf
  2802   Thu Aug 26 11:58:50 2021 aaronDailyProgressLaserdelay line frequency discriminator

Yesterday (August 25), I measured another 10 min at 488 Hz of Moku phasemeter data for the three pairs of beat notes. All three lasers had been on overnight, so there was no longer low frequency drift of the Teraxion laser. Rather than amplifying then picking off the beat note, I sent the RF output of the 1611 directly to the Moku's phasemeter input.

what kind of spectral density estimate to use?

Today, I've been figuring out how to get more averages out of our data. One approach (the one used above) is a modification of Welch's method:

  1. Start Welch's method with as large a window as possible, given the desired number of averages. For example, if there are 2**16 data points and we want at least 4 averages, then use Welch's method with 50% overlap and 2**15 points per segment. 
  2. From the first application of Welch's method, save the first N frequency bins (including the DC value). Our spectral estimate runs from 0 to (N-1)*f_0 in steps of size f_0.
  3. Next, decrease the number of samples per segment by a factor of N, and repeat Welch's method. In our example above, we are now able to take 4*N averages. Assuming the rounding is handled correctly, the frequency resolution of the second Welch's periodogram is f_1=N * f_0. 
  4. From the second estimate, save the N-1 samples from f_1 to (N-1)*f_1.
  5. Continue applying Welch's method to successively smaller window sizes and saving the 'low frequency' data from each. The iteration terminates when the window size is unnacceptably small (for example, nperseg <= 2), at which point you can save the remaining spectrum up to the Nyquist frequency.

The above procedure sacrifices some frequency resolution at the higher frequencies in exchange for additional averaging. The tradeoff with resolution is necessary, because the window size determines not only the smallest resolvable frequency, but also the spacing of frequencies in the spectrum. For the spectra from the previous elog in this thread where N=10, the total measurement time is 10 minutes, and the sampling rate 488 Hz, there is evidently more noise higher in the frequency decade (7-9e^n) than lower (1-3e^n). More consistent averaging can be achieved by setting N=2, but at the expense of most of the high frequency resolution (only 33 frequency bins survive the procedure). 

One workaround is to modify the procedure so the frequency binning is mostly set at the beginning, by the 'highest resolution' available. Then, perform Welch's method with as small a window as possible while still resolving the frequency bins. Care must be taken at high frequency: eventually, the 'FSR' of our Welch's method cannot resolve an f_0 difference in frequency into an integer change in the number of samples per segment. The spectrum can either be cut off at that frequency, or the procedure can continue while accepting nonstandard bin widths at high frequency.

Other workarounds are perhaps less desirable. One could accept nonuniform frequency binning, and simply compute Welch's method for every available choice of nperseg. This would maximize the number of averages in each bin, but especially at low frequency, there will be substantial correlation between adjacent frequency bins. Another workaround is to save the entire spectrum wherever evaluated, then combine the data later. One must again worry about correlations between the measurements: at high frequency, we would be combining coarse data with many averages with fine data with fewer averages. 

Another approach entirely is to do something smarter than Welch's method. In our meeting today, Chris suggested I look into multitapering. Spectral estimates can reduce bias due to leakage by introducing a tapered window, at the cost of increased measurement variance. Welch's method heals the variance relative to standard tapering by overlapping the windowed segments, at the cost of some frequency resolution. Multitapering instead minimizes loss of information by increasing the number of degrees of freedom of the estimates. The Here are a few resources on the topic:

While checking out Percival and Walden, I stumbled across parametric methods for spectral estimation -- those where an early spectral estimate is used to refine the procedure and spectral estimate iteratively. Perhaps up the alley of some recent discussions at our group meeting.

error propagation

Simply applying Gaussian error propagation is not quite right, because the PSD is exponential distributed (the ASD is Rayleigh distributed, see Evan's note T1500300). Each ASD is Rayleigh distributed with

  • mode \sigma
  • mean \left(\frac{\pi}{2}\right)^{1/2}\sigma \equiv \mu
  • rms \sqrt{2}\sigma = \frac{2}{\sqrt{\pi}}\mu 
  • median \sqrt{\ln 4}\sigma
  • variance of \frac{4-\pi}{2}\sigma^2 \equiv \delta(X_{ij})^2

For a large number N of averages, the central limit theorem lets us estimate the mean of each PSD, x_{ij}^2, with normal distributed uncertainty and variance \delta(X_{ij}^2)^2/N. Our three corner hat estimates of the ASD Y are based on the scaled, root mean-squared sum of three such PSD estimates, so for each frequency bin we can estimate the variance of the laser's ASD by

Y = \frac{X_{ab}^2 + X_{ac}^2 - X_{bc}^2}{2} \\ \delta(X_{ij}^2)=2x_{ij}\delta(X_{ij}) \\ \delta(X_{ab}^2 + X_{ac}^2 - X_{bc}^2) = \sqrt{\delta(X_{ab}^2)^2+\delta(X_{ac}^2)^2 + \delta(X_{bc}^2)^2} \\ \implies \delta(Y)^2 = x_{ab}^2\delta(X_{ab})^2+x_{bc}^2\delta(X_{bc})^2+x_{ac}^2\delta(X_{ac})^2\\

I'll use the final equation above, along with the number of averages, to estimate the uncertainty in each frequency bin of the final frequency noise ASD of the individual lasers. In particular, the filled region is \sqrt{Y \pm \delta(Y)}


[OK, I'm having a lot of trouble uploading pdfs to the elog this week, even with rasterizing. I've dropped these figures along with one set for the case of 'Welch's with no averaging' onto gaston under /home/controls/cryo_lab/Figures/3CH ]

  1. Time series of Rio E x Rio W beat frequency
  2. "" Rio E x Teraxion ""
  3. "" Rio W x Teraxion ""
  4. "" Marconi ""
  5. Welch's estimate of the frequency noise on the beat notes, with increased averages every decade
  6. Three corner hat estimate of the frequency noise on the Teraxion laser, from the ASD in (5)
  7. Welch's estimate of the frequency noise ont he beat notes, with increased averages every factor of 4 in frequency
  8. Three corner hat estimate of the frequency noise on the Teraxion laser, from the ASD in (7)
  9. Welch's estimate of the frequency noise on the beat notes, with averages increasing every factor of 2 in frequency
  10. Three corner hat estimate of the frequency noise on the Teraxion laser, from the ASD in (9)

I think these results warrant a more careful measurement, especially in the decade around 1 Hz. Also, the error bars are obviously way underestimated. 

Attachment 1: EW_timeseries.pdf
Attachment 2: EX_timeseries.pdf
Attachment 3: WX_timeseries.pdf
Attachment 4: Ma_timeseries.pdf
Attachment 5: beats_regions_base10.pdf
Attachment 6: Teraxion_noise_base10.jpg
Attachment 7: beats_regions_base4.pdf
Attachment 8: beats_regions_base2.pdf
Attachment 9: Teraxion_noise_base2.jpg
  2801   Tue Aug 24 16:44:39 2021 aaronDailyProgressLaserdelay line frequency discriminator

[aaron, rana]

  • Drive RF amplifier with -6 dBm from Marconi (amp is +16 dB), and observe RF level at the 1% RF couple out just before the delay line box
  • Sweep the Marconi carrier frequency from 75 to 230 MHz at 1 MHz / 50 ms. Observed a somewhat assymetrical sine wave, indicating there's some switching or other issue giving us amplitude-to-phase coupling at the mixer (see Rana technical docs above)
  • Removed the Marconi drive and power off RF amp, then open up the delay line box to add a 4 dB attenuator on the RF path.
  • The output of the delay line box is now a more or less symmetrical sine wave across our sweep
    • Turned off the sweep, and tuned the carrier frequency to record a 382 mV pkpk output of the discriminator between about 75 MHz (higher voltage) and 145 MHz (lower voltage). THe null is around 108 MHz
  • Disconnected the Marconi from the system, and instead plugged in the Rio laser E x Rio laser W beat note from the 1611. Tuned the laser current to null the discriminator output, and recorded the beat frequency with the Moku phasemeter. The lasers have been on for a while and are no longer drifting, so apparently it's staying within the phasemeter bandwidth.
    • After measuring Rio E x Rio W, swapped in the Teraxion laser and measured Rio E x Teraxion. The Teraxion laser exhibited some low frequency drift (several MHz / min), which seemed to improve over time
    • Then, measured Rio W x Teraxion
    • Lastly, I sent a sine wave from the Marconi (amplitude chosen such that the signal going into the moku remained -35 dBm) into the phasemeter to measure its noise floor.

Data logged:

File name measurement notes
EW_note_20210824_164439.li Rio E x Rio W laser, near 112 MHz, with Moku phasemeter. 488 Hz sampling  
EW_note_20210824_170434.li Rio E x Rio W laser, near 112 MHz, with Moku phasemeter. 15.6 kHz sampling  
EX_note_20210824_175820.li Rio E x Teraxion laser monotonic, low frequency drift, several MHz / min
WX_note_20210824_184820.li Rio W x Teraxion laser  
Marconi_20210824_194102.li Pure sine at 110 MHz  

We uploaded the data from moku to dropbox, and pulled it to spirou via the web interface. Should give the workstations dropbox.

Later, I realized we could probably have done better by sending the output of the 1611 directly to the moku. Instead, we were amplifying +16 dB then using an RF coupler to pick off 1% for the moku.


  1. ASD for the three beat notes, using 10 minutes at 488 Hz sampling for each. Each curve is the ASD from Welch's method with bias-adjusted median averaging, 50% overlap and a Hanning window. The shaded regions are the 15.8-84.1% percentiles. Welch's method is applied 'decade-by-decade', so within each frequency decade the window size is adjusted to maximize the number of averages (as in labutils/moku/modifiedPSD.py). The ASD of the Marconi sine wave is also shown for a rough noise floor reference.
  2. The ASD for the Teraxion laser using a three corner hat with the PSD from attachment 1.
  3. The remaining figures are the time series plots, for reference.
Attachment 1: beats_regions.pdf
Attachment 2: Teraxion_noise.pdf
Attachment 3: EW_timeseries.pdf
  2800   Tue Aug 24 16:25:17 2021 ranaElectronicsGeneralapp note on mixers vs phase detectors




  2799   Mon Aug 23 14:35:36 2021 shrutiDailyProgressPSOMAre-aligning

[shruti, aaron]

After plugging back in all the cables, I was struggling to get the cavity locked again or seeing the transmitted beam on the monitor.

Today, following Aaron's suggestion, I removed the connection from the PDH mixer IF port to the oscilloscope and also the power splitter I had added earlier (now sending the IF output directly to the LB input only with the 10 dB attenuator). The cavity didn't lock right away but changing the gain to 6 and re-adjusting the input and output offset got the cavity locked again.

When we tried to get it on the monitor, we saw that the mode it locked to was a higher order mode misaligned in the vertical direction. We first aligned the beam vertically until we started seeing lower order modes and finally the TEM00 mode.

I adjusted the lenses a little to tweak the mode-matching after aligning the beam into the cavity for maximum transmission when locked. Calculating the mode-matching using the reflected beam when locked and unlocked shows that it is only 60% though.


  2798   Mon Aug 23 13:38:57 2021 aaronDailyProgressLaserdelay line frequency discriminator

cymac ADC noise

The noise I was seeing last week on the ADC did not show up when driving the same channels directly with a function generator, only when buffering the function through the SR560. Wrapping the BNC several times around a ferrite toroid between the SR560 and ADC reduces the noise to close to the level of the ADC noise floor (there is a < 5 count pkpk sine wave cross-coupled into the adjacent channels for a ~2000 count pkpk sine wave on the channel of interest, but the signal carrying channel itself looks clean).

The SR560 that was overloading on battery last week is now also overloading on line power. I've swapped it with one of our functioning SR560.


  • A 113.2 MHz sine from the Marconi nulls the output of the frequency discriminator, as measured by the G=1, DC-coupled SR560 sent to an oscilloscope.
    • At 113.2 MHz, a 314.2 Hz FM with 800 kHz deviation appears as a 1.24 mV sine wave on the G=10, AC-coupled SR560 (measured by an oscilloscope).
    • The DC-coupled SR560 has a 1 kHz lowpass filter, the AC-coupled has a 3 kHz lowpass filter (both 6 dB/oct)
  • I measured the noise level of the Marconi over several 10s of minutes (while trying to figure out how to use the calibration features of diaggui). The result is in attachment 1, with the y-axis still in units of 'counts / rtHz'.

delay line

Afterwards, I looked at the spectrum for the Rio E x Rio W laser beat note. Looked OK... there's some kind of filtering happening in my delay line though. If I watch the spectrum of the RF coupler's pickoff (1% between the amplifier and delay line box), the implied peak power entering the delay line box is ~ 5 dBm near any of the nulls (so ~113 MHz or 176 MHz), but over 15 dBm between the nulls. I hadn't noticed this behavior before (with the busted mixer and RF coupler before the amplifier).

Attachment 1: Screenshot_from_2021-08-23_16-42-48.png
  2797   Fri Aug 20 11:03:44 2021 aaronDailyProgressLaserdelay line frequency discriminator

I'm driving the input of the delay line box with 10 dBm from Marconi's RF output.

  • First, tuned the Marconi carrier frequency to 112.8 MHz to null the output of the delay line mixer (after DC coupled, G=1, dynamic range mode, SR560 buffer with 1 kHz, 6 dBm/oct lowpass).
  • Next, frequency modulating the RF carrier at 314.14 Hz with 800 kHz deviation from the Marconi. The output of the delay line box is an 16 mVpp sine wave, see attachment 1
  • I checked out the noise spectrum of the Marconi buffered through both the DC coupled SR560 above, and separately an AC-coupled, G=100, low noise mode SR560 with 10 kHz, 6 dBm/oct lowpass
    • On the Moku, the spectra look reasonable. The G=1 and G=100 peaks at 314 Hz differ by 40 dB, as expected. Attachment 2.
    • Feeding the signal to our ADC has some issues. Not sure what's going wrong (ground loops? hot swapped AA-ADC cable?), but any signal I plug in to the ADC results in the periodic noise in attachment 3 on not only the signal-carrying channel but also the adjacent channels. The discontinuities are larger than the G=1 buffered signal, though not as large at the G=100 buffered signal.
      • I'm using the PSOMA channels, so the names are innaccurate. In attachment 3, the DC-coupled signal is in SLD_PDH_CTL, while the AC-coupled signal is in SLD_PDH_SIG
      • The noise is at about 120 Hz, which suggests some power line issue. Measuring only the AC-coupled SR560 in battery powered mode, with no other instruments connected after the buffer, improves but does not eliminate the noise (attachment 4). Also, on battery powered mode, the SR560 constantly overloads; my exact sequence of steps to observe this overload behavior was (1) power off the SR560, (2) unplug the line voltage, (3) power on the SR560.
Attachment 1: 30A43669-5DFF-400A-BEB4-7EF71BBAE1A6.jpeg
Attachment 2: A3BF5DA5-32E5-42A5-A1D8-9270C3D88518.png
Attachment 3: Screenshot_from_2021-08-20_16-11-26.png
Attachment 4: Screenshot_from_2021-08-20_16-20-48.png
  2796   Thu Aug 19 16:32:47 2021 ranaDailyProgressLaserdelay line frequency discriminator

Ack!! stay out of the "Fix the SR560s" gamecool Do not repair, do not send back.

Let's get a trustworthy measurement of the frequency noise ASAP.angel


I've borrowed one SR560 from CTN to get us by for now, but am wondering if I should order parts to make repairs, or simply send the units to SRS?


  2795   Thu Aug 19 14:21:35 2021 aaronDailyProgressLaserdelay line frequency discriminator

I replaced the mixer from my delay line box with a functioning ZFM-2-S+. I also replaced the lossy pink SMA cable (122 cm) with a slightly longer (150 cm) cable that I made from a spool of LCOM coax. I also replaced the shorter cables with solder soaked ones. The final build is in attachment 1.

I drove the delay line frequency discriminator with a swept sine from the Marconi, and observed a symmetric response in the IF output. Sweeping from 5 MHz to 80 MHz is in attachment 2, showing that the response is symmetric about zero from -107 to 108 mA.

I'll return later this afternoon for a more careful calibration and to take some data. 

Update, calibration

I'm calibrating the delay line discriminator by running a swept sine from the Marconi, and this time reading back on an acromag channel.

Attachment 3 is the first run (y axis in Volts), where the Marconi is ramping from 1 MHz to 240 Mhz, stepping by 10 kHz every 100 ms. There are some surprises. The output is linear until about 70 MHz, possibly because the mixer is only good down to 5 MHz. The upper half fringe is not symmetric to the lower half fringe, even comparing the curve only above 10 MHz.

I'm repeating the measurement with different sweep parameters: 1 MHz to 250 MHz, stepping 1 kHz every 50 ms. The steps will be somewhat faster than the Acromag's sampling rate, but those units dither so it should smooth out. I'll post some plots with the time axis converted to frequency when the data come in.

Attachment 1: 007FC2D7-F29B-4636-9CE7-04CBC3B789F7.jpeg
Attachment 2: 1F1E68F0-199F-4E1C-B909-883A521E06CF.jpeg
Attachment 3: Screenshot_from_2021-08-19_17-53-58.png
  2794   Wed Aug 18 09:55:13 2021 aaronDailyProgressLaserdelay line frequency discriminator

I'm taking this data today, here are the issues I've hit

  • Period noise around 100 Hz visible in the output of SR560.
    • Replaced with a different SR560, this noise is gone
  • 3.7 MHz harmonics around the beat note. I was seeing these before, changing laser temperature and current don't affect these spurious peaks. I'll look for them if I measure the laser current noise again.
    • My guess was I'm saturating the 1611 PD. The beat note power is almost the full 1 mW linear range of the device. However, reducing the beat note power to -10 dBm does not eliminate the harmonics, especially the first.
  • First SR785 I used was getting stuck interfacing via GPIB, it's labelled
  • I'm calibrating the delay line by T-ing off the signal after the lowpass and sending it to a DC-coupled SR560 with G=1, then an oscilloscope. When I take spectra, I'll record the AC and DC coupled SR560 ouputs on AC- and DC-coupled input channels of the SR785 respectively.
Laser pair beat note power E laser TEC setpoint E laser LD current W laser TEC setpoint W laser LD current lower null frequency lower null DC voltage upper null frequency upper null DC voltage beat frequency at start beat frequency at end Hz/V cailbration Timestamp notes
cryo cavs E x W -5 dBm 11.738 kOhm 56.56 mA 8.146 kOhm 54.22 mA 120.2 MHz -215 mV 199.9 MHz 32 mV 158.0 MHz     Wed Aug 18 12:08:57 2021 calibrated during second measurement
cryo cavs -2 dBm 11.738 kOhm

55.88 mA

8.145 kOhm 53.24 mA 12.02 MHz -215 mV 199.9 MHz 32 mV 159.7 MHz 162.6   Wed Aug 18 15:37:37 2021 still at end of linear range on 1611


SR560s in need of repair

We have 7x SR560 in need of repair in the cryo lab. Most of these (at least 5) are constantly overloading, which indicates the front end transistor and op amp need replacing. From SRS, these parts are $50 each, but I found I think the same parts on digikey (the FET transistor is LSK389B; the amp is OP37A) for about $10 each. There are at least 2 that need a new battery.

I've borrowed one SR560 from CTN to get us by for now, but am wondering if I should order parts to make repairs, or simply send the units to SRS?

mixer busted

Rana noticed that my delay line is asymmetrical -- sweeping the frequency through a full cycle of the interferometer should reverse the sign of the output, but instead the output was biased negative.

Indeed, when I drive the mixer RF with 0.5 Vpp at 25 MHz from a function generator while supplying the LO with 7 dBm at 150 MHz from the Marconi (see attachment 1), my ZFM-3-S+ has an asymmetric waveform despite at most a few mV difference in the LO and RF DC levels (see the video in attachment 2). The same test with a different mixer (ZFM-1-S+) gives the balanced waveform in attachment 3.

I'll replace the mixer, and make a few modifications to the cables of my delay line box.

Attachment 1: 0A96102F-5465-456B-93BF-E2B9D4A7E96C.jpeg
Attachment 2: trim.2553D656-98A0-442D-9185-4C5252B2B727.MOV
Attachment 3: trim.787F04FC-8DED-4501-B67D-FF98EC5D5D56.MOV
  2793   Tue Aug 17 14:04:27 2021 aaronDailyProgressLaserdelay line frequency discriminator

I'm repeating this measurement, but moving the photodiode and electronics to the cryo cavs table, so we don't send anything over a long, floppy fiber across the room. See attachment 1 for diagram.

I set up the measurement, but didn't take any data. What's the right way to find the IP address for these GPIB controllers? I ended up scanning with nmap, but suppose I should mess with prologix' netfinder tools to assign our controllers static IP addresses and just label them.

Attachment 1: 3A1E242C-F4F6-4A87-B2E8-E74839BE542C.jpeg
  2792   Mon Aug 16 18:48:37 2021 ranaDailyProgressVacuumventing cantilevers cryostat

could the pumpdown plot be made so that the units are visible? Maybe use dataviewer or python?


  2791   Thu Aug 12 15:03:32 2021 shrutiDailyProgressVacuumventing cantilevers cryostat

[aaron, shruti]

We repeated steps 1-4 in elog 2789 and, with two people, managed to get the o-ring to stay in place while lowering.

  • Before pumping down the cryostat, we decided to pump down everything until the valve to the cryostat (by closing the valve to the cryostat), as a check. In around 6 min the pressure dropped to 100 utorr and kept decreasing to tens of utorr slowly. After 60 min we stopped this experiment.
  • We then opened the valve to the cryostat and began pumping down, the pump stopped automatically after around 10 min. This is the first kink in curve in Attachment 1. At this lower pressure, we decided to restart the pump anyway. Even though the turbo came up to 90000 rpm pretty quickly, the lowest pressure achieved after an hour was not lower than 400 utorr.
  • Thinking that the low rate may be because the long tube that connects the cryostat to the pump was of a small diameter, we decided to change the setup to one with the larger diameter. Attachment 2 has the final setup.
  • Then starting again at atmosphere, we began pumping down again. It does seem to go faster, although the pump did stop once and had to be restarted. I think we plan to leave it pumping overnight.
Attachment 1: Screenshot_from_2021-08-12_17-51-06.png
Attachment 2: 885A9694-996E-499E-BDCC-FB550338561F.jpeg
  2790   Wed Aug 11 16:09:29 2021 aaronLab InfrastructureLab Workpreparing for lab rearrangement

During the vacuum testing, I'm continuing some lab maintenance, mostly cleaning up and labeling cables on the electronics racks.

  2789   Wed Aug 11 13:21:23 2021 aaronDailyProgressVacuumventing cantilevers cryostat

The cantilevers cryostat vacuum line [edit: Aaron (May 2022) suspects I was pumping on the vacuum line only, not the chamber, as indicated in the previous log] has only reached 7 utorr (the reading on the gauge matches epics) after pumping overnight. I'm going to try manually actuating the gas ballast valve in case our roughing pump is manual-only.

  1. Turned off the pumping station, and wait for turbo to spin down before venting up to air.
  2. Manually move the roughing pump's gas ballast valve from the 'open' to the 'closed' position, as in figure 2 of the MVP 015-2 manual (roughing pump). I spent some time digging through the HiPace 80 (turbo pump) manual and figuring out how the venting valve on the side of the turbo works.
  3. Turn on the pumping station and observe the pumpdown. The result is in attachment 1.

After closing the gas ballast valve, the pressure drops below 7 utorr in under 30 minutes and is approaching 1 utorr. That's not the best I've seen from this pump, but should be good enough to continue diagnosing the cryostat.

To that end, I'm installing a new 2-270 Viton o-ring on the cantilever cryostat (needs name).

  1. Clean the new o-ring with isopropyl alcohol and a lint-free wipe
  2. Grease the new o-ring with Krytox, and place on a fresh sheet of HV aluminum foil
  3. Use the crane to open the cryosta at the midsection. The screws have already been removed.
  4. Install the o-ring and close the cryostat, tightening the bolts in a star pattern
    • I couldn't get the o-ring to stay in the inverted groove. I found Zach mention he taped some L-brackets to hold it in place, but couldn't find L-brackets nor could get our Kapton tape to stick to the cryostat with the weight of the o-ring. Will try it again with two people.
Attachment 1: Screenshot_from_2021-08-12_14-57-42.png
  2788   Tue Aug 10 17:39:40 2021 aaronLab InfrastructureLab Workpreparing for lab rearrangement

Friday, 6 August

Facilities came to move out the cryo Q (central, rigid legs) optics table, and left us the legs. They also took the two desks from the lab. Lastly, they moved the PSOMA table to the center of the room and rotated it 90 degrees so its long axis runs EW. Afterwards, Shruti and I moved the PSOMA rack to the E end of the PSOMA table, directly across from the other two racks .

Tuesday, 10 August

  • set up new desks
  • installed gaston and spirou workstations on the desks
  • Began rerouting cables among the three electronics racks.
    • We would like to move the AI and AA chassis over to the cymac rack, to reduce the number of cables running between racks and get them away from the DC supplies. Has the added benefit of making them somewhat more accessible in the new configuration. Is there any obvious reason we would not want the Acromag, AI, or AA chassis on the backside of the cymac rack?
    • Continued labeling cables as we go
  • power on Sorensen, Acromag chassis for pumpdown measurement.
  • Removed plastic wrap from the PSOMA table
  • We should figure out what to do with the lHe cryostat. If it leaves the lab, it would be convenient to move the silicon / fiber / optoelectronics cabinet slightly south, to let us space out the desks and place the speakers along the N wall (and easier access for that cabinet).

Attachment 1 is a screenshot of the temperature and particle count trends over the last 4 weeks. I need to figure out how to add axis labels on ndscope... the units for both temprature channels are F, relative humidity is %, and all particle count channels are log(counts). There is a factor of 10-1000 excess particle counts around the time of our lab rearrangement, mostly affecting the larger particle sizes. Humidity also experienced a mild increase. The AD590 temperature channel drops off because I turned off its power supply to accommodate our rearrangement, and haven't yet turned it on again. The daily and weekly particle count fluctuations are interesting, presumably dictated by lab access.

Attachment 1: Screenshot_from_2021-08-10_19-01-13.png
  2787   Tue Aug 10 17:23:39 2021 aaronDailyProgressVacuumventing cantilevers cryostat

[aaron, shruti]

Today we are testing the pumping station while pumping on just some blanked off Ts and the vacuum gauge. Last time, we pumped on the vacuum hose leading to the closed Key valve at the cryostat, and observed the pressure level off near mtorr, before eventually reaching only several utorr. The turbo should really have no trouble getting to utorr pumping on just hose sections, so we'll try to observe some better pumping action today.

  • Powered on acromag chassis and set up pressure gauge on just the turbo pump as in attachment 1
    • Noticed that at atmosphere, the gauge reads 744 torr, but the epics channel reports 722 torr.
    • Pumped down on the blanked off system, and again observed the pressure level off at 20-30 utorr after 10 min. If we let it continue, perhaps would reach a similar pressure of several utorr. The discontinuity around 10 mtorr is due to the gauge changing modes.
    • Vented the system by valving off the turbo then using the up-to-air valve go to atmosphere. You'll note the vent looks a little faster than intended; the valve had been too zealously tightened.
  • Following the instructions in the HiCube Eco manual for troubleshooting a pump that does not reach desired final pressures or takes a long time to get there, we suspect either condensation has built up in the gas ballast line or the gas ballast line has been left open. Aaron went through these troubleshooting steps back in 2019 a couple times. We need to open then close the gas ballast line.
    • Following the manual and my procedures from 2019, we first closed the red vent valve on the side of the turbo and confirmed that the black vent valve is also closed
    • Next, we went turn Vent Mode on. We found vent mode was already on, which could explain the mediocre vacuum pressures.
    • Just in case, we pumped down again on the same system in attachment 1, this time with the red valve on the turbo closed, and held vacuum for 20 minutes.
    • Turned off the pump, and wait for the turbo to spin down. After the pump reaches 0 rpm, go up to air (this time, we didn't valve off the turbo and opened the up-to-air valve more slowly).
    • Change the valve mode setting to 'auto'
    • Pump down once more to see if it made any difference.
    • We recorded the pressure during the above operations, see attachment 2. A zoomed in view of the last two pumpdowns is in attachment 3. The final pumpdown was moderately faster, and we've left the pump on to see what final pressure it achieves overnight. Note that we did not re-open the red valve at the side of the turbo; we suspect we probably should have, but aren't sure exactly why. We can try another pumpdown with it open tomorrow.
  • In my previous elog (2289), I noted that our roughing pump appears to have a manually actuated valve on the gas ballast line, and ended up opening and closing that valve. We didn't quite get to try that today, but have noted it for the future.
Attachment 1: 10CC78ED-EC51-4F10-8CBB-9ED236746501.jpeg
Attachment 2: Screenshot_from_2021-08-10_19-13-12.png
Attachment 3: Screenshot_from_2021-08-10_19-14-19.png
  2786   Thu Aug 5 19:36:43 2021 aaronLab InfrastructureLab Workpreparing for lab rearrangement

I continued preparing the PSOMA table and cryo lab for moving out the central optics table and 2 desks tomorrow:

  • Powered off lasers, wrapped and taped their cables to the PSOMA table
  • Powered off all electronics on the table and rack
  • Disconnected all cabling running between the PSOMA rack and PSOMA table, such that they are completely disconnected systems.
  • Moved the crane to the space between the cryo cavs table and the E wall of the lab
  • Removed the laser curtains and hung them on the crane
  • Moved the 80-20 components that were being stored in the lab into the hallway cage
  • Moved the power supplies from under the PSOMA table to under the workbench
  • Disconnected the pump and covered open ports with foil. Moved the pumping station onto the sink benchtop, and moved its box stand onto the liquid He cryostat stand.
  • Moved the chairs to along the N wall next to the cryo cavs table
  • disconnected pressurized N2 line and hung it along the cable rack on the N wall
  • Wrapped up the blue optical fiber (running from the cryo cavs table) on the sprinkler hose it's ziptied to
  • Turned off the cryo cavs laser drivers, PDH boxes, and OXCO; Acromag chassis; AI and AA chassis. Then, with the DC current at the Sorensens reading 0A, turned off the Sorensen supplies. Finally, disconnected the DC power strip for the PSOMA rack at the Sorensen, and wrapped up that cable into the PSOMA rack.
  • Began but did not complete removing or securing all loose objects on the PSOMA table

The SR560 on the PSOMA rack are still plugged in to a power strip connected to the wall, but that is the only remaining cable running from the PSOMA rack or table. I'll return tomorrow morning to finish securing and wrapping the PSOMA table. Other than that, should be ready to move.

  2785   Thu Aug 5 16:26:26 2021 aaronDailyProgressLaserTemperature-to-frequency,

I did a rough calibration of the South laser diode's temperature-to-frequency response near 9.02 kOhm and 140 mA by

  1. Reset the lock until the ratio of transmitted to reflected light is relatively high (there were a number of stable lock points with less transmitted light).
  2. Let the system remain locked for a minute or two
  3. Step the temperature control dial abruptly by a small amount. Large steps cause the laser to unlock or reach a different lock point; slowly moving the dial gives the temperature loop time to adjust without requiring the full current deviation.
  4. If the system remained locked during the step, let it equilibrate for another minute or two.

Since the temperature control loop is slow, the deviation in the current control signal upon stepping the TEC knob, along with our known Hz/mA calibration, tells us the frequency deviation of the laser in response to the temperature step. When the system equilibrates at a new temperature tuning, the difference of the old and new temperature tuning tells us by how much we stepped the control knob.

I observed about 1000 counts (0.3 V, assuming 10 V / 2^15 counts) deviation in the current control channel, corresponding to 890 MHz (assuming 148 MHz/mA as measured earlier, and 20 mA / V_modIn according to ITC 502 data sheet). The average temperature tuning changed by about -0.26 V, corresponding to -0.05 kOhm (the coefficient of the temperature tuning input on ITC 502 is 0.2 kOhm/V). This implies the South laser diode (SN 104987) -1.7 GHz/kOhm. Because the temperature was set near 9 kOhm, the resistance-to-temperature curve for the diode's temperature monitor tells us the temperature-to-frequency coefficient is about 630 MHz / K

Attachment 1: Screenshot_from_2021-08-05_16-25-38.png
Attachment 2: Screenshot_from_2021-08-05_16-25-54.png
  2784   Fri Jul 30 16:55:38 2021 ranaElectronicsLaserDelay Line Freq Discriminators

I made a page in the ATF Wiki for Delay Line Frequency Discriminators. There is some prior work on these things, but these links are maybe a good starting point to see what the state-of-the-art is and whether our thing is better or not.

  2783   Tue Jul 20 19:15:43 2021 aaronDailyProgressLab Workfibers inspection

I started moving our fiber components to the rack-mounted box. I inspected and cleaned the tip of the fibers for the 50-50 fiber beamsplitter. Will work on some photos through the viewer of the analog microscope.

We need an uncoated APC to uncoated PC fiber patch cable to send a beam to our FC 1611. We have a coated patch cable, but should only use that for launching to free space.

I also searched for an appropriate replacement o-ring for the cantilever cryostat. I found the drawings and manual from IR labs, but they don't mention the size of the o-ring, and I didn't find something suitable in our supply. I'll order a new one, along with the patch cables and some panel mount DB9 adapters. 

  2782   Thu Jul 15 17:22:03 2021 aaronDailyProgressLab Worklab cleanup

[shruti, aaron]

We cleared out the desk drawers and the middle optics table today. This involved

  • sorting the papers in the draws into scratch paper / notes; manuals, datasheets, and MSDS; miscellaneous electronics diagrams and the like; papers and articles; black paper. We kept the manuals, datasheets, and MSDS, along with the papers and articles, and stored both in the small wooden cabinet along the S wall where we'd been keeping some books
  • Sorted the other materials (like cables, router, hard disks, other computer components, CDs, etc) into appropriately labeled clear plastic boxes, which we are storing under the workbench for now
  • Mounted the fiber breadboard box on the PSOMA rack, and put the associated connector panels inside the box
  • Decommissioned the cryo GeNS experiment
    • Gowned up and opened up the cryostat
    • Removed the Si wafer therein, and stored it in the desiccator cabinet
    • Detached the copper straps from the cold plate, and detached the wires coming from the electrical feedthrough at their kapton-wrapped pin connectors.
    • Wrapped the GeNS mount, including copper straps, periscope, substrate holder, ESD, schwarzschild, and the bottom of the cold plate in foil, and stored it in a clear plastic box. Also stored all in-vacuum screws, washers, and nuts in foil in the plastic box.
    • Removed the hot mirror from the cold shield and stored it in its original lens case in the optics cabinet
    • Closed up the cryostat and removed it from its mount. We stored the cryostat, the breadboard with an open center that it sits on, and its channel strut mounting hardware in the cage in the WB subbasement hallway.
    • Put the remaining channel strut materials making up the cryostat's mount with the rest of our channel strut hardware in cryo lab

We still need to clear the following heavier equipment from the desks. To move this equipment, we'll first need to sort through the miscellaneous objects on the workbench so we have somewhere to put everything. It will require at least two people to move the reference cavity safely.

  • reference cavity
  • gaston and spirou workstation computers, plus monitors and peripherals
  • stereo and speaker system

Other than that, we're ready for facilities to move out the desks and optics table. We should place an order for the new desks by tomorrow so they will arrive without too much awkward waiting.

  2781   Tue Jul 13 12:00:36 2021 aaronUpdateControl Systemventing cantilevers cryostat

[aaron, shruti]


Shruti and I opened up the cantilevers cryostat. Vacuum wasn't fully vented despite the valve being fully open, due to the foil covering the open valve sealing against the flange while venting. The cryostat popped rather than lifted open. The damage is at least:

  • All three steel wires between the blade springs and optical platform snapped
  • both cantilevers broke and the mirrors detached from the cantilevers
  • there's a knick on the inner edge of the sealing surface we were opening, and a couple radial scratches visible.

Overall pretty disastrous. We'll have to investigate the full extent of the damage this afternoon, and first order of business will be cleaning out the broken Si fragments and evaluating the vacuum pressure.


We removed the silicon cantilever from the bottom of the cryostat with teflon-tipped foreceps, and stored them in a wafer casette. We also cleaned and regreased the o-ring with Krytox lubricant (we couldn't find the cryo lab's Apiezon N grease, must have been lent).

We pumped down the cryostat, but the roughing pump wasn't able to reach a low enough pressure to switch on the turbo. We also valved off the cryostat from the rest of the system, and pumped down on the hose + gauge + up-to-air valve (closed). The turbo was able to spin up to 90 krpm, but the pressure leveled out a several 100 uTorr. Pumpdown curves are in attachment 2.

The second pumpdown curve (pumping on just the hose and pressure gauge) suggests the pumping station needs some maintenance. I've seen this behavior before from a faulty KF flange connection, or when some condensation had built up in the roughing pump line. There is a procedure in the HiCube manual for flushing this line, I'll dig it up from my old elogs. However, the pumpdown on the cryostat suggests an even more severe leak in the cryostat itself, since the turbo wasn't even able to spin up and the curve appears leak-limited well above 1 torr. This is consistent with the visible damage to the mating surface in attachment 1. I suspect we need to send the cryostat to be reground and polished. crying

Attachment 1: EA078826-F058-4029-BE52-0A0534AF5180.jpeg
Attachment 2: Screenshot_from_2021-07-13_16-25-28.png
  2780   Mon Jul 12 15:34:30 2021 aaronLab InfrastructureDAQtemperature trend, cominaux apt

Attached is the most recent month of temperature trends for the lab, as measured by the particle counter. The lab temperature has been steady at 78 F for a couple weeks. I added a config file for this plot to our scripts repo under ndscope, so we can easily reproduce this plot.

While the particle counter has been logging, the AD590 temperature mon is again not logging. Possibly relatedly, when I try to apt-get install emacs on cominaux, it's complaining that the ligo repos 'couldn't be verified because the public key is not available.' I noticed that it was looking for the buster distribution in http://apt.ligo-wa.caltech.edu/debian, but the code currently lives in */debian/pool. Adding /pool/ (and commenting out the lines referring to stretch, which we are no longer using) let me upgrade cds-workstation and install emacs.

I did find some apparent bugs in the modbusIOC database file (CRYOXT.db), but none restored these ai channels. Haven't quite finished yet.

Update: I identified that only the slow ADC channel 15 was not logging by observing a 1 Hz sine from a function generator on the other channels. Unfortunately we use channel 15 for the AD590 temperature sensor. There was just an extra character in the epics record for that channel, removing it fixed the problem and the AD590 is again logging. I've updated with a new temperature trend that includes both sensors and the particle counts in attachment 2. I used dataviewer because ndscope doesn't support log axes, but also defined some new calc channels to record the log of particle counts... and upvoted the log-axis feature request for ndscope.

Attachment 1: Screenshot_from_2021-07-12_15-51-07.png
Attachment 2: Screenshot_from_2021-07-13_10-52-50.png
  2779   Mon Jul 12 14:28:38 2021 aaronElectronicsLab Workno noisy pickoffs for PDH signals

We've been using T-junctions to pick off PDH control and error signals, but sometimes we should have a high impedance, floating buffer between our current control loop and noisy or grounded devices like the ADC or oscilloscopes. I've added an SR560 between the PDH error signal and control signal pickoff points, and also used the 'aux out' connector on the back of the LB servo box as the control signal monitor point. I terminated aux out into 50 Ohm, with a T to the SR560 high impedance input.

Changes to the previous configuration are highlighted in attachment 1.

Attachment 1: 321F64CD-6EDA-4E4F-B9D5-0C403286E2AF.jpeg
  2778   Thu Jul 8 19:10:59 2021 aaronDailyProgressLab WorkSetting changes

We should note that the LB box driving into 50 Ohm is current limited at its output (assuming we don't narrow the voltage window using the trim pots on the back panel). It can supply up to +- 20 mA, so if we see control voltages approaching 1 V we are nearing saturation of the servo controller.


I also added a 50 ohm terminator in parallel to the 20 dB attenuator at the analog input modulation port of the ITC 502 current driver. This is to ensure a more or less accurate 20 dB attenuation of the control signal since the ITC 502 input has an impedance of 10 kOhm.

  2777   Thu Jul 8 14:51:08 2021 shrutiDailyProgressLab WorkSetting changes

Following our discussion earlier when we realized that the AC electronics of the 1811 may be saturating, since our RF power (at the mod freq of 33.59 MHz) is near or over 55 microW, I added an additional 10dB attenuator before the EOM. The total attenuation is now 40 dB. To compensate for this I removed the 10 dB attenuator at the input of the LB1005.

I also added a 50 ohm terminator in parallel to the 20 dB attenuator at the analog input modulation port of the ITC 502 current driver. This is to ensure a more or less accurate 20 dB attenuation of the control signal since the ITC 502 input has an impedance of 10 kOhm.

Everything seemed to lock once again when the gain on the LB1005 was increased from 5 to 6.


  2776   Thu Jul 8 09:50:41 2021 aaronDailyProgressNoise BudgetPSOMA noise budget, does it make sense?

I'm trying to make sense of these noise curves in relation to the free running noise I measured earlier with the three corner hat (3CH). The free running frequency noise of the S laser as measured by the three corner hat (attachment 6 from elog 2740) should be the same as the estimate off the free running noise using the PDH error signal and normalizing out the loop suppression ('open loop estimate' in attachment 2 of elog 2775). Here's what I'm noticing:

  • At low frequency (1 Hz - 100 Hz), the 3CH measurement shows the noise falling off like 1/f with a corner around 100 Hz. The PDH noise curve shows nearly flat noise or slightly increasing noise below 100 Hz, and is almost 10 MHz/rtHz compared to <10 kHz/rtHz on the 3CH. I'd expect the true free running laser noise to be closer to < 10 kHz/rtHz in this range.
  • At mid frequency, (100 Hz - 10 kHz), the PDH error signal noise curve is either itself noisy or contains many features, and falls off like 1/f. The 3CH curve is featured, but nearly flat at several 100 Hz/rtHz. The resolution bandwidth for the PDH error signal noise curve in this band seems to not allow sufficient averaging.
  • At high(ish) frequency (10 kHz - 100 kHz), both curves are nearly flat and with fewer features, but the noise measured by the PDH error signal is still 2 orders of magnitude larger than that measured by 3CH.

We should certainly try to resolve these discrepancies... perhaps we are seeing extra noise due to the electronics used for locking (the PDH measurement includes the LB box, analog RF electronics, a long DB9 cable to ADC that was observed to inject noise around 100 kHz only partially attenuated by our ferrite toroid, etc). There might also simply be a bug in the noise budget script, I'll check it out.

I agree that the more-than-1/f dependence in the transfer function from attachment 1 above seems fishy. It's above 10 kHz, so it can't be due to the influence of the temperature control loop.


I've moved Shruti's NoiseSpectra.ipynb script to the cryo_lab scripts repository, and pushed the version she uploaded earlier. I also added the data to cryo_lab/data/PDH/Noise with git lfs.

I found a couple bugs in the script, and made some modifications

  • We needed to compensate for a 10 dB attenuator between the PDH error point and the LB box error monitor, but instead compensated for 5 dB (temporary mixup of watts vs volts). Resulted in a UGF around 68 kHz (instead of 100 kHz), and phase margin of 31 degrees (instead of 16 degrees)
  • Defined some variables for the attenuation, frequencies, and open loop transfer function to avoid repeated references to the columns of the data file
  • Bug in the dBmtoV function. Was telling me 0 dBm is 1e-6 Vrms, but it should be 0.224 Vrms. P[\mathrm{W}] = 1[\mathrm{W}] * 10^{(x[\mathrm{dBm}] - 30) / 10} \implies \mathrm{V_{rms}}=\sqrt{50[\mathrm{Ohm}]*1[\mathrm{W}] * 10^{(x[\mathrm{dBm}] - 30) / 10}}
  • scipy.signal.freqs_zpk wants frequencies in rad/s, but the 'cavityPoleReverse' function was supplying them in Hz
    • Also, to get the appropriate DC behavior of this transfer function (that is, the gain at DC should be our V-to-Hz calibration), we must scale the 'k' of zpk by the angular frequency of the pole (or rather 1 / the zero's angular frequency, since we actually want the inverse of the cavity pole). Otherwise, the pole (zero) frequency enters the DC gain in
    • Relatedly, we are correcting for the cavity response by multiplying the noise spectrum in V/rtHz by a DC gain and a single real zero at the cavity pole... but shouldn't we instead model the cavity as a complex pole pair with some Q like the finesse, and apply the transfer function to power before going to V/rtHz? Maybe for a high finesse cavity these reduce to the same, but our cavity finesse is O(10) so this might matter near the cavity pole. I did not modify the script to use a pair of poles.

H(\omega) = k \frac{\prod_m(i\omega - z_m)}{\prod_n(i\omega-p_n)}\implies |k|= |G_\mathrm{DC}| \frac{\prod_n|p_n|}{\prod_m|z_m|}


Following these modifications, the noise at 10 kHz - 100 kHz is closer to that measured by 3CH. The updated open loop transfer function and noise curves are attached. I'm not chasing after the remaining discrepancy yet, since we expect that the PDH error signal was saturating during the attached measurement (see Shruti's elog from today for what we're doing about that).

Attachment 1: Noise.pdf
Attachment 2: OLTF_fit.pdf
  2775   Tue Jul 6 14:39:49 2021 shrutiDailyProgressNoise BudgetCalibrating PSOMA noise budget

[chris, aaron, shruti]

  • We (Chris, Shruti) noticed that the offset changes on ERC_MON_RATIO when the lights are turned off/ on despite having a long pass filter; it also changes on PDH_CTL_OUT when the slow loop is off. This is probably the main reason why we need to lock the slow controls to an offset of PDH_SET to get the brightest spot.

We (Aaron, Shruti)  re-measured the PDH error signal slope for calibration since the previous measurements were for the settings before the mode-matching was optimized.

drive parameters

A: pk-pk voltage (mV)  B: peak separation time (us) C: sideband crossing separation (us) D: difference in drive at sideband crossings (mV) E: cavity pole (MHz) = 33.59/C*B F: cavity response (mV/MHz) = A/E
1 kHz, 3 Vpp 500 13.6 99.2 480 4.6 109
5 kHz, 3 Vpp 478 2.96 26.1 480 3.8   126

The cavity pole has changed but the peak-peak voltage of the PDH error signal seems roughly the same as measured on Thursday before optimizing the mode-matching. It seems like the different temperature setting we are now at has changed the polarization of light entering the cavity; there is no half-wave plate in the path between the fiber launch and input coupler.

Initial crude noise calibration 

I used the above estimate of the cavity pole and response along with the data measured on Friday to obtain a calibrated noise spectrum (red curve in Attachment 2), then for data above 100 Hz I used the linear estimate of the open loop gain and roll-off shown in Attachment 1 to obtain the blue curve in Attachment 2.

All data and the jupyter notebooks are in Attachment 3

Attachment 1: OLTF_fit.pdf
Attachment 2: Noise.pdf
Attachment 3: initial_calibration_data.zip
  2774   Fri Jul 2 11:29:52 2021 shrutiDailyProgressNoise BudgetCalibrating PSOMA noise budget

Some observations

  • When I entered the lab the cavity was already locked with a very bright spot. The transmission was over 1000 counts, and I was previously seeing 600, which was after Aaron improved the mode-matching yesterday.
  • (Attachment 1)  It seems like the cavity was locked for almost 6 hrs with the temperature loop enabled before I entered.

Changes I made:

  • After tweaking around with the gain to improve the UGF of the loop, I set the gain to 5.5 from 4.7. Further details in next section.
  • I changed the gain on the PDA20CS transmission PD to be 40 dB, it was previously 70 dB. I also adjusted the waveplate in the curved optic transmission to send more light to the PD and less to the camera. Many camera pixels were saturated. So now the X1:OMA-ERC_MON_RATIO is around 4 when it was previously around 8, and the transmission X1:OMA-ERC_TRANS_MON_OUT16 is at 400 counts, previously at 1000.
  • I changed the KI value for the loop from 0.5 to 0.2 because I thought that there were very slow oscillations, but I don't think I noticed anything change when I did that, but I left it at 0.2.

Maximizing the UGF:

  • As I increased the gain on the LB1005, at around 5.5 I began to see a prominent broad peak at around 120 kHz in the noise spectra of the PDH error signal (Attachment 2). At roughly 5.7, I began seeing some saturation indicated by the presence of higher harmonics, which increased when I increased the gain further (Attachments 3 and 4).
  • (Attachment 3) This made it possible to achieve a max UGF of ~120 kHz with other settings remaining the same.
    • The offset from 0 dB to +3.16 dB   [8Jul21 edit: It should be 5 dB (voltage attenuated bt 3.16) since the attenuator was 10dB] is because of the presence of an attenuator at the input of the LB box, when measuring  PDH error signal/ LB error signal
    • Technically the units on the axis is dB and not dBm for the yellow trace, which is PDH error/ LB error similar to the measurements described earlier.
  • Not sure where the saturation (harmonics) is coming from.


Noise spectra

  • With the settings described here (from earlier), the uncalibrated noise spectrum is what is shown in Attachment 6. The data below and above 1 MHz were measured separately with different res BWs.
  • (Attachment 7) With the settings at present, I took several noise spectra measurements with different frequency ranges and res BWs and overlayed them.


I saved all the data from the Moku I measured today in the mokuliquidwb Google Drive.

Attachment 1: Screenshot_from_2021-07-02_11-32-06.png
Attachment 2: MokuSpectrumAnalyzerData_20210702_141330_5p5_Screenshot.png
Attachment 3: MokuSpectrumAnalyzerData_20210702_141402_5p7_Screenshot.png
Attachment 4: MokuSpectrumAnalyzerData_20210702_141416_5p8_Screenshot.png
Attachment 5: MokuFrequencyResponseAnalyzerData_20210702_141630_PG_Screenshot.png
Attachment 6: Spectra20210622.pdf
Attachment 7: Spectra20210702.pdf
  2773   Thu Jul 1 13:39:12 2021 aaronDailyProgressNoise BudgetCalibrating PSOMA noise budget

[aaron, shruti]

I made a careful measurement of the cavity length with a high-precision rule, and got 582 mm. The FSR of our ring cavity is about 515 MHz.

I'm measuring the pk-pk voltage and frequency spacing of the PDH error signal to get the cavity response. I've converted the peak separation from seconds to Hz by taking the separation of the sideband zero crossings to be twice the modulation frequency (33.59 MHz), and assuming the triangle wave drive is a true linear ramp. The slope of the line connecting the peaks in the PDH error signal is a factor of 2 shallower than the derivative of the PDH error signal near zero (see this note from Tobin Fricke, and we also confirmed this numerically).

As a check, I've also recorded drive voltage at the sideband crossings. The control signal calibrated using the drive voltage should eventually give us the same noise estimate as the error signal calibrated with the cavity response.

drive parameters pk-pk voltage (mV) peak separation (time) sideband crossing separation peak separation (freq) difference in drive at sideband crossings (mV) cavity response (mV/MHz) cavity pole (MHz)
123 Hz, 0.3 Vpp 522 66 us 1.62 ms 2.74 MHz 124 381 1.37
1 kHz, 1 Vpp 496 3.68 us 72.6 us 3.41 MHz 140 291 1.70
5 kHz, 0.6 Vpp 486 1.76 us 33.6 us 3.52 MHz 198 276 1.76

We noticed some distortion of the error signal near either turning point of the current drive. We measured the power transmissivity of the input coupling mirror to be closer to 0.02 than 0.10 (by measuring the power before and after that mirror, with the cavity unlocked), probably because we have not set the polarization and the reflectivity is slightly higher than specified for the other polarization. With the lower transmissivity, the cavity pole is consistent with expectation.

We're inclined to believe the higher frequency measurements, since the low frequency one was made at low amplitude and thus had some distortion of the error signal close to where the drive turned around (and the 1/f frequency noise).

We did try to make the measurement at 10 kHz and 100 kHz, which should still be below the cavity pole... but didn't see a clean error signal.

Made a couple measurements of the noise spectra (PDH error signal, control signal) at various frequencies. Haven't grabbed them yet to upload.

We've noticed that the ratio of transmitted / reflected light (MON_RATIO) monotonically increases as we increase the PDH control setpoint for the temperature loop (that is, higher currents always increase this ratio). We noticed that the TRANS_MON and REFL_MON channels had some offset with the beam blocked (-300 and +15 counts respectively), but negating these offsets does not change the behavior.

Later, with the cavity locked I (aaron) adjusted the input steering mirrors to maximize MON_RATIO. The transmitted beam spot and PDH error signal both look cleaner. Moreover, after improving the mode matching MON_RATIO is no longer monotonic with PDH_SET. Perhaps that behavior was an artifact of some higher order mode resonances. Messed around with the combination of attenuators, gain, limits, etc. Before realignment and this work MON_RATIO was at most ~2.8; after it's reliably > 8. Should really check the DC responsivity of the photodiodes to determine if this is a reasonably good number, but the spot looks bright.

Also increased the limiter window on the LB box output to the full range... though that turned out to be only +- 5V, rather than +- 10V specified in the datasheet. Also, I'm driving the 10 kOhm input impedance current mod in directly, rather than T-ing off into a 50 Ohm terminator... not sure why this should be preferable? The output of the LB box is current limited into 50 Ohm (only supplies +- 20 mA, regardless of the voltage limiter), and with the attenuator I wouldn't expect reflections.

There's some 100 kHz oscillation present even with the loop off. It's somewhat affected by stressing the DB9 cable to the ADC, so perhaps adding some extra turns around our ferrite toroid would eliminate this.

  2772   Wed Jun 30 17:26:42 2021 aaronDailyProgressNoise BudgetCalibrating PSOMA noise budget

There is also a 'closed loop' way to make this measurement.

At the end of the day, we would like to know the coefficient from 'frequency to PDH error,' as well as that from 'control signal to frequency.' If we measure one and the open loop transfer function, we hae the other. We require either detailed knowledge of the cavity parameters, or an independent measure of the laser frequency. Fortunately, because we can drive the laser frequency, our independent frequency discriminator doesn't need to be as quiet as our cavity.

Earlier, I set up a 'delay line frequency discriminator' to measure the Teraxion laser frequency noise in a three corner hat with our two Rio lasers. The same discriminator can be used to measure the transfer function from the PDH error summing point to the laser frequency as measured by the delay line.

Alternatively, since we expect the PDH error signal response to frequency deviations to be flat, we could measure the beat note frequency with the moku phasemeter at a single frequency and do a 'lock in' measurement in post processing.

Attachment 1: 6AC149C5-9C0F-42E7-8DE6-AA1F5FB8D9AF.jpeg
  2771   Wed Jun 30 14:38:49 2021 aaronDailyProgressNoise BudgetCalibrating PSOMA noise budget

I ended up debugging labutils/tektronix/tek_tools.py to grab this data from the scope.

I'm sweeping the laser current with a 0.5 Vpp triangle wave at 100 Hz attenuated by 10 dB. On the scope I'm measuring the PDH error signal and the triangle wave before the attenuator, triggering once only on the triangle wave. Data are in cryo_lab/data/PDH/210630_PDH_sweep.txt, and the analysis in cryo_lab/scripts/PDH_calibrate.ipynb does the following:

  1. trim the data to only look at one sweep through the PDH error signal
  2. Fits a triangle wave to the drive data, to clean up the x axis points
  3. Fits a nominal PDH error signal vs current modulation voltage to the observed PDH error signal vs nominal modulation voltage (given by the triangle wave fit)

This is not a great procedure. The PDH error signal has some features, and the data underconstrain the free parameters. The best fit is nowhere close to expectation (for example, estimates the cavity length at 19m, compared to about 0.5 m), and shouldn't be trusted. The variances for some of the fit parameters are large compared to the estimated values.

Attachment 1: 210630_PDH_fit.pdf
  2770   Tue Jun 29 14:13:53 2021 aaronDailyProgressNoise BudgetCalibrating PSOMA noise budget

We've been measuring the amplitude spectrum of our PDH error signal in V/rtHz. We'd like to calibrate that into Hz/rtHz of phase noise on our laser.

To measure the voltage-to-frequency responsivity of our laser driver and laser, we can sweep the current modulation input with a triangle wave while measuring the PDH error signal. Fitting the PDH error signal tells us the conversion from Volts to Hz (at wherever we inject the current modulation), the product of carrier and sideband powers,

To make the measurement, I'll

  1. Use a DS345 function generator to sweep with a 0.05 V amplitude triangle wave at 10 Hz at the current mod in port of our ITC 502 current driver
  2. While triggering on the triangle wave, record the PDH error signal on an oscilloscope
  3. Fit the PDH error signal to extract the cavity length (FSR), sideband and carrier power, responsivity of the laser frequency to excitations at mod in, cavity finesse, and some less physical voltage constants

Given the responsivity of laser frequency to excitations at mod in, we can calibrate the PDH control signal into units of Hz/rtHz. Alternatively, we could use the slope of the fitted PDH error signal and the FSR to calibrate the PDH error signal into units of Hz/rtHz.

I started making this measurement on the moku, but found some pernicious high frequency noise... possibly from the capacitance of the cable over to the electronics rack? We've seen it a few times before, and it produces a characteristic periodic structure in the FFT. Adding a 1.9 MHz lowpass filter after the function generator does not remove this noise, and it does not appear on the Tektronix oscilloscope monitoring the PDH error signal. Attachment 1 shows the measurement on moku.

Instead, I'll make the measurement by running a cable from the function generator to the TDS 3024B oscilloscope and record the traces over ethernet. The error signal still is a little more complicated than I'd like, probably due to the presence of higher order spatial modes... but I'll see what the fit says.

I ran an ethernet cable from the network switch on the PSOMA rack to the scope, and turned on GPIB by following instructions in the Tektronics manual. I tried dumping data from the scope over gpib using scripts I had been using at the 40m, now in the cryo_lab/scripts repo... but didn't have much luck. Chased around error messages for a while, and tried debugging tds3014.py, but didn't get it working.

python tds_dump.py test.csv
Attachment 1: 8CD3FEA8-9EE1-4728-8639-A69206A8D098.png
  2769   Tue Jun 29 08:53:02 2021 ChrisHowToControl Systemacquiring slow channels

Here's how to add slow channels to the framebuilder DAQ:

  1. Edit /etc/advligorts/edc.ini to add the channels to the list
  2. Restart epics data collector: sudo systemctl restart rts-edc
  3. Restart framebuilder: sudo systemctl restart rts-daqd
  2768   Mon Jun 28 13:54:46 2021 aaronNotesLaserphase noise in diode lasers

Now that we are generating noise budgets, we'd like to compare our observed phase noise with that expected from the physical noise sources. Chris pointed us to some useful papers a while back, and I'm going to start documenting my further reading on the PSOMA wiki's noise budget page.

  2767   Mon Jun 28 13:16:07 2021 aaronDailyProgressControl Systemglitches

How did you get the framebuilder to recognize the slow channels defined in SoftIOC? I recall we ran into some problems with that last time.

I added your ndscope config file to the cryo_lab/scripts repo. Thanks!

  2766   Mon Jun 28 10:12:28 2021 shrutiDailyProgressControl Systemglitches, transfer function

The glitches seem to come from the slow controls output and temporarily result in an actuation voltage of +-10 V even when the limit for that channel was set to +-2 V in the PID script. This triggers the 'WIN' light and a beep from the ITC 502 while also losing the lock.

Aaron and I also had observed this last week.


[shruti, chris]

We were able to measure the loop transfer functions with the latest settings of KI=0.5 and PDH_CTL offset=2000cts on the slow control without being affected by the glitches too much. Chris also set up all the slow control channels so that they can be viewed with ndscope. In this we could also see that the transmission monitor sometimes glitched but the loop remained locked.


Attachment 2:

Updated measurement similar to elog 2759

Attachment 1: glitches.png
Attachment 2: OLTF.pdf
Attachment 3: Setup.pdf
Attachment 4: Data.zip
  2765   Thu Jun 24 14:37:12 2021 aaronDailyProgressControl Systemslow temperature control, more transfer functions

I noticed the -B input of the LB servo was connected to the input of the Moku (via a 20 dB attenuator). I removed this connection. I also noticed that the PID control loop was still running in a tmux session ('temp_PID') on spirou; if you were trying to run the loop in a separate process, I could see that leading to some oscillation. It looked like the loop was only started once in the tmux session, which would have been yesterday before modifying the config file... so I suspect that's why the loop was oscillating. We should run this PID loop as a service on cominaux eventually.

For the last several days, we have been seen some ~MHz oscillations appear in the PDH error and control signals, even in the 'quiet' operation modes we found. Shruti noticed the signal disappeared from the control signal when we unplugged the cable connecting the control signal to the fast ADC. The DB9 cable is long, since it runs from the PSOMA rack to the cymac rack. We wrapped the DB9 cable 10 times around a ferrite torroid, and the oscillation disappeared!

We are also seeing some odd glitches in the temperature tune channel. The output of the Acromag DAC (as measured on moku oscilloscope, and indicated by the TEC hitting its window limit) has glitches where it hits the negative voltage limit (-10 V). The TEMP_TUNE epics channel is showing no such glitch, so it's almost certainly a hardware issue. We weren't able to reliably reproduce the glitch.

We played around with the servo settings to get a stable lock point. I didn't capture much data, since the glitches kept killing the lock.

  • LB box gain at 6.0, input offset at 5.08,
  • Temperature integrator gain set to K_I = 1, timestep at 0.1
  2764   Thu Jun 24 12:26:56 2021 shrutiDailyProgressControl Systemslow temperature control

I changed the error signal for the PID slow control to be the PDH control signal by modifying the file 'PIDConfig_SLDTemp.ini' in cryo_lab/scripts/temp_control on spirou.

The control signal does zero out when I actuate the loop, but the PID error signal shows strange oscillations when the control signal cable is plugged into the breakout board.

  2763   Wed Jun 23 17:53:21 2021 aaronDailyProgressControl Systemslow temperature control

[aaron, shruti, chris]

back to level 17

We swapped in a level 17 mixer, since the level 7 may have been saturating. We also switched from SLP-1.9+ to SLP-5+ after the mixer.

Slow temperature control

We continued setting up slow temperature control. Chris suggested nulling the LB servo offsets with the inputs terminated at 50 Ohms, instead of tuning them for the closed loop. With the new choice of offsets, we aren't seeing the 100 kHz oscillation.

In the locked state with temperature control handling the low frequency, we seem to not be locked exactly on resonance. The PDH error signal is the process for both current and temperature control. We used the ratio of cavity transmission to reflection (X1:OMA-ERC_TRANS_MON / X1:OMA-ERC_REFL_MON) to assess how close we are to resonance, and stepped around the PDH setpoint on the temperature control loop to maximize the ratio. However, at some point before the ratio is maximized the current loop loses lock. 

I suspect some stage of the PDH servo box is straying too far from its linear range. When we change the PDH setpoint on the temperature loop, it changes the DC level of the PDH error signal at the input of the LB servo box. Therefore, the signal entering the PI filter strays from zero. The deviation is about 20 mV at the LB box error monitor point when we lose lock (compared to +- 330 mV nominal range). I spent some time tweaking the input offset to adjust for the new setpoint, but wasn't very successful. I later realized we could feed the temperature PID setpoint to the -B input of the LB box, which would then adjust for the offset introduced by the temperature control loop. We'll try it tomorrow.

Finally, we updated the PID locking script to turn on only when enabled by X1:OMA-SLD_TEMP_EN, and when the cavity is locked (indicated by the trans mon channel X1:OMA-ERC_TRANS_MON_OUT16 reading > 50 counts). When the locking script is running, the logic is as follows

  • If not X1:OMA-SLD_TEMP_EN, then X1:OMA-SLD_TEMP_TUNE is set manually (the PID script does not change TEMP_TUNE)
  • If X1:OMA-SLD_TEMP_EN, then
    • If not X1:OMA-SLD_PDH_LOCK, then TEMP_TUNE is set to 0
    • If X1:OMA-SLD_PDH_LOCK, then the PID loop is engaged and TEMP_TUNE drives X1:OMA-SLD_PDH_SIG_OUT16 to X1:OMA-SLD_PDH_SET

Chris also added a GPIB controller to our ITC502, so eventually we can control TEMP_TUNE and read back TEMP_MON over GPIB instead of with Acromag channels. To use GPIB, local current control must be disabled, so this would require us to use the custom current driver or handle PDH locking at high frequency by phase modulating at the EOM. 

  2762   Wed Jun 23 11:36:49 2021 shrutiElectronicsLab Workswapping mixer

I just switched the mixer back to level-17 and changed the low pass filter to SLP-5+ (5 MHz corner)

Attachment 1: MixerandLPFupdate.pdf
  2761   Tue Jun 22 14:35:40 2021 aaron, shrutiDailyProgressControl Systemslow temperature control

[aaron, shruti]

I observed an unexpected behavior this afternoon that I still can't explain. I managed to get the cavity locked using the LB box servo in LFGL mode. When I turned off the servo box by switching to 'lock off' mode, the cavity maintained lock and the PDH error signal was passed through to the current modulation point. Only the LB servo was driving the modulation point, and the temperature tuning was also off. My understanding from the LB manual is that in 'lock off' mode, no control signal is summed into the output signal... so why was the PDH error signal passed through?

Later, we started controlling the temperature of the laser diode using some slow epics channels.

  1. Lock the cavity using the LB box (in LFGL mode) to modulate the current
  2. Turn on the python PID loop. The script and configuration we used are in controls@spirou:~/cryo_lab/scripts/temp_control/.
    • Operated the temperature control loop at 5 Hz in pure integrator mode, with K_I = 0.1-0.5       
    • I have the PDH setpoint at 0, and checked that any DC offset on the ADC is small (< 10 counts)
  3. Next, we tuned the input and sweep offsets of the LB box to optimize our dynamic range. We need the temperature control loop on for this operation, to avoid railing the current modulation input at the laser driver
    • first, tuned the LB box input offset until the error monitor was centered on 0 V
    • Next, tuned the LB box sweep offset until the current control was centered on 0 V
  4. With the low frequency gain limited to 20 dB, the PDH error signal was wandering at a few Hz. We turned up the gain limit to 40 dB, though we could have increased the gain of the temperature PID until it took over at those frequencies.

We observed a 100 kHz oscillation in the noise spectrum after this procedure. We weren't able to change the oscillation by tuning the laser current (within 10 mA) or servo gain (while maintaining lock).

We measured the open loop transfer function of only the LB servo box (feeding back its output to -B), and didn't see a feature at 100 kHz or an oscillation in the noise spectrum. We measured the transfer function in both 'lock on' and 'LFGL' modes. We did observe a broad peak near 4.5 MHz in the noise measured at the LB error monitor (attachment 1, 2. The sharp peaks are artifacts from the Moku present even with no input connected).

Data are available in the ligo.wbridge google drive. Attachment 7 shows the broad 100 kHz oscillation on the PDH error signal in purple.


Attachment 3: Updated OLTFs with LB1005 measured separately

We measured the OLTF of the LB1005 servo by feeding back to itself with the setting 'LFGL' (Low Frequency Gain Limit) set to 40 dB, INT (pure integrator until it hits LFGL), and gain of 5.1 at 300 kHz.

 I (Shruti) think the gain setting was slightly different today which makes the green curve slightly higher in magnitude than the orange curve, but otherwise it seems to track it and do nothing strange. The orange curve is the TF of the LB1005 derived when the servo is used to lock the laser to the PSOMA cavity as in elog 2759. The phase for both measurements also seems to be the same up to 1 MHz.

Data for LB1005 in Attachment 4 and remaining data used for the plots in Attachments 3 and 4 of elog 2759.


Attachment 5: Measured OLTFs again with new settings

After these changes we measured the loop TFs again. It is strange that the phase of the open loop first increases and then decreases.

Also there is a weird dip at 80 kHz (right above the UGF) in both the Plant TF and the full open loop TF.

The LB1005 measured separately and in the full closed loop differ by ~4dB, the full loop setting resulting in the lower curve, even with the same gain setting. Otherwise the two run almost parallel, at least below 1 MHz.

The data for this is in Attachment 6.

Attachment 1: MokuSpectrumAnalyzerData_20210622_152905_1LB_2ctrl_LB1005only_Screenshot.png
Attachment 2: MokuSpectrumAnalyzerData_20210622_153041_1LB_2ctrl_LB1005only_Screenshot.png
Attachment 3: OLTF_wLBonly.pdf
Attachment 4: LB1005TF.zip
Attachment 5: OLTF_wLB_20210622.pdf
Attachment 6: 20210622LoopTFs.zip
Attachment 7: 65DBE9F2-84F8-4BA1-9A8B-4CF90D1ADE8A.jpeg
  2760   Mon Jun 21 15:34:09 2021 aaronElectronicsLab Workswapping mixer

I swapped out the level 17 mixer in our PDH setup for a level 7 (ZFM-2-S+), and put it all in a box (attachment 1).

This let me remove the 10 dB attenuator before the LB box, though I had to add a 6 dB attenuator on the LO.

I measured the open loop transfer function again with the new mixer, and saw a 34 kHz UGF (attachment 2. I wasn't very careful to maximize the gain of the LB box). No correction was needed, since there is no longer an attenuator at either input of the LB box.

Attachment 1: A172449C-4B5D-47C1-B7FC-014B6CC28471.jpeg
Attachment 2: 796CBB56-3AA5-48D6-A344-F8239D9E605D.png
  2759   Mon Jun 21 13:54:08 2021 shrutiDailyProgressPSOMAOpen Loop Transfer Functions

Having added the attenuator, A(s), at the input A of the LB1005 the loop algebra is changed slightly: Attachment 3 has the algebra and Attachment 4 helps with understanding the symbols. I have just considered this attenuator separately from the plant and servo.

Attachment 1: Open Loop TFs

  • The yellow curve is the actual open loop transfer function after subtracting 5dB in the magnitude of the ratio between the PDH error signal and the LB error signal to compensate for the 10dB attenuator at the input A of the LB box
  • The blue and orange magnitude curves were recorded directly from the Moku
  • The phase of the Math channel saved from the Moku seems to be a copy of the magnitude for all three OLTFs even though the screenshots seem to show a real phase (the data for this is saved in Attachment 3 and shown in the previous elog) so I re-calculated the phase but I'm not sure if it fully makes sense. (The calculation is in Attachment 4)

Attachment 2 is all the individual closed loop transfer functions that were recorded to calculate the open loop ones.

Attachment 3 has the data, settings, and screenshots recorded from the Moku to calculate OLTFs

Attachment 4 is the Jupyter notebook used to generate Attachments 1 and 2

Attachment 5 has the loop algebra and diagram

Attachment 6 is a diagram of the setup depicting the loop components








Indeed, we were able to eliminate the oscillations we had been seeing by adding a 10 dB attenuator between the PDH error signal and LB box input A, and changing the attenuator at the LB box output from 20 dB to 10 dB. [We also swapped out our ZFM-3H-S+ for ZFM-2H-S+, which has a 2 MHz low frequency cutoff compared to 50 kHz. Swapping mixers did not resolve the oscillation]





Attachment 1: OLTF.pdf
Attachment 2: IndividualTFs.pdf
Attachment 3: OLTFs.zip
Attachment 4: LoopTFs.ipynb
 "cells": [
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl, matplotlib.pyplot as plt\n",
... 203 more lines ...
Attachment 5: NewLoopAlg.pdf
Attachment 6: NewSetup.pdf
  2758   Fri Jun 18 10:42:08 2021 aaronDailyProgressPSOMAInvestigating the peaks

[shruti, aaron]

We messed around with the LB box today. Here's my attempt at a narrative from the wandering.

We are measuring transfer functions using the Moku and LB box error points.

  • Driving the 'B' channel on LB1005, and recording the transfer function to current control signal and LB error point (A-B). The ratio of these transfer functions gives us the open loop gain of the LB box PI filter, G.
  • Driving the 'B' channel on LB1005, and recording the transfer function to PDH error signal and current control signal. The ratio of these transfer functions gives us the open loop gain of the optoelectronic plant, P.
  • As a sanity check, also recording the transfer function from 'B' to both the LB error signal and PDH error signal. The ratio should give us PG.




We first checked on an oscilloscope that we see no saturation at any of the monitor points (PDH error signal, LB error point, or current control point). We noted that the mean voltage at the LB box error point was reasonably close to zero (-2 mV). Then, ran a moku transfer function measurement with the following settings on the moku and LB box

  • Moku inputs; AC coupled inputs, 1 MOhm input impedance, 1Vpp range
  • Moku output: 50 mVpp drive for a 50 Ohm output load, with no offset
  • LB box: Input offset setting 5.0, PI corner at 0 Hz, 10 dB low frequency gain limit, proportional gain of 5.7.

We noticed that the control signal is much smaller than the PDH error signal, which seemed surprising at first blush since the LB box has a bunch of gain. However, the low frequency drifts of the control signal are much larger than those of the PDH or LB box error points (about 1 V drifts of the control compared to mV drifts of the error signal), which makes sense. And at high frequency the gain is falling off as expected.

I set the input voltage offset of the LB box by tuning the PDH error signal (on oscilloscope) to 0 V with the cavity locked; in retrospect, this isn't a rigorous procedure unless the temperature control is handling the DC error. With the input offset dial at 4.68 (-160 mV), the PDH error signal is centered at 0-2 mV a few mV drift over minute timescales. Before adjusting the input offset, the error signal was centered around -150 mV, which meant there actually was some clipping of the PDH signal! The input stage of the LB box saturates at +- 330 mV. The rms of the PDH error signal is 200 mV. Perhaps we should use a lower power mixer to avoid saturating the LB input (currently at level 17).

Indeed, we were able to eliminate the oscillations we had been seeing by adding a 10 dB attenuator between the PDH error signal and LB box input A, and changing the attenuator at the LB box output from 20 dB to 10 dB. [We also swapped out our ZFM-3H-S+ for ZFM-2H-S+, which has a 2 MHz low frequency cutoff compared to 50 kHz. Swapping mixers did not resolve the oscillation]

 THe LB box manual shows the electronic schematic for the servo in Figure 7. We again zero'ed out the inputs to the various amplifier stages by doing the following with both inputs (A, B) open and sweep range turned off:

  1. First, adjust the input offset such that the Aux Output reads 0V.
    • The dynamic range of the PI filter is +- 330 mV measured at V_error from Fig 7
    • I don't think the difference amplifier ever saturates before the filter amplifier, since the manual claims the input offset can null out DC voltages up to +- 10V.
  2. Then, adjust the sweep center such that the output also reads 0V
    • For the summation (last stage) amplifier, the max/min output voltages can be read by turning the sweep offset knob to the +- rails. The maximum output voltage is 1.43 V; the minimum is -1.72. We could trim the pots on the back of the box to make these appropriate to our current driver, and centered at 0 V

Attachment 2 shows the PDH signal and LB error point, so the math channel gives PG. Attachment 3 shows the PDH signal and control signal, so the math channel gives P. Attachment 4 shows the control signal and LB error point, so the math channel gives G.

Attachment 1: B09D5E30-08A4-45B1-934C-7D6E84FDBAAB.jpeg
Attachment 2: 5368BBE2-F9C7-4DBC-B098-05363DB8FD20.png
Attachment 3: 1A231013-D1A3-49BF-A5E7-0B4D9238E195.png
Attachment 4: 2B9714F6-0367-44F2-8E53-AF6E2C9ADFC0.png
ELOG V3.1.3-