I reorganized the Cryo Q areas, and began baking the smaller items (RTDs, sensors, charcoal getters, feedthroughs, screws, etc) in the EZ bake oven. I'm bringing some larger items to the 40m.
The new cryostat is baking at ~110C, and the pressure is hovering around 3-4e-5 torr.
I made a fairly detailed checklist of things to do, step-by-step plan of what we need to do to get to Q measurements, and list of materials that we still need to gather.
I will continue updating it as we go and I am able to get into more detail on different tasks.
Here's the link:
I was thinking about how to attach wires in our cryostat without using solder. I'm concerned that it will be difficult to crimp our thin, brittle manganin wires. However, I found some information on conductive cryogenic epoxies. Lakeshore offers a conductive silver epoxy that can be ordered here. I think we already have some of the same kind in the lab. I'd like to measure its electrical conductivity in practice, and see if I can figure out a way to epoxy the wires that prevents them from snapping easily later.
These are two videos I recorded when topping off the liquid nitrogen dewar.
After discussion at the cryo meeting, we decided to order the larger vacuum hosing for our cryostat. Because science deserves it.
I confirmed that our turbo ends in a KF40 connection. I asked Chris to order the following from KJL:
I also asked Chris to complete the order for a 12-pin electrical feedthrough from IR labs. Thanks Chris!
Here's the electrical feedthrough
I am thinking about the best way to connect to these eyelet terminals. I may try some kind of crimping?
On returning to the lab, we find the pressure is 7e-7torr (pumping on the hose and a blank). We closed the valve to the pump (without turning off the pump) and observed the pressure in the hose rapidly (<5min) increase to 1mtorr. This indicates a leak or bad outgassing in the hose.
The temperature of the cryostat is 50C. I turned off the heater so we could work on the cryostat.
Rahul and I loaded the RTD-disk sandwich onto the substrate holder, but when we went to install our electrical feedthrough we found that the new feedthrough port is not compatible with the old electrical feedthroughs. Therefore, we just loaded the mount itself into the cryostat and began pumping down. It took an unusually long time for the pump to spin up, I suspect outgassing or a leak in the dewar.
We also observed that
Rahul and I got most of the way to having GeNS inside the cryostat.
Earlier in the day I applied heat to the vacuum hose we were using and we observed the pressure go from 6e-6 torr to ~1e-5 torr, so there is some outgassing from the hose.
Aaron drilled the appropriate holes in the heat shield bottom (attachment pending) while Rahul transferred the wiring from the old GeNS to the new GeNS. Rahul mounted the new elliptical mirror on the new GeNS. We both raised the new cryo a couple inches to accommodate the height of the GeNS and linear actuator. However, when we vented the cryostat the interior iced up, so we were unable to actually load in the GeNS. We have closed but not pumped on the cryostat, and are applying the heater to facilitate evaporating this condensation.
There are a couple of nonidealities to note:
I returned to put together the new GeNS and get it in the cryostat.
I realized it was going to take some time to put this together with all wiring, so I put the heaters on the cryostat again to get some more baking. I attach the pressure trend to this afternoon; the pressure was at 2.5e-6 torr and still dropping. After applying heat for a couple hours (40C, before turning it up a bit) the pressure is at 2.9 utorr.
When I went to put together GeNS, the posts would not slide, so the disk couldn't be lowered. I don't know whether the clearance holes were undersized (maybe slightly), but the post material is teflon rather than delrin and seems a bit more likely to catch as it moves across the steel. Anyway all the clearance holes should have been 10mm, so I just redrilled all of the holes and it now works.
I made an edrawing of where we need to add holes to the heat shield bottom.
Too much heat! Heater is off.
The cryostat is secure, but I have it cooling down to room temperature. The bracket did not survive.
The pressure initially settled down at 4e-4torr, and the sharper decline near the end of the plot is when I turned off the heater.
The pressure is now down at 2.5e-5 torr, which is OK but not great. However, remember that this is before baking any of the vacuum components, and without grease on the o-rings. Today we will finish the alignment procedure, after confirming from IR Labs Steve that we can hold on the to support rods with pliers.
I closed the valve to the pump and the cryostat and vented the cryostat.
I still couldn't get the dewar to move very much relative to the heat shield, but I did manage to tighten the supports so they don't have any free movement (so the tank will hopefully be more secured). The manual does mention that the thermal integrity of the sysstem relies on proper support rod adjustment, but I think as long as nothing is contacting a hot surface (appears not) we will be OK. We do rely to a certain extent on this alignment for our optical alignment and disk leveling, so perhaps we will need to return to this later. Installation of GeNS will not render the support rods inaccessible (though the dewar would need to be re-inverted).
Next we are to check the alignment of the optical path; we have no optics on the cold surface, so we are all set.
Next, we would install the bottom plate of the heat shield, but in our application we actually set the GeNS on the heat shield. I will save this fresh bottom plate and use the one with GeNS already installed.
The cryostat is ready to be inverted and GeNS installed.
I mounted the cryostat in the normal orientation and wrapped heaters from Zach's table around the cryostat. I applied 60% heat, and the temperature sensor got to ~120F on the exterior of the dewar. I'm going to aim for ~200F, because that was the recommended temperature for baking the charcoal getter.
I tried putting the GeNS mount in the 40m bake oven, but it turns out it's just barely not small enough. I'll take the parts over to use the oven at the 40m.
Here is a curve of the pumpdown. The sharp, brief dip is when I closed the valve at the cryostat to see if the vacuum hose is actually pumping down well. We haven't evacuated this hose in a while, and it seems OK, but I would feel more confident if we pumped out the hose along for a short time. Where it looks noisy is because we are coming to the bottom of the range of one pressure sensor, and the top of the range of the other hasn't kicked in yet.
I made a block that counts zero crossings to get the frequency of the temperature mode. It takes the square wave from the moderinger, then multiples successive samples from this square wave. If the product ever becomes negative or zero (ie, the sign of the square wave changes), an indicator becomes '1'; else zero. I take the moving average of this indicator over 1064 samples (using the TrueRMS block from CDS_PARTS; I should check if this average becomes very small or large, and change the indicator value appropriately) and multiply it by the sampling rate divided by 2 to get the frequency.
Here are some photos from the unboxing.
Rahul and I made a plan for how we'll mount the new cryostat (the breadboard in the photo is part of this). It will require a new bracket, because the new dewar doesn't have holes in the side for attaching the arms we'd been using. I went to 3D print these brackets on Monday, but the print job failed (several times), probably because the brackets are quite large. I came back to it this morning, and the machine now says "out of order". The Mech E shop is closed until Sep 28, so those printers (they have a more reliable larger printer) are also out of use right now. I also got a quote from protolabs for getting this 3D printed, and it said it would be about $2200, which seemed too high to me. Instead I'm going to make the design a little smaller and try to print it on one of the other machines.
During measurements the cryostat will be mounted by:
To remove the disk from the cryostat we will
To load a disk into the cryostat, we'll reverse the removal procedure.
I started unboxing the new cryostat. The box came with a manual for using the dewar. Please note the following new rules of this cryostat:
These were really already best practices that we were trying to adhere to, but since this cryostat is new and we have fewer kinks to work out with the GeNS, I think we should do a better job of sticking to them.
We need to do the following to get this cryostat commissioned (in addition to the steps outlined in the manual):
I tabled getting a moderinger Q measurement (and asked Zach for some tips on getting the calibration right).
Since it looks like the cryostat is still pumped down and aligned from a couple weeks ago, I'm going to see how the frequency tracking is working.
I'm going to first use the mode I identified last week around 28.211kHz. The first step is reliably exciting the mode at a set amplitude with moderinger. To do this, I made the following filters:
I'm gettnig a coulpe errors from diaggui... both time out errors (typically after ~10 averages) and "unable to obtain measurement data". Not sure why this is, it seems to temporarily be fixed by restarting diaggui. The IOP screen says "No Sync" and a TIM error.
I am able to excite the mode above background, but don't seem to be able to reliably change the mode amplitude.
In the meantime I'm adding some bits to the medm screens to be able to read off the mode frequency. I'd like to just see that the frequency changes when we add nitrogen, etc. I made the following changes to the TEMPCTRL screen:
I'm testing this with the temperature mode-ringer on. I've attached a plot of the ESD output and pitch/yaw signals with this moderinger on. The energy readout doesn't look stable, but on the diaggui I see that the mode has a fixed amplitude, which is good enough for me right now.
For some reason when I engage the 10Hz low pass it looks like there is a big gain applied (signal goes from ~1000s of counts (Hz) to ~millions). I also tried applying a 6Hz BP around the excitation frequency, applied at TCTRL_LOCKIN_DEMOD_SIG, with no visible change. The higher the frequency of the LP I apply, the less volatile the output. I'm going to check on what these signals look like in frequency domain...
I noticed that I and Q after the demodulation had significant power at higher frequencies (100s of Hz). I ended up applying a 10Hz low pass filter to I and Q directly (and individually). This seems to have stabilized the ratio I/Q, and now I get a much quieter beat frequency. I should probably think more carefully if this is actually the place I want to low pass, because now I am applying 10Hz LP filters in several places, and it's not clear to me why each of these is doing something different. Anyway for now it seems to work, with a beat frequency stabilized to between (-)1.5-2.5 Hz. Seems to me this should be much quieter, maybe figuring out where the filters should be applied will help, or using a mode with a higher amplitude (and fewer nearly degenerate modes). Because it takes some time to go cold and I don't know if I want to spend a full day cold (plus adding nitrogen might knock the disk around), I'm turning on the heater to full blast to see what it does to the beat frequency.
[note on photos: the striptool with a huge range has just LP filters applied to the beat frequency itself; the initial times have a 10Hz low pass, the later times have 1000Hz low pass. The striptool with a -10 to 10 Hz range has the LP applied to I and Q, as well as the 10Hz applied to the beat itself, and corresponds to the beat frequency for the spectrum attached. The other spectrum is the ESD excitation and mode signal in P/Y that I am reading out. I might also want to test this out with a lower frequency mode that can be excited to a higher amplitude as a first pass]
Luis and I took a shot at quantifying the noise of the Valon 3010 programmable frequency dividers today. The setup we used was the following:
A Marconi generated signal was split and put in two separate dividers, whose RF output "DIV1" was then fed to the Red Pitaya phasemeter. We used physically different units because the three channels share the same input amplifier and comparator. This drawing from the spec sheet illustrates this:
We added attenuation and subsequent amplification and lowered the input power to the divider, the frequency, and the divide-by setting. In the final configuration the Marconi generated a -4 dBm 961 MHz signal which was attenuated to -34 dBm and then amplified and split, giving about -17 dBm as input to the divider (specs are -20dBm to +20 dBm) which was set to divide by a ratio of 32. The 5dBm square wave output was 30 MHz bandpass filtered using mini circuits filter to suppress the harmonics, and filled the RP ADC dynamic range to ~50%, so we did not add any amplifiers after the dividers. We used Marconi frequency and divider settings compatible with the bandpass filter.
The noise plot for the final measurement is attached, in units of Hz/rtHz as well as rad/rtHz. It looked virtually the same for every combination we tried. The differential trace shows that below ~100 Hz this measurement is limited by the internal resolution of the RP (the frequency estimate of the PLL is streamed to the workstation with 32 bit precision to the work station at 200kS/s, which corresponds to a frequency noise floor of ~64 uHz/rtHz). Above 1kHz, at roughly 0.24 urad/rtHz the measured phase noise is slightly higher than the theoretical ADC noise inferred by Vineeth's measurement from long ago (70 nV/rtHz).
Things we didn't test are
What we can extract from this measurement is that
LISO files are scattered in way too many separate locations on gaston
controls@gaston:~$ find ~ -name *opamp.lib*
There is no need to copy LISO files into local directories for every new project, it can be called from anywhere. If an OpAmp is missing in the library, it should be added in the original master for everyone to use.
Back in the lab, I got a new disk that has two symmetric flats (the other one had one primary 16mm and one secondary 8mm flat, which I suspect was causing a bad balance), closed up the whole thing with the Hi'iaka dewar and new struts, pumped down, and aligned into the lenses mentioned above. The signal on the QPD is much larger (attached)!
That means I see a much more pronounced forest of seismic modes from thuings like the pump, but also that the ESD-to-Pitch/Yaw ttransfer function is everywhere about 20dB higher. I don't think the SNR of disk oscillations to seismic has changed, but at least seismic is above the QPD and ADC noise up to a few kHz.0
I identified modes at ~688, 690Hz; 1.033, .999 kHz; and 2.291, 2.365 kHz (P, Y), as expected from COMSOL models. There is also resopnse at about 85Hz, but I don't think I can attribute that to a disk mode. For the two higher frequency modes, pairs of nearly degenerate modes appear alternatively in pitch and yaw, likely because I intentionally oriented the disk so the flates were symmetric wrt the QPD (one on either side).Instructions for fixing bogus lengths
I also got a transfer function looking for some ~30kHz modes to use for temperature monitoring..... But all of a sudden I'm getting synchronization errors? I did diag reset but IOP still has a TIM error. Last time, these synchronization errors were due to a bad frame write. I found the path where Chris stored the script to fix the corrupted channels so the fb can be written again.
Whoops, turns out there were no files with bogus lengths, so I guess this was not the problem, and I didn't finish running ./fix_bogus_lengths so don't want to document it incorrectly. I'm going to try restarting the fes...
Diaggui then told me it couldn't start excitations, followed by a restart of diaggui and another synchronization error. No change to the monitors, still a TIM error and no_sync. Trying a restart of cymac1 next...
After running ./startAll.sh, I still see no_sync and a TIM error on the IOP screen, and still no problems with any channels on the DAQ screens.
While doing that, I noticed that the cryostat was a bit off-kilter. Maybe that was behind some of the alignment woes! The bottom supports are also at the wrong height, so they aren't gripping the arms symmetrically; this probably isn't a huge deal, but maybe is giving us some seismic?
Turns out the synchronization errors are only when doing some large TF measurements. Weird? They were working the other day, and they work if I use seconds rather than cycles to set the measurement time. Ah well!
I managed to get a transfer function that somehow stopped in the middle of measuring--but still found a high frequency mode! It's at ~28.205, 28.207, 28.210, 28.211 kHz. Hm... lots of degenerate modes at these high frequencies.
I worked out that the UGS screen doesn't have switches available to turn on the gain adjustment. I think this is probably important. As far as I can tell, the thing to do is turn on the frequency override, then adjust the frequency of the loop until either H=HPrime or HPrime=1 (I think the former, but haven't tested it yet). Now you have measured the UGF, which you can enter and then turn off the override and turn on the loop. That should do it?
I was testing this out but the oscillator started acting weird--it was outputting '0' for the LO, instead of the sine. There aren't any channels that actually control this oscillator, so I wasn't sure what happened--all inputs looked fine. I restarted the fe, but cymac froze so I had to restart cymac again.
On restaring it still wasn't working. I don't know why this is. Ah well, in a few weeks then.
I realized that last plot was kind of misleading, because I shouldn't have been assuming a fixed magnification telescope. Instead, I've just chosen the focal lengths of the lenses we have in the lab and plotted the distances from oscillator to telescope, and telescope to QPD.
It confirms the basic picture, that I should keep the telescope as close to the QPD as possible, and make the distance from the telescope to the QPD as long as possible while keeping the beam the right size. In practice, this means that more magnification in the telescope is more effective. It also confirms the picture that having the telescope much closer to the QPD than the oscillator probably suppressed our signal.
QUESTION: Is there a tool for turning the fasteners for the lens mounts? This small flathead feels really precarious...
For the Thorlabs lens mounts we have a spanner wrench in the CryoLab. I have last seen it in the drawer with all the optics mounts in the blue cabinet below the 3/4" and 1" optomechanics drawer (not yet labeled, unfortunately).
For the Newport lens mounts there exists a tool as well, but we don't have one in the CryoLab (that I'm aware of). Maybe the other West Bridge Labs? PSL or QIL come to mind...
Pressure was around 2.5e-5torr when I turned the pump off, 10:15am.
I went to put together the new dewar, but the struts are not quite in the right places and the torque from the tightened struts overcame two of the epoxy sites. I didn't trust the last one on its own, and pulled it off. I'll need to go back to the 40m to bake this again, and apply a thicker layer of epoxy.
I found some new lenses for the telescope:
I'll set up the 1:4 telescope first. I needed to swap out the lens into a better mount, then good to go. QUESTION: Is there a tool for turning the fasteners for the lens mounts? This small flathead feels really precarious... I had quite a bit of trouble getting the beam out of the cryo, so I'm going to go to atmosphere and try again after lunch.
I got a fedex message from Rana that says our new cryostat will arrive tomorrow, so I'll expect to get it then or Wednesday depending on what happens at Caltech.
In the meantime, I have finally baked the Hi'iaka dewar and epoxied on its struts. I did the following:
The parts are waiting in the cryo lab. Just before making the optics changes tomorrow, I'll set up Hi'iaka to pump down anew; I'll probably not set up the new cryostat before leaving on Wednesday, I'd rather take my time with it and I think I'll probably be a little rushed in the early this week. If the old cryo can get kind of cold great, if not at least I want to have live Q's and temperature tracking going at room temperature.
Whoops thought this would have pictures but I have none, tomorrow then.
This took me a bit longer than expected. I wanted to optimize our op lev configuration. I ended up starting to make a kind of pedagogical note on ray transfer matrices, abandoned that halfway and wrote the better part of a python script to optimize an arbitrary configuration with telescopes before and/or after the oscillator, and ended up realizing I was reproducing existing ray tracing software so I went back to the analytic calculation just to get a sense for how things go so I can swap up the op lev.
Let me know if you'd like the .nb from me, or I can put it in Qryo.
I aligned the transmission portion of the setup and swapped the pair of PDA20CS I had been using for monitoring the transmitted power for two C30665 photodiodes mounted in the M2ISS mount, which I extruded to 4" beam height.
Anchal is making a revised version of Zach's transimpedance amplifier circuit, and until it's ready I'm using the one board that was made and tested by Zach. I put in in a box, still want to do some noise testing though:
I had previously set the CTC100 setpoints to 120 K for both paths, and found the beat note at 485 MHz, similar to room temperature. I set up the Marconi PLL using the transmission beat note, and the control signal is now sampled and written to frames at 32K. The Marconi's frequency resolution is set to 10kHz for the time being. When we get closer to zero-CTE we can probably dial it down to 1kHz. I'm running Craig's Marconi tracking script overnight, which will give us a lot of beat note data for averaging.
I also aligned the visible lasers to the cavities for finding the zero-CTE point. I set the modulation frequencies to 5Hz (East) and 7Hz (West) and added "butter("LowPass",8,1)" lowpass filters and "notch(5/7,20,80)" notch filters for the respective modulation frequencies to the dither modules
I checked the threshold currents for both laser diodes, which were 24 mA for the violet laser (East) and 33 mA for the red laser (West). Both laser diodes have a nominal operating current of 40mA, so I set the modulation to span from just above threshold to 40 mA. For practical reasons the units on the MEDM screen are currently in units of ADC/DAC bits.
I made some small changes to the DITHER module and tweaked Disha's MEDM DITHER screens a little bit. The signal chain is pretty much what the screen outlines. The cos signals of the two oscillators are split off and generate the current driver modulation signals using a fast DAC. The sampled Marconi PLL control signal is IQ demodulated against both oscillators, and phase rotators were added. At 120K there is a clearly visible effect from the visible laser modulation:
In the screenshot the phase was already rotated such that almost all the signal is in the I quadrature. The big transient was caused when the Marconi tracking script changed the carrier frequency. The signal from the red laser is ~twice as large as the violet one, but that doesn't necessarily mean that it's better for modulating, although Disha's transmission and reflection characterization of the different optics suggest this, and the modulation depth of the violet laser is also ~twice as large (10 mW vs 5 mW). However, the reading of the temperature sensors can only be trusted to ~K levels, and East could be much closer to zero-CTE. I changed the CTC100 set points to 123K and let the modulation on overnight so we can observe the changes and see if we creep closer to zero-CTE.
In the meantime, enjoy the light show:
This just in: latest polls have shown that two out of three CryoLab Marconi's have power-up issues with flickering displays and clicking noises on startup. I will turn both over to Steve to get them fixed.
The Marconi that was sitting just above the Rubidium clock is showing the same symptoms the other one had.
I found this document that has good information on the how to choose the correct gain settings on our QPD.
Note: need to update model to normalize pitch/yaw outputs.
I also found some parameters from the laser spec sheet here.
The pressure is 46uTorr.
I added a switch (QPD_ROTATE_SWITCH) that turns on the QPD pitch/yaw rotation, and when off just sends pitch to the moderingers. For some reason the usual way I make switches on medm isn't working for me, but anyway the rotation is now off...
When recompiling and loading my model, I've been getting a "no_sync" error that goes away if I restart IOP. However, just restarting the front ends messes up Johannes' filters for some reason. Our current solution is to restart cymac1 every time we reboot, so the process for changing models is now
For some reason sometimes a few things don't work after a single running of ./startAll.sh; for example, Matlab's home directory doesn't include the rtcds directories. However, after running ./startAll.sh a second time, matlab has the home directory loaded but the filter modules stop working.
Anyway with the filters working, I'm still not seeing the MR successfully excite a mode. I've attached some of the relevant channels along the chain, where going from PIT_OUT to DESQUARE_OUT should just produce a sine wave at the mode frequency. The spectra with flat tops are with the awggui excitation off; the peak appears when I turn on the excitation in awggui. Ideally, the moderinger itself should identify the peak, and produce a drive at that frequency that keeps it excited. I'm not sure why some of the filters (especially the desquaring filter, which is just a LP at 1013Hz) seem to have transfer functions that don't match their bode plots. For this afternoon.
Not sure if this is related, but I couldn't switch on/off any of the filter modules for x1cry. Cymac crashed when I tried to unload/reload models and I had to hard reset it.
Now, finally back to tracking modes! I've attached that ringdown from earlier today.
I need to make some new filters again, because the ones I made were under a name convention that I just changed in the new model.
Again, the loop doesn't appear to produce any drive output initially. I suspected this is because I gave my model the option of rotating pitch/yaw into each other, but didn't populate the matrix that does so with anything, so it's probably all zeros. Indeed, the input to the moderingers are flatlined. I replaced the matrix with a cdsPhase block, which should do the same thing but accepts one parameter (the phase) and will take care of unitarity.
Unfortunately, the phase rotator doesn't seem to work very well--If I ask for 0 degrees rotation (or any rotation really) the output is intermittently chopped (ie, there is some signal of hundreds of counts, and intermittently the channel value goes to 0 for a few ms, then returns to the usual signal). It seems what's happening is from the phase parameter, cos(phase) and sin(phase) are calculated, and sometimes that calculation yields cos(phi)=0 regardless of the value of phi (see plots).
Chris fixed the timing problem with diaggui. As before, several fb files had been corrupted when their channels were incompletely written to frames. Chris made a new script, located in , that truncates these files, allowing the fb to write its minute trends again.
He also noticed that there was a new service script that automatically starts awgtpman, which may have been causing a problem when startAll.sh tried to start the same. This seemed to fix the problem that the fb wasn't running even after running the startup iop commands.
Nonetheless, on trying to make the x1siq, rtcds make x1siq still tells me that it can't find the .../env file. Ach, this was because I was using the wrong commands. Instructions for working with models here.
I measured the Q of the 1007.75kHz mode at ~13k using diaggui.
x1siq failed to build due to "Unkown DAQ channels", X1:SIQ-QPD_[PIT/YAW]_OUT. These are the only two DAQ channels written to frame. I realized I inadvertantly had renamed these channels to "X1:SIQ-OPTICS_QPD_[PIT/YAW]_OUT", so I renamed that system block to keep the channels names the same as before. I'm now getting a different error:
"No rule to make target 'src/epics/fmseq/x1siq.db'"
Trying to make again after making no further changes to the model seems to solve the problem. Not sure why, maybe cymac hadn't had a chance to update the model before. Note: the correct sequence of commands is
The pressure is not 220utorr, and I see from the RTD channels that Mandy was able to change the temperature of the disk by at least a few degrees yesterday by shining the heat lamp into the cryostat. Hooray! Looking forward to seeing what that did/does to the eigenfrequencies.
I checked the beam alignment and changed the QPD gain to 3 (from 10) because ~Hz noise was reaching nearly full range.
I added a -16000 count offset to the drive output from the ESD, because without this offset any fluctuations centered on 0V will be clipped by the HV driver.
I wanted to get a Q measurement with the 'traditional' method to make a comparison with the moderinger. However, I'm still getting time out errors when using diaggui. I'm not sure why this is, and two FE channels are still red--wasn't only one red before? . I also see that 'CPU Max" is red, though I'm not sure what each of the columns there indicate.
I remember some intermittent timing problems we dealt with in the spring. Yesterday before leaving, Gaston froze again on me, so I'm wondering if these are related; I'm also using the _DQ channels on diaggui, so maybe the time out is a fb issue? However, checking the dataviewer I don't see the same intermittent 'gaps' in data we were getting before, so it's probably not the same problem.
I rebooted cymac1. On reboot, I followed Chris' steps. About halfway through an alarm on Johannes' laser diode controller for the W cavity started going off, with the "win" indicator flashing red. I turned off the laser current drivers.
After reboot, there are still two red FE channels, but CPU max is no longer red (now is yellow). I think the FE channels might always be red, I seem to recall one ADC channels wasn't working. However, diaggui says it's unable to obtain data from any of the siq channels. I tried restarting the models again, but cymac1 became unresponsive (port 22: no route to host) while rmmoding x1siq. rip. This happened a couple weeks ago as well while restarting the fe for x1siq, and again made cymac1 unresponsive. I wonder if there is a problem with some of the changes I've made to x1siq? Perhaps I'll take this opportunity to recompile the model, since I've made a few additional changes.
Unable to ssh into cymac1 again, I did a hard manual reboot... After running through the startup steps again, I get a seg fault when trying to open dataviewer, and see no channels available on the dropdown menus in diaggui. The DC indicator is flashing green and red, and running DAQ LOAD causes the red TIM light to turn on (I had noticed this behavior before, the way I'd been turning TIM green is restarting the fe, but I've realized Diag Reset also works). I am getting an MEDM message window about a "virtual circuit disconnect," but without much additional information (source file ../cac.cpp, context cymac1:60086).
This is all starting to feel like so much voodoo, and I don't feel like I'm gaining any diagnostic tools. I'm going to try recompiling and installing the x1siq model. I had made some changes to this anyway that will hopefully be useful. However, on opening the model I see "Unresolved Link" in any of the CDS parts; matlab just doesn't know where these parts are located I think.
I've told cymac1 to reboot again. This time I'll try Rana's script, which Johannes said worked for him when he restarted cymac1 yesterday. Everything looks green after this, but I still don't see any channels available in diaggui, still get a segfault when opening dataviewer, etc. I also can't compile the models; rtcds make [model name] gives the error that /etc/advligorts/env does not exist.
While trying to restart the models again, cymac1 froze during /sbin/rmmod x1scq. After another hard reboot, sudo ./startAll.sh leaves us in the same state as before--seg fault on dataviewer, no access to channels, etc. Launching dataviewer directly from cymac1, I get the error "cannot connect to cymac1".
I don't see any values on the drive output monitor,
The pressure is now down at 280utorr.
In Nic's moderinger paper, he derives that we can measure the loss /phi by knowing the gain H, setpoint c, and the mode frequency and UGF. The UGF servo tunes a variable gain until the gain at the UGF is 1, which completely characterizes the loop (still not feeling this in my bones, so this probably won't be a great description). Anyway here's how I understand it working functionally...
The first thing to supply is the amplitude setpoint. It looks like the FE is down from when Johannes reloaded his models this morning with rana's startup script, so I'm restarting using Chris' explicit commands. Funnily enough after doing this I also have red lights on TIM and AO... I got some error that x1iop is in use by x1scq, Zach's model, which is strange because I don't think it's in use. However, adding the line 'sudo /sbin/rmmod x1scq' before rmmod-ing x1iop seems to work, so now the commands are:
$ ssh cymac1
$ sudo /sbin/rmmod x1cry
$ sudo /sbin/rmmod x1siq
$ sudo /sbin/rmmod x1scq
$ sudo /sbin/rmmod x1iop
$ cd /opt/rtcds/tst/x1/target/x1iop/scripts/; ./startupX1rt
$ cd /opt/rtcds/tst/x1/target/x1siq/scripts/; ./startupX1rt
$ cd /opt/rtcds/tst/x1/target/x1cry/scripts/; ./startupX1rt
$ cd /opt/rtcds/tst/x1/target/x1scq/scripts/; ./startupX1rt
After runnnig this set of commands, TIM and AO are green, but FE is still red, so I'm back where I started, with the exception that now diaggui seems to work again. Not sure why this is, and I'm not sure which two FE channels are nonoperational. Clicking DAQ LOAD makes TIM turn red, I'm also not sure why this is.
Mandy is getting a synchronization error after a few seconds of taking spectra with diaggui.
What's going on here?
The BPF singles out one mode, from which we get the mode's amplitude (squared, LPF, sqrt, sent to an epics out). The moderinger is an amplitude locked loop, so the mode amplitude is subtracted from the setpoint to get an error signal. This error signal is then amplified by an input gain H. The amplified error signal is then sent to the UGF-servo, along with an offset given by the UGF (supplied by an epics in) of the amplitude locked loop.
I came by to look for modes so I could continue implementing the moderinger. After the following changes, I managed to find modes:
I do note a strange periodic signal on the scope at a few 10s of Hz when aligning the QPD (attach later), but haven't really investigated it thoroughly since I was able to find some modes.
I excited the disk in awggui with white noise from 100Hz-3kHz, and noticed a potential mode near 1kHz, which I then found to be at ~1008Hz. I measured the ESD-to-Pitch/Yaw transfer function, attached, and found a few more modes. Their eigenfrequencies are consistent with previous Q measurements.
I haven't checked the RTDs, but having one RTD read nearly zero sounds like a short to me; it could also be that one of the voltage leads broke off and is now floating. Anyway it's not an uncommon problem, just requires opening up again and seeing what's going on. We can probably manage without if we still trust the other RTDs and don't want to mess with beam alignment.
To implement moderinger, I need to create several filters in foton. I'm refamiliarizing myself with foton, and it took me a while to figure out the correct files to write for my filters to be loaded (it's /opt/rtcds/tst/x1/chans/X1SIQ.txt, then you select the correct module to edit. I'm not sure whether the filters I create here will be carried over if I recompile my model).
I made the following filters:
Yesterday at the cryo meeting, Mandy reported havnig trouble finding the eigemodes of the disk in air. Last night Aaron spent some time trying to find the modes, and left the diaggui running with a find swept sine TF measurement overnight; despite these efforts and the observation that the ESD could generate some excess power over noise when driving at a single frequency, the TF measurement did not reveal any modes (screenshot attached) and Aaron was unable to find them manually in the lab.
Today, we are putting the GeNS system in vacuum to try to reduce the amount of acoustic noise hiding our modes. We took out the two dewars from Hi'iaka and replaced the top with the jacket bottom from Anu; thus we cannot cool down, but hopefully have a tight vacuum.
We put the GeNS into jacket, but the initial pumpdown stopped at 100 torr or so, indicating a large leak. We were really fast and loose with the o-rings, so it's possible we just need to wipe them down, confirm that all ports actually have o-rings, and regrease the viton.
Despite this, it's possible that just having the system in a closed volume with less airflow will be sufficient to identify some modes, so we put a pause on vacuum efforts and Mandy is now aligning the beam into the cryo.
We realized we'd forgotten one of the o-rings; on replacing this o-ring, the vacuum gets to 5mtorr, which is still way too high, but makes some sense given the state of the o-rings and the in-vacuum components that have been sitting in-air for quite some time.
We continued aligning the beam with much difficulty, eventually resorting to moving the periscope closer to the cryostat so we could use a wider range of ingoing angles.
We're cool. For a couple days now. The CTC100 was set to maintain the thermal shields of both cavities at 120K.
With the current drivers in limbo I couldn't check what worried me most: That the mirrors may have plopped off due to insufficient heat transfer. I brought both drivers back to working order, one remains not installed for testing, but I installed the other one and fired up the lasers one after the other to look for back-reflections.
Upon turning the light on I saw reflected light immediately. A bit misaligned but surprinsingly close to the incident beam. The following procedure proved quite successful for both paths, it took less than 10 minutes each to recover the (frontal) alignment:
It's a major relief to know that the mirrors stayed on and that the bonding strategy worked as intended.
Next, the transmission path will need to be realigned. Last week we received the 4" extruded M2ISS PD mounts, the PCBs, and the circuit parts. Anchal and I will begin assembly and if all goes well we will have shot noise limited TransPD readout soon.
Design of the AC-coupled ISS servo also moves forward and we'll probably be ready to order the parts next week.
I was trying to resolve the current driver issues once and for all so we can go forward with the publication. The two things that had to be done were
First, a note: I thought that the current is limited because M1 is fully open and supplying the majority of the current. This is not true. With R22 being 20kOhm, and R60 begin 560 Ohm, at 100mA output M1 (the small Mosfet) is only supplying ~5mA, but the drain voltage is pulled so high trying to squeeze more current through the 20kOhm into the base of the NPN transistor that the OpAmp starts railing trying to increase the mosfet output further. So it's not THAT bad, but of course a bit annoying.
Second, a surprise: The current driver was actually oscillating this whole time in the previous, at about 500-600 kHz. It wasn't a big oscillation, nothing like rail to rail, but enough for a modulation depth of several kHz. I found this by using the FET probe of the AG4395 on the 50 Ohm sense resistor. It was too small to show up on a scope on the monitoring signal, and back when I measured the laser frequency noise after making the modifications it did not show in the delay line measurements. I consulted spice, and it turns out that simulating the circuit for longer than I had been (increased transient analysis from 1ms to 10 ms) it actually showed the oscillation. The noise <100kHz was fine though, despite the oscillation. I had removed C35 because it was seemingly not needed, but the only way to get rid of the oscillation in this topology was to re-introduce C35. The bias path would only turn stable for C35>1uF, but with such large capacitances I witnessed the return of the noise bump.
Changing to LT1128 did not affect this behavior. I tried different configurations, both in spice and in the driver, but the theme remained: either small high f oscillations or noise bump.
In an act of desparation I removed both mosfet and bjt and replaced them with a single mosfet, similar to the Libbrecht deisgn. IRF610 was the least heavy-duty mosfet in TO-220 style that we had in store so I plopped it in the place of Q2, which has a sizable heatsink. Attachment #1 shows the different configurations. According to spice this would be stable without any caps or resistors, which I confirmed in the circuit after making the switch. I don't see any oscilations with the AG4395 and the noise < 100kHz is as low as it ever was with no bumps
Attachment #2 shows the complete list of changes I made to the current driver over the years
Using the SR554 transformer preamp I recorded the noise spectrum shown in attachment #4. As expected, the transformer is picking up extra noise, even with terminated input. Between 10 and 100 kHz the noise 'floor' is higher than with the current driver connected, which means that the current driver is suppressing this extra noise. The bottom of the measured noise curve is a factor ~2 above the principal limit, which is determined by the input noise of the LT1128 feedback OpAmp and the 50 Ohm sense resistor.
I was choosing a material for the new GeNS posts, and found some data on the outgassing rate of different plastics that I thought would be useful to compile.
Thanks for the tip, I didn't know we had an SR554!
I used a 20 Ohm dummy load for the current driver to figure out how to best use the transformer amplifier for the current noise measurement. I attached a sketch to make the terminology clear.
I made an adapter for the laser cable in which the return wire was cut to allow placing a resistor in series with the laser diode for sensing. The SR554 input (and before simpy the inductors I was checking out) is connected across this sense resistor, providing a path for the DC current so the current driver DC voltage budget is conserved. The transformer has a gain of x100 in passive mode, but also has an integrated optional pre-amp that raises this to x500 and lowers the output impedance.
To determine the current noise, I measured the transfer function from Current Mod In to Voltage across the Dummy Load (20 Ohm) and converted it to current with Ohm's law to know the current flow, then measured the transfer function Current Mod In -> Trafo Out so I can convert the voltage noise at the trafo output to current noise through the load. The result is ~3x better than the data I had previously taken using only the current monitor outputs.
The resistor R is optional, as the current can just as well flow through the primary inductor in the trafo. It helps keeping the trafo resonance under check, but as a consequence reduces peak gain. Anything over 1kOhm does not change the TF anymore. I'm not sure what the best choice is here, but I will check a few different configurations (passive vs active, different R or output loads for the passive case). In the attached figure the trafo resonance results in very low noise in a narrow band, but unfortunately this is not easily tunable.
The laser diode IV-curve is non-linear, which would make the calibration bias current dependent. Instead, I can use the calibration from current flowing to trafo output from the dummy measurement since the ohmic load gave me an exact measure for the current.
I started cooling down the cryostat this morning. In preparation I had flooded the inner volume with helium yesterday and let it sit overnight while pumping on the outer volume to check if the seals on the inenr viewports are still intact after several cold cycles (these are viton seals, after all). When checking the next morning, the pressure had increased by ~50% (since the volume wasn't pumped), so it looks like the viewport seals are still good. I pumped on the inner volume briefly to bring it down to ~1e-5 torr (starting pressure was 4e-6 torr) and re-flooded with only helium to ~1e-2 torr. Liquid LN2 was added at ~10am. After ten hours the cavity can temperature was passing 180 K, and I expect them to have passed 123 K in the morning, at which time I will turn on the heaters with target temps of 120 K to leave some room for the heating from the average visible laser power.
I machined some holes in the top of the cryo jacket to accomodate the struts. Here are some photos. I've asked Bob if I can epoxy on the struts to the dewar and then bake these parts in the 40m oven to cure, since the dewar will not fit in the Bridge oven. Hopefully these will be baked and ready for pumpdown by the end of the week.
After discussion with Rahul, I've made the following additional changes to the GeNS system:
0.5'' Lens Mount
Hemisphere Mount and clamp
The total height reduction I found was only 0.25'' total, which is quite small. Because I have considered the top of the periscope mount a constraint on the location of the bottom of the sphere base, and because the lens mount does need some height to function properly, I don't think I can squeeze much more from this stone--perhaps the sphere base could be a bit thinner, perhaps we could use a different periscope mirror that requires less vertical room, if we never used the 0.5'' lens mount and only used the hemisphere clamp it would save a bit, and finally we could reduce the height of the schwarzschild though not by much. The cost of this 0.25'' is the need to machine a new hemisphere mount and clamp, holder posts, and base posts.
See it on the DCC:
I added a differential receiver circuit and negative supply voltage to Disha's latest current driver design and gave it a home in a more robust case. It now matches better with the CDS DAC's differential output and can actually turn all the way off while still being powered (since OP27 is not rail-to-rail there was always a sub-threshold creep current through the laser diode). The scaling is 10 mA/V on the modulation input, and the offset has to be supplied by CDS.
I also assembled a second unit so we can modulate both cavities at the same time. I went with a P-channel Mosfet for this one because in the N-channel design the laser diode cathode (which is connected to the case) is "hot" and we were seeing occasional problems with the laser diode case getting grounded in its mount. This would bypass the transistor and sense resistor and just push max current through the laser diode. In the P-channel design the laser diode cathode is at ground, however to match the behavior of the N-circuit I had to subtract the input voltage from the bias voltage, which required additional circuitry. This unit also provides 10 mA/V. In retrospect, I prefer the n-channel, and with proper mounting and cabling the shorting issue is easily avoided.
I configured one of the drivers for use with the red laser diodes (pin code A) and the other one for blue violet (pin code B). The package pins for cathode and diode are swapped for the two, so to change the color the driver has to be opened and the header flipped.
I installed both on the table and aligned them onto the cavities for maximum impact in the noise spectrum. Both diodes have a nominal operating current of 40 mA, so I found the threshold current for both laser diodes (blue: 24.5 mA - red: 34 mA) and set the modulation in CDS to range from just above the threshold to 40 mA. According to a Thorlabs PDA36A, using the manual values for TI gain and sensor responsivity (and correcting for PD reflection obtained from a secondary measurement) the modulations are 8 mWpp for red and 22 mWpp for blue violet. I attached some spectra with and without modulations, fast and slow frequencies. Both lasers evoke similar modulation depth despite the power difference, most likely because less blue violet light reaches the cavity.
I keep giving these deeply unsatisfactory answers in group meetings when asked about the temperature sensitivity of this scheme of using the disk's eigenmode frequency as a temperature probe. I've put together a doc that hopefully will let me answer with a much more satisfactory and marginally more useful "I made an elog about that back in..."
Big takeaway: the sensitivity near 123K is 0.38Hz/K
Gautam and I talked about one way to improve this sensitivity by going to a higher frequency mode and downconverting to DAQ-friendly frequencies with a lock in amplifier. Our sensitivity will scale linearly with temperature, so it is only a matter of how high a frequency we can reliably excite the disk at. I wonder...
I got the fill port blanks back from the GALCIT shop this morning. They hadn't tapped the holes that attach the blank to the cryostat, so I did it in the shop this afternoon; they made two blanks, and I tapped holes in one of them, so if ever we want to use the other blank on a port with a different bolt spacing we can do so. Now, as soon as I epoxy the offsets to the dewar and bake these new parts, we should be able to close up Hi'iaka again.
These blanks should be sized for o-rings with dash number 2-128.
Here's a picture of the blank. I inadvertently dropped the drill chuck on the part when I was swapping it out, so there's a little scratch on the face, but I think it shouldn't be a problem and can be sanded down; it's on the 'atmosphere' side of the o-ring.
When measuring small signals which have low inherent noise, one should consider the source impedance and choose the transducer appropriately:
I have been pondering about the best way to assess the noise of the current drivers, and it won't be as easy as I first thought.
I suggest using the SR554 "transformer" amplifier that we have in the QIL for this type of measurement.
Ach! Mein Leiben!
In order to increase the current noise sensitivity I have also been looking into jfet-based amplifier circuits.
I've been working on this but still I am not quite done yet. However, here's a glimpse at the data I've taken
I did this slightly differently from when I was doing this in the past: Instead of modulating and using the TPD signals on channel 1 and RedPitaya frequency control signal on channel 2 I instead recorded sweeps with the modulation source on channel 1 and alternatingly TPD signal or RedPitaya output on channel 2 to reject coherent noise at the sampling points.
The above plot (also Attachment #1) shows the photothermal response recorded for each path scaled to Hz per Watt of circulating cavity power. It looks like the absorption for the two paths is much closer than in the old cavities. Since we get the frequency modulation from the beat, I inverted the drive signal for one of the cavities so the measured responses would be in phase. Looking at the plot we should not use anything substantially over 1 kHz to fit the photothermal TF (for the individual paths). While this same measurement returned quite nice agreement with the model after fitting for absorption values, this is no longer the case (see attachment #2):
The fit minimizes the error in the complex plane (squared absolute value of the difference) and uesd only frequencies <1 kHz. The fit returns an absorption of ~0.75 ppm per mirror, however there is significant discrepancy throughout, even the slope at low frequencies is a bit off. The model uses only surface absorption and doesn't track the field strength in the layers yet, so I'm working to include that. It does already include bulk heating for modeling thermo-optic noise.
At high frequencies the amplitude modulation drives the PLL error point, which increasingly masks the photothermal effect, so I did the same trick from before, where I drive the amplitude modulation for the two paths out of phase wrt each other. Since the RedPitaya performs I and Q demodulation, I minimized the transfer function from modulation signal to amplitude estimate by adjusting the AOM bias of the two paths (At the locking points the lasers have slightly different output power, and the transmission beamsplitter is not perfectly 50/50). This suppresses the amplitude fluctuations of the beat note on the detector to first order.
To scale the dual modulation photothermal response to Hz/W I added the light powers in the two cavities, effectively treating them as a single cavity with ~double the circulating power.
I performed a series of sweeps of this dual photothermal response and used the IRIS routines to estimate measurement uncertainties (Attachment #4). Looking at the result, we might be able to use the sweep up to 20 kHz for fitting.