We received the TO-66 sockets for LaserComponents PDs (Andon Electronics F425-1009-01-295V-R27-L14 Qty.10). It is made of FRP. It is very nicely made.
The transimpedance amps, differential circuit and the whitening filter for the 2um Extended InGaAs detectors were made and their noise level was evaluated. The examination of noise was done without the diodes. For every analysis, SR785 spectrum analyzer was used and a simulation using zero in python was also done. The SR785 was controlled using the python program to get the data. The input was AC coupled and Hanning window function was used during the task of getting data.
**The noise of SR785 spectrum analyzer is also mentioned, which was measured by deploying a terminator at one channel. The noise labelled as SR785noise mentions the spectrum analyzer noise alone.
**The noise of the components, with SR785 mentioned along with them, indicates the noise observed using the Spectrum analyzer.
Attachment 1: The circuit diagram
The usual transimpedance configuration was made using the OP27 IC. There are two TIA as we will be using two PD in our final circuit. The two TIA are connected to Whitening Filter respectively. The Whitening filter has a gain of 10. Apart from that, the output of the two TIA is connected to a differential circuit and whose output is in turn connected to another independent whitening filter.
Attachment 2: The amplifier noise Part I
The noise of TIA1 was analyzed using the SR785 spectrum analyzer and also by simulating the circuit using zero in python.
Attachment 3: The amplifier noise Part II
The noise of TIA2 was analyzed using the SR785 spectrum analyzer and also by simulating the circuit using zero in python. It was observed to be exactly similar to that observed of TIA1.
Attachment 4: The differential circuit noise levels
The noise level of the differential circuit was measured by shorting both the input terminals and observing the output at the pin6 of IC.
Attachment 5: The Whitening Filter noise level.
The noise of the Whitening filter was measured by grounding the input terminal (pin 3) at taking the measurement at the output. The gain of the filter is 10.
Attachment 6: The TIA and Whitening Filter, connected together, noise level.
The TIA and Whitening filter were connected in series and the noise was observed at the output of the whitening filter.
Attachment 7: The Simulation of Circuit in Zero
The complete circuit was configured using zero. It will help us analyze the noise that we are not expecting. Please open it using Jupyter Notebook.
Two new 27" LED monitors arrived today for the QIL workstation. I've installed them.
Chris and I set up the LIGO RTS environment on the QIL cymac, using code copied from the cryolab cymac. Specifically, the script /opt/rtcds/rtcds-user-env.sh was edited to match the cryolab version and added to the /home/controls/.bashrc file. We also downloaded a copy of the CDS user apps SVN to /opt/rtcds/userapps/release. Tools like dataviewer and ndscope now work on the cymac (fb4: 10.0.1.156).
Our plan is to set up a network drive on a third machine to host the /opt/rtcds directory currently located on the cymac. This way, the directory can be shared with any number of workstations as well as the cymac itself, and the NFS mounts will be unaffected by frequent reboots of the cymac.
I also unsuccessfully attempted to diagnose the race condition that occurs between all the RTS services on boot. Right now the services all start correctly only about 1/3 of the time. I tried setting the order that the services are started and adding a 15-second delay after each service start. However, this did not make things become deterministic.
I finally succeeded getting Debian installed on the new workstation with a working network card. I installed Debian 10.0, which was just released last week and will be supported for five years. After installing the OS, I
The user name is controls as usual and it has the standard W. Bridge password. The lscsoft repo for Buster (Debian 10.0) is still missing many packages, so I installed the cds packages for Stretch (Debian 9.9) instead. They seem to be compatible with 10.0 as far as I can tell. The machine is at the same IP as the one it replaced, 10.0.1.33.
To be able to interface with the cymac, there is still an RTS environment (environment variables and an NFS mount) that needs to be set up. I'm looking into what this involves.
The amplifier sets for the thorlabs 2um PDs were delivered to the lab.
- PD1 and Amp1, PD2 and Amp2 are the proper combination. If a high quality power supply is used, it is not an issue.
- The cables for the external bench supply or the 9V batteries have been made.
I moved a new Dell Precision 3430 onto the lab bench near the door. It's replacing the older unused machine that was in that spot (IP=10.0.1.33). The intention is for the new machine to provide MEDM (sitemap) access to the QIL cymac and to run the full CDS utils suite (awg, NDS, etc.).
There are two operating systems that have CDS package support: Debian 9 and Scientific Linux 7. Unfortunately neither of these operating systems is officially supported for this model computer according to Dell.
I attemped to install base Debian 9.9, which can be done successfully and booted. However, the installer is unable to locate the drivers for the network card, leaving the machine without network capability. This is likely because the network card (Intel i219-LM) is brand new and support hasn't been incorporated into the distributions yet. I next tried installing the latest weekly snapshot (testing build) of Debian with additional commercial firmware included. This time the network card was recognized, and the installation appeared to complete entirely successfully. However, the system then failed to boot the new OS. I tried first just reinstalling the GRUB (boot) loader, then entirely reinstalling the OS, both with the same result. Something in the test build is preventing the hard disk from being recognized as a bootable device.
I have one more idea to try next week: Again install base Debian 9.9 (without network capability), then attempt to manually install the i219-LM drivers provided by Intel.
The transimpedance amps for the 2um (unamped) InGaAs detectors were made and evaluated.
The usual transimpedance configuration. The detector (Thorlabs DET-10D) is an extended InGaAs which is sensitive up to 2.2um. I believe the detector is biased to 1.8V although it is not obvious and the 12V battery is used. The feedback resistor was chosen to be 5kOhm so that the circuit can handle up to ~2mA (~1.7mW). The feedback capacitance pf 100pF for compensation was chosen kind of arbitrary to keep the circuit stable and also the RC cut off to be more than 100kHz. The output resistance is 100Ohm. The selection of the opamp is described below.
The amplifier noise (the first unit called Amp #2) was evaluated with the opamp swapped with OP27 (BJT), LT1128 (BJT), OPA604 (FET), and LT1792 (FET), chosen from the 40m stock. For the given environment, the FET amps exhibited better performance while the BJT amps suffered from more line noise coupling and the larger 1/f noise. Particularly, LT1792 reached at the level of ~2pA/rtHz, with lower line noises. This looks the best among them. Note that the 5kOhm feedback resistor gives 1.8pA/rtHz current noise.
Then the second unit (called Amp #1) was made. This unit has more high-frequency noise. It turned out that the noise was coming from the power supply which was the +/-12V from the rear panel of an SR560 which was connected to the AC power. The noise dramatically went away with the battery mode operation of SR560 (by disconnecting the AC power). The floor level was 2.2pA/rtHz and it was slightly higher than the quadratic sum of Johnson noise of 5kOhm and the voltage noise of the amp (4nV/rtHz). This noise level was just sufficient for the purpose of the 2um detector.
Attachment 4: The detector noise levels
Now the detector #1 and #2 were paired with the amp #1 and #2, respectively. In fact the detector 1/f noise was way too large compared to the amplifier noise. There is no hope to detect shot noise level of the mA photocurrent.
Attachment 5: The detector response
The detector response of each PD+AMP pair was measured using Jenne's laser and Thorlabs PD10A (~150MHz). There was some systematic error of the absolute level calibration, therefore the transfer functions were adjusted so that they have 5kOhm transimpedance at ~1kHz. The phase delay is ~30deg at 100kHz. This partially comes from the combination of 100pF//5kOhm and the ~4MHz bandwidth gain of the opamp. If we want faster response we need to modify these.
I've removed the Moku and its iPad from the lab to see what its up to noise-wise.
With the help from Chub, we opened the vacuum chamber. The procedures are not complicated. Here are some notes, both about the opening procedures and some other things I learned from Chub.
1) Vent the chamber by opening the venting valve slightly. The venting process needs to be slow - we cover it with a wipe, as shown in the photo 1. We stop opening the valve when we hear the air wheezing.
2) The thing with a screen is a gauge, which gives the pressure inside, but it is not quite working - always showing atmosphere pressure. Chub left me a document on it; I should be able to get it working.
3) We removed the screws of the top chamber. Correct hex keys is necessary - I was going to use one that loosely fits but Chub said it is not good.
4) We lifted the cover of the chamber with the crane and put it besides the chamber. We should release the break of the crane first and then break it again when we land the weight.
5) The pump connection is not very good - leaking oil both into the chamber and onto the floor.
6) The surface under the chamber (shown in photo 2) cover can only be cleaned by dry wipe or alcohol.
Next I am going to set up the optics, electronics and whatever inside before we close it and pump it down.
There was a correction in the script I used to estimate the frequency noise from the inphase and quadrature component. Attachment #1 shows the frequency noise estimated after the correction.
I have also attached the Matlab script ( I am not able to attach the zip file with data files). I remember, while saving the data, we gave the time duration as 70 s. But while processing the data only I realised that the time domain data is captured only upto 2 s. Even in this case, I would expect the frequency axis to start from 0.5 Hz, but I don't see that in the FM noise plot. Kinldy let me know whther I am doing anything wrong in data proocessing.
Attachment # 1 show the schematic of the lock in amplifier configuration used in Moku lab. We saved the in phase and quadrature components.
In phase =
where corresponds to 2 -micron , is the delay time in the delay fiber and .
is the phase noise of the laser.
From the inphase and quadrature component value is extracted. So, we are actually extrating the combined effect of phase noise of laser as well the phase noise due to fiber length fluctuations due to environmental fluctuations. ASD of this is converted to frequency noise in Hz/rt Hz. Attachment # 2 shows the frequency noise estimated from two sets of measurements. This curve exhibit a 1/f characteristics from about 240 Hz upto 30 kHz
We tried the Lock in amplifier in Moku lab for the frequency noise measurement. In this case, the output of the photo detector , after dc block and one stage of amplification, is fed into input 1 of Moku. It gives out the inphase and quadrature component. We have saved the data. I will process the data offline and update later.
c=3e8;%velocity of light
n=1.5;%refractive index of fiber
len=15;%length of delay fiber
omeg=2*pi*(c/lam);%optical frequency corresponds to 2-micron
tau=(len*n)/c;%time delay due to delay fier
We installed a new rack in the QIL to help store vacuum equipment and other parts. See attached photos.
Rack has casters at the bottom. They're locked down but if we decide we don't like them, we can sawp them out for feet.
[Aidan, Chris, Koji]
We went down to the lab to check the situation of the setups for 2um laser measurement and stabilization and the new cryostat.
[2um laser frequency noise measurement]
RXA: we have a few options for measuring large frequency fluctuations:
I had a look at a few of these things. I've found that it doesn't seem to be caused by heating of the beam splitter, while turning 532 nm on an off I see no change in the balancing of the beam splitter. It appears that on remeasuring the data on Tuesday I found that there had been some glitching of the digitized data readout.
Suspicions for now is that there is not as much pumping light making it to the chip as a thought and that bandwidth resolution of the time scan scan was a little too wide. I have shortened the scan, increased the noise bandwidth of the demodulation and will widen the width of the low pass filter on the noise-time scan to increase the time resolution.
I'm also implementing proper subtraction of the signal that uses both the I and Q quadratures so that all the information about the relative phase and amplitude of the digitized signals is properly mixed down by the FPGA inside the Zurich.
Notebook with demo of the subtraction is attached in a zip below.
There are a few other possibilities for the excess noise when injecting pump, this is a checklist for me to run through tomorrow:
Attachment #1 shows the oscilloscope traces at different gain values when the actuation slope is 100 kHz/V. It also shows the base line when there is no input to the oscilloscope. Even in the absence of any signal to the oscilloscope, there is an offset with mean value, RMS value and peak to peak value respectively of 35 mV, 42 mV and 200 mV.
Table below summarises the mean value, RMS value and peak to peak value for different combinations of actuation slope and gain.
The RMS value and the peak to peak value is increasing with increase in gain and the mean value is not showing any trend. I was pressing the Run/stop button before saving the data. I press the same to make the trace alive after saving the data as well. But the mean value read out from the oscilloscope shows different /random values in either case. If I don’t save the data, but only increases the gain, the mean value readout from oscilloscope shows almost the same.
I saw the beat note on the oscilloscope and I was trying to find the change in frequency. The frequency readout from oscilloscope was showing very large fluctuation (60-100 MHz). I feel its not a reliable measurement, but I don’t know whether we have an option to measure the frequency jitter in this oscilloscope (TDS 3032).
In order to see squeezing I want to scan the phase of the homodyne relative to the squeezed light and see the variations in noise power as a function of time.
From my initial scans it seems like there is excess noise of a factor of 1.5 above shot noise (see below). This is only present with 532 nm pump injected. It could be anit-squeezing washing out with some phase noise bluring across the sample time of 0.1 seconds or maybe RIN from residual 532 nm present at one of the photo detectors.
After injecting light into the WOPO for some initial tests it was apparent that there was about 1.4 mW of waste 532 nm light exiting the fiber launch on the detector A path. About 16 µW gets through to the detector from the dichroic mirror reflection. A quick measurement of 532 nm power on detector B show that there was about 49 µW coming out of that fiber end with 0.2 µW making to the photodiode. The 50:50 splitting doesn't apply for non-design spec wavelengths of fiber splitter. The InGaAs detectors have a pretty poor responsivity at this wavelength but the pumping light on detector A was enough to create a DC voltage of 1.36 mV. After dividing through by detector gain of 2kΩ this is equivalent to about 0.68 µA of DC power on the detector A. This suggests a responsivity of order 0.014 A/W. There isn't enough light on detector B to create any DC voltage.
The imbalance here, with the 532 nm light, means that there is a mechanism for coupling in 532 nm RIN into the measured output signal. Not sure if the RIN would be all that high at the 600 kHz (that I'm planning to mix down from) but it would be a good idea to remove it anyway. I'll look for a another HR1064/HT532 dicroic mirror to attenuate this 532 nm component a little more.
For the detection of squeezed light the homodyne detector is now configured for digital subtraction in post processing. The measurement scheme is now to take the output of the two TIA amplifiers (see QIL:2324 and QIL:2327), digitize them directly at 210 MSa/s (5 nV/rtHz input ref noise) with the Zurich box and demodulate both detector streams using its internal FPGA at about 1 MHz. The Zurich box allows for direct sampling of the signal out of the FPGA which can then be downloaded either through the web interface or the python API. T
I added one more amplifier stage (ZFL-500 LN) after the detector. Since noise figure of ZFL-500LN (2.9 dB) is lower than that of ZHL-3A (5 dB), ZFL-500LN is the first amplifier stage after the photo detector and it is followed by ZHL-3A.
Attachment # 1 shows the beat note spectrum measured from the spectrum analyser. There was a 30 dB attenuator in the path during the measurement. So, the output RF power from the MZI (with two stages of amplification) is now about 3 dBm and the SNR of 37 dB is preserved even after two stages of amplification.
So, now the RF power to the RF port of the mixer is 3 dBm. I have attached the video of signal from the PLL loop at different gain (G=1, G=2,G=5) values in SR 560. The time domain trace seems to very noise. I suspect this is because of the inherent large noise in 2-micron laser diode with a broad line width of 2 MHz.
I then attempted to do the closed loop transfer function in the present PLL configuration by injecting the signal from SR 785. Attachment 2 shows the closed and open loop transfer functions at different gain values in SR 560 when the actuation slope is 10 kHz/V. Attachment 3 shows the closed and open loop transfer functions at different values of actuation slope when the gain is 5. The magnitude and phase traces are not very smooth as we observed when we did the similar measurement with an arbitrary function generator (AFG) as the RF source. In this case, when MZI output is fed in as the RF source, the RF power is fluctuating.
I also tried to do the frequency noise measurement. Attchement # 4 is the FM noise at different gain values when the actuation slope is 10 kHz/V. Attachement 5 is the FM noise at different actuation slope values when the gain is 5. This time, depending on the gain value and the actuation slope value, a short frequency span was considered in SR 785 for the frequency noise measurement. The frequency span is considered based on the value of unity gain frequencies that are approximated from the open loop transfer functions measured from attachment # 2 and #3
FC/UPC to FC/APC patch cord has arrived. I repeated the DC characterisation of the photodetector with this patchcord. The couping is improving by about 2 dB (Table below shws the result)
In this case, the input power was measured after the isolator.The power to voltage conversion is linear. The voltage levels are very low because this is a non-amplified detector. Also, the detector is coupled to a FC/UPC patch cord and we have all FC/APC fiber connectors. So, there could be some coupling loss from FC/APC to FC/UPC. FC/APC to FC/UPC conversion patch cord is ordered. We can check the performance again after it is arrived.
For the detection of squeezed light the homodyne detector is now configured for digital subtraction in post processing. The measurement scheme is now to take the output of the two TIA amplifiers (see QIL:2324 and QIL:2327), digitize them directly at 210 MSa/s (5 nV/rtHz input ref noise) with the Zurich box and demodulate both detector streams using its internal FPGA at about 1 MHz. The Zurich box allows for direct sampling of the signal out of the FPGA which can then be downloaded either through the web interface or the python API. The signal chain is illustrated below:
The basic approach is to mix down the shot noise limited light from some higher frequency (somewhere in the range 100kHz - 8 MHz) and then compute the ideal subtraction factor from a short (10 sec) segment of data. The method for optimization is to compute the time domain subtracted signal for a given balancing factor (SF) and compute the goodness of subtraction from the RMS of the signal. An fmin search is done to find the ideal subtraction factor (SF) for shot noise limited light.
It wasn't immediately clear to me what demodulation frequency to choose, the low pass filter and the digitization sampling rate. So I set up a python notebook and did a few sweeps of these parameters to find the best combination of parameters. This book is attached below as 20190514notebook_ZurichDemodeCompairTests.ipynb in a zip. I've pickled data for replotting if needed later.
At present the detectors are illuminated with 4.5 mA worth of light (as measured from DC voltages / TI gain). This should give about 25 nV/rtHz at the output of the photodetector, as measured by the Zurich box. Fixing the demodulation frequency at 500 kHz and the sampling rate at 30 kHz I found empirically that the when the LP filter (4th order) was kept at 10 kHz and below the minimum subtracted signal converged to about 30 nV/rtHz (about what I expected). With the demodulation frequency set much higher than this, the minimum subtracted signal no longer converged to the predicted SN level. Maybe there is some aliasing thing going on here. The outcome of this experiment is that clearly the demodulation LP filter should be set to at least 1/3 of the sampling rate for the time domain rms minimization to work.
I did a similar sweep with the sampling rate while keeping the demodulation frequency fixed at 500 kHz and the demodulation low pass fixed at 10 kHz. The conclusion was basically the same: as long as the demodulator low pass was kept within 1/3 of the sampling frequency then the method of computing the ideal subtraction factor using the total time domain rms as a cost function returned the minimum possible differential noise.
The demodulation frequency choice is a tricker one. Initially I selected 1 MHz but was getting excess noise above what I expected for shot noise. I then looked at a single channel on the Zurich's scope in FFT mode. Data is plotted below
Basically the plot shows that there is a strong peak at about 900 kHz. This is due to the relaxation oscillation of the laser. When the laser's noise eater is turned on this peak is damped with some tradeoff of slightly higher noise at lower frequencies. So when choosing a demodulation frequency it is best to select something well below 1 MHz. I'm not sure if it is best to turn the noise eater off if the demodulation frequency is set well clear of the 900 kHz peak. It seems like there is a noise penalty for the noise eater loop at all other frequencies.
With the noise eater on I then did a sweep of the demodulation frequency while keeping the low pass filter at 10 kHz and the sampling rate at 30 kSa/s. I've plotted the median ASD value in the band between 100 Hz and 1 kHz as an indication of the minimum SN level after digital subtraction verses the demodulation frequency. Plot below. There is a hump at about 1 MHz that should be avoided, and spikes at 87 kHz and just below 300 kHz but anything else in the range of 100 kHz to 700 kHz should be fine.
So for now, based on the above sweeps of parameters, I have selected demodulation frequency of 600 kHz that is low passed at 10 kHz with a 4th order filter and sampled at 30 kSa/s. As an example of optimized subtraction I have plotted the two homodyne channels along with the subtracted differential signal (optimized by minimizing subtracted time domain rms) and the dark noise (using the same subtraction value).
Here the clearance from the dark noise floor doesn't seem so great. The input referred noise of the Zuirch box is 5 nV/rtHz per channel. Also the equivalent output noise from the PDs at this point is 2.5 nV/rtHz. As these are uncorrelated noise processes this would place the noise floor at about sqrt(5^2*2+2.5^2*2) = 7.9 nv/rtHz, pretty close to what we are actually seeing.
One option here is to pre-amplify the PDs before going into the zurich box. A standard mini-circuits amplifier like ZFL-500LN+ has an input referred noise of 1.6 nV/rtHz which would bring the dark noise floor down to something closer to 4.2 nV/rtHz. I'll keep going without any pre-pre-amplification for now and see what I can do with 532 nm pumping. There should be enough clearance to see at least something if it is there.
Attachment # 1 shows the schematic of the experimental setup for the frequency noise measurement of 2-micron laser source using PLL. Instead of Brimrose driver, another Marconi is used to provide the RF power to the AOM. We know from the characterisation of AOM that we need to give RF power of 28 dBm at 78.8 MHz to achieve maximum diffraction efficiency to the first order port of AOM. The maximum output power from Marconi is 13 dBm. Hence, we used another RF amplifier (ZHL-3-A+) to amplify the RF power from Marconi. We initially tested the RF output from RF amplifier on spectrum analyser (RF power fed into spectrum analyser with proper attenuation in the path) and adjusted the RF frequency and power in Marconi such that we get 28 dBm output power from the RF amplifier at 78.8 MHz. The two marconis are set such that they are share the same time standard.
Now, the output power from the photodetector in MZI (Laser diode operated at input current of 90 mA) is fed into the RF input port of the mixer, instead of AFG. The 600 Ohm output of SR 560 is observed on oscilloscope and SR 785 simultaneously.
We observed dc line in the oscilloscope when the gain in SR 560 is set to 13 dB (20 times). Gain value below this ( 10 dB) or above this (17 dB) was showing oscillations in the oscilloscope with frequency varying with the actuation slope in Marconi. Attachment #2 shows the frequency noise measurement from SR 785 (V/rt Hz value from SR 785 multiplied with the actuation slope).
It is observed that, the time domain trace on the oscilloscope was not very stable. In between, we could see the oscillation was popping up. Also, the trace on SR 785 was swinging a lot (attached the video). As we observed in the case of AFG, the FM noise measured increses with the value of actuation slope in Marconi.
In this case, the RF power that is fed into the RF port of the mixer is very small (~ -40 dBm) compared to our previous experiment with AFG. So, I would like to repeat the sample experiment (locking AFG to Marconi) with AFG set to RF power comparable with that from the actual experiment.I should then find out the unity gain frequency of that particular combination of gain and actuation slope,which would help us to find the frequency range upto which the PLL measurment is valid.
I also need to measure the actual delay line length. I will also clean up the fiber connectors again and we can also use the FC/UPC to FC/APC patch cord for the detector after it is arrived. I still must understand the results better.Since we are using Non-PM fibers, the polarisation fluctuation might have also affected the measurement .Kindly give me further suggestions.
After the discussion with Prof.Rana, we realised the mistake in our analysis. It was also suggested to make the measurement at the output of SR560. Attachment #1 shows the schematic of the setup for the measurement of closed loop transfer function. The RF power from AFG is 0 dBm and that from Marconi is 7 dBm.
The open loop transfer function is calculated from closed loop transfer function using the expression , where is the gain value set in SR560.
Attachment #2 : Closed loop and open loop transfer functions at different values of gain in SR 560 when the actuation slope in Marconi is 10 kHz/V. The unity gain frequencies are respectively 1kHz, 3 kHz and 5 kHz when the gain values are 3 dB, 7 dB and 10 dB.
Attachment #3 : Closed loop and open loop transfer function at different values of actuation slope in Marconi when the gain in SR 560 is 10 dB.The unity gain frequencies are respectively 5kHz, 16 kHz and 43 kHz when the actuation slope values are 10 kHz/V, 30 kHz/V and 100 kHz/V. It can be seen that the characteristics are significantly different for a larger value for the product of gain and actuation slope (G=10, S=100 kHz/V).
The probing signal from SR 785 was then disconnected. In this case, the oscilloscope measure the error signal in time domain and the measurement from SR 785 essentially gives the frequency noise of AFG. The measurement from SR 785 has the unit of V/rt Hz, which is then multiplied with actuation slope to get the frequency noise in Hz/rt Hz. During our measurements, the oscilloscope signal was showing a low level ( mV) DC line , confirming that the PLL is locked.
Attachment # 4 : Frequency noise of AFG at different gain value in SR 560 when the actuation slope in Marconi is 30 kHz/V. In the full span mode, the line width (resolution) is 128 Hz where as the line width is 2 Hz in short span mode. The peak at 60 Hz visible in short span plot corresponds to AC mains.
Attachment # 5 : Frequency noise of AFG at different actuation slope in Marconi when the gain in SR 560 is 10 dB. I was thinking, we should measure the same frequency noise irrespective of the setting in the PLL. It can be seen from attachment # 5 that the frequency noise measurement is affected by the value of actuation slope in Marconi. It was earlier observed that the phase noise of Marconi increases with increase in the actuation slope and , from these measurment shown in attachment #5, we are seeing increase in frequency noise value at larger values of actuation slope in Marconi.
We also tried to estimate the open loop transfer function from the closed loop transfer function using the equation
Attachment # 7 : Comparison of Open loop transfer function that is measured from SR 785 and that is estimated from the closed loop transfer function using the above expression. These two values are significantly different. Kindly correct me.
The new photo detector has arrived (https://www.newport.com/p/818-BB-51F) . We did the DC and AC characterization of the same.
We then assembled the Mach-Zehnder interferometer (MZI) for the 2-micron laser source. Attachment #1 shows the schematic of the same. We measured a power level of 0.37 mW when the AOM was not turned on (RF power to AOM off). When AOM is turned ON, the power level measured at the output of MZI is 0.5 mW. Power meter was then replaced with the new photodetector and the beat note was observed on spectrum analyser.
The Zurich box can also be accessed via a python API. Its a little bit opaque in some points on how this works as their documentation is a little thin on actual examples. I've included a jupyter notebook and equivalent .py file for future reference. This code is tested and has worked with the Zurich box data server at IP address 10.0.1.23. It shows exactly how settings can be modified and how data can be read back using their poll command.
Notebook includes all instructions for setting the Zurich HF2LI box up from scratch.
I think you have made some coding error in your attachment 7 plot. Just pick a point in your plot and calculate by hand if your estimate is correct. Otherwise, we need to see your code to pinpoint the error. You can attach your code in a .zip file here.
We then attempted to measure the band width. To do that, the source output from SR785 was fed into input B of SR560. Part of the source output was fed into channel 1 of SR 785, through T connector, for the transfer function measurement. We also used a T connector at the input A port of SR 560 and one of the ports of this T connector was fed into channel B of SR785. I still must interpret most of the results that we got.
Attachment # 2: Closed loop transfer function (a) Magnitude (b) Phase, at different gain values in SR 560 when the Marconi actuation slope is 10 kHz/V.
Attachment # 3: Closed loop transfer function at different actuation slope value in Marconi when the gain is 7 dB. The increase in noise at lower frequency in phase plot (b) may indicate that the phase/frequency noise of the Marconi increases if the actuation slope value is increased.
Attachment # 4: Closed loop transfer function at different actuation slope value set in Marconi when the gain is 10 dB. The transfer function measured for the case of gain = 10 dB and actuation slope = 100 kHz/V (that is the product of gain and actuation slope is larger) shows significantly different characteristics.
Using the SSUserFn option in SR785, we tried to get the open loop transfer function as well from SR 785. The functional form was
Attachment # 5: Open loop transfer function at different gain values set in SR 560 when the Marconi actuation slope is 10 kHz/V. The unity gain band width are 0.9 kHz, 2.8 kHz and 5.8 kHz respectively when the gain values are 3 dB, 7 dB and 10 dB
Attachment # 6 : Closed loop transfer function at different actuation slope value set in Marconi when the gain is 7 dB. The unity gain band width are 3 kHz, 9 kHz and 30 kHz respectively when the actuation slope values are 10 kHz/V, 30 kHz/V, and 100 kHz/V.
Today Chub brought over the remaining parts for the cymac and we installed them. Specifically:
Initially I found that no timing signal was reaching the lab. The function generator for the cryolab cymac was also not receiving a signal. I traced the problem back to the RF distribution box in the cryolab, whose power cable appears to have come unplugged. I reconnected it and both labs are now receiving the timing signal.
After installation, I repeated the manual loopback test in #2337 for all ADC and DAC channels. All of the channels still work, and the ADC gain was found to identical to before (0.38 ct/ct). For future reference, the second attachment shows the state of the system overview screens when the cymac is in normal operation. Chris has confirmed that not every indicator light on these screens will turn green.
The last piece of hardware work is to replace the bench power supply currently powering the AA and AI chassis. Chub and I plan to replace it with two rackmount Sorensenn supplies, one of which is already installed in the rack. Chub is going to procure a second.
fixed (?) HVAC problems (~1700 Monday) by better attaching a pneumatic hose that actuates the hot water flow for the south blowers
update on Tuesday: problem not fixed. Bumping the actuator there makes the thing work for a few minutes, but then it freezed again.
I created a basic MEDM sitemap modeled after the one the cryolab is running. It is accessed by connecting to fb4 (10.0.1.156) and executing the usual command $ sitemap. Eventually the fb4:/opt/rtcds/caltech/c4/medm directory should be shared with all QIL workstations via NFS, so that directly connecting to fb4 is not necessary. The master screen provides full control of the signal routing and conditioning supported by the user model. The 32 input signals from ADC0 are individually conditioned via standard LIGO filter bank modules and routed through an output coupling matrix, which constructs the 16 output signals sent to DAC0.
Modesto came back this morning. We were still getting 1 hot blower and 1 cold blower.
As it turned out, although hot water was reaching the south heating coils input, it was not getting into the actual heating duct (as we could tell from touching those coils).
Modesto tapped the actuation valve with a hammer and it seemed to loosen it up. We will record temperature over the weekend.
Also we noted that the damper valve near the south-east vent was adjustable, but had no effect on the output air velocity so we assume its busted inside - Modesto will crack it open to investigate.
We also reduced the flow of hot water to the north blowers since they always seemed to be hotter. This may balance the actuators somewhat.
Modesto also replaced the thermostat on the west wall, but no real effect. I have adjusted the setpoint from 74 to 71F around 1800 today.
Following are the results from RF driver and AOM characterisation.
Attachment #1 shows the results from characterisation of Brimrose RF driver . The RF power and frequency are measured on Agilent spectrum analyser. A 30 dB attenuator was also used in the path from RF driver to spectrum analyser. This attenuation value is taken care in RF power output calculation. The RF driver has two BNC connectors labelled as “Modulation” and “Frequency” , located on the front panel. Varying the modulation input (in the range 0 V to 1 V) changes the RF output power from the RF driver as shown in attachment #1 (a). The maximum RF output power is about 0.6 W and the input RF power to the AOM is limited to this value as exceeding the same might cause damage to the AOM. Varying the frequency input (in the range 0 V to 10 V) changed the RF frequency from the RF driver as shown in attachment #1 (b). The AOM centre frequency is at 80 MHz with a frequency shift range of 8 MHz.
Attachment #2 and #3 shows the output power from the zeroth order and first order port of the AOM when the frequency input voltage to the RF driver (thus the RF frequency from the driver) is varied. The output power from the first order port is maximum (output power from zeroth order is minimum) when the frequency is about 78.8 MHz. As expected, the power in the zeroth order port is completely transferred to the first order port. This happens when the frequency input voltage to the RF driver is about 8.8 V.
Attachment #4 and #5 shows the output power from the zeroth order port of the AOM when the Modulation input voltage to the RF driver (thus the RF power from the driver) is varied. The output power from the first order port is maximum (output power from zeroth order is minimum) when the RF power to the AOM is maximum. This happens when the modulation input voltage to the RF driver is 1 V.
Attachment #5 shows the diffraction efficiency to the first order port (we use output power from first order port for the heterodyne measurement) as a function of frequency and RF power. The diffraction efficiency is calculated from the ratio of Power in first order port to the input power to the AOM.The power at the input end of AOM is 1.29 mW. So the percentage value calculated includes the insertion loss ( as per data sheet : 3-4 dB for the first order port ) as well . So the conclusion is , inorder to get maximum diffraction efficiency to the first order port of AOM, we should supply RF power of about 0.6 W at 78.8 MHz . If we are using the Brimrose driver, this can be set by giving modulation input voltage of 1 V and frequency input voltage of 8.8 V.
After a bit more debugging, Chris and I determined the RTS software was fully functional. At this point I moved all the cymac hardware from underneath the ws2 desk to the neighboring server rack. I permanently mounted the linux machine, fb4, and the anti-alias and anti-image chassis (pictured). Installing fb4 required removing an existing machine, fb1, which Chris and Andrew confirmed is not in current use. For now fb1 is sitting against the wall near the rack, as we may be able to repurpose it. The rest of the hardware is connected temporarily for testing while we await a few remaining cables, etc. (more on this below).
I performed a simple loopback test on the cymac input/output channels. I set a large DC offset (10k counts) in one DAC channel at a time, connected this signal to an input ADC channel, and measured the input channel response. All 16 DAC channels and all 32 ADC channels were confirmed to drive/sense the signal, and in every case the ADC gain was found to be identical: 0.38 counts/count.
There are still a few items to wrap up the installation:
This afternoon I set up a user model on the QIL cymac (fb4), which appears to be running. It required the following steps.
First I created a simple SimuLink model of the signal flow from the one ADC card to the one DAC card (pictured below). The 32 input channels from the ADC are each routed through a standard LIGO filter module (10 IIR filter slots, ramped gain, and test/excitation points). From there the 32 conditioned signals are routed into an output matrix constructing the 16 output signals to the DAC. I saved this model to /opt/rtcds/userapps/local/c4tst.mdl.
Next I compiled the model and installed the build files to the RTS target directories:
$ cd /opt/rtcds/rtscore/release
$ make CC=gcc-4.4 c4tst
$ make CC=gcc-4.4 install-c4tst
$ make CC=gcc-4.4 c4tst
$ make CC=gcc-4.4 install-c4tst
Finally I started the new model services and enabled them to auto-start on boot.
$ sudo systemctl start firstname.lastname@example.org
$ sudo systemctl enable email@example.com
The cymac I/O has not yet been tested.
the temperature has stabilized, although the fact that there is a sign error in one of the HVAC actuators means that there is a big delta T in the lab. I will contact facilities again.
the change on April 24 is me adjusting the setpoint on the south wall from 70 to 73F.
We need to get the temperature data from the sensors that Aidan setup. I have got it by downloading a sketchy HOBO app onto my phone. In order for this to work you have to go stand next to the sensors and download via bluetooth. There is no "pairing" required - the app seems to recognize the sensors nearly immediately.
and please, Aidan and everyone else, please do not use double-sticky tape or glue or bubble gum to attach sensors in a clean optical setup. We're going to have to make a mess to remove these.
I've just downloaded more data (attached). The lab seemed sort of cold and the south HEPA output was blowing colder air than the north HEPA output.
I've changed the temperature from 70F to 73F at 7:45 PM today. Lets see how it goes.
the python script in the attachment will now scrub the data file for bad lines and make this kind of plot. IT works on .csv files, but none of the other HOBO formats.
Looks good! A few comments:
We are going to start the heterodyne configuration for the frequency noise measurement of 2 micron laser source. The schematic of the same is shown in attachment #1. The initial plan was to separate the photodetector output to in phase , quadrature component and then extract the frequency noise information from the same. The new plan suggested is to use a phase locked loop for the demodulation part. We can use IFR Marconi 2023A as a VCO and SR560 as the amplifier. The RF generator for the AOM and the VCO need to be locked through Rubidium frequency standard (FS725). One of the issues is that the band width of the photodetector that we have is 14 MHz and the AOM is at 80 MHz. The response of photodetector at 80 MHz is about 20 % of that at DC.I have modified the noise budget after discussing with Anchal. Attachment #2 shows the noise budget. The Marconi data is taken from Anchal. The data plotted in attachment #2 corresponds to Marconi #539 at 48 MHz and actuation slope of 500 Hz. We may have to find the actual numbers based on our settings for the experiment. From the data sheet, the input noise of SR 560 is 4nV/rtHz. The frequency mixer (Minicircuit ZAD-1-1+) has a conversion loss of 4.83 dB and the thermal noise of it is not given in the data sheet and thus it is not included in the noise budget. The length of the fiber considered for MZI is 10 m.
The detectors have been verified to have a low intercept current, that will give us good clearance of our shot noise to dark noise (at least as measured in the <100 kHz band). The question is if we can make a ~ 1 Mhz measurement of squeezing without extra noise in that readout chain dominating over our expected 1 dB squeezing.
The plan is to use the Zurich box (model HF2LI) to mix down quantum enhancement from 1 MHz in our homodyne detector. This will be well above most of the classical noise of the laser and other acoustic pickup from the environment.
The Zurich box has a input referred noise of 5 nV/rtHz above 10 kHz and operating at at the higher end of its sampling rate. It has a couple of nice features that would make it well suited to the task. We can use the lock in amplifier instrument to digitally mix down signal from 1 MHz and output one or both of the i/q quadratures to its digital output ports. From this instrument we can also set the bandwidth of the
Output noise of Zurich is 25 nV/rtHz, so I'll need some gain factor to boost signal if readout is done from the external ports. Relative gain of the two paths can be changed manually by typing values into boxes, but might be tought to do a direct ballenced subtraction within the box live if the real time drift is large.
Laser diode modulation port on Diabolo has a signal bandwidth of 5 kHz, so can't really be used to generate a reference signal.
As I couldn't find this on the 40m elog/wiki I'm putting notes here on how to configure a fresh webserver + python server for the Zurich box (model HF2LI) that runs an autobooting service job.
The Zurich box (model HF2LI) has no front panel interface. All controls are done from a USB interface to a host computer (running windows or Ubuntu/Debian). This computer then hosts a web-server that runs an interface in a browser (through http) or responds to requests from python/matlab/labview/C API over the network.
Set up on a Linux box is fast and easy from a fresh install. A thin low powered computer is ideal. Start with a fresh install of Debian, use the latest stable release. Then download the latest stable release for the HF2LI, HF2IS, HF2PLL instruments from the Zurich downloads page. You’ll probably want the 64bit linux. You can untar this file with
> tar xzvf LabOneLinux<arch>-<release>-<revision>.tar.gz
tar xzvf LabOneLinux<arch>-<release>-<revision>.tar.gz
(Insert your filename details above)
Then cd into the directory it created and run
> sudo bash install.sh
It will ask a bunch of questions, just hit enter and y all the way through. The install should immediately boot the HF2 data server at the end. You can check the data server is running with
> ziService status
Now plug in your Zurich box using the USB cable. Note: there are ethernet ports on the box, but these are NOT for network ethernet. If the box is powered up the data server should find the box.
In another terminal you’ll want to to start a Webserver so you can view the box status, settings and live data. Go to another terminal and run
Your Zurich device should now be exposed on port 8006 of that machine. You are read to go.
Now on that computer you can got to http://localhost:8006, alternatively on any other computer on the network you can go to the host machine’s IP address and see your Zurich interface. I.e. if the computer IP is 192.168.1.121 then go to http://192.168.1.128:8006.
If you wanted to access the Zurich interface remotely (outside network) you can do some SSH forwarding if you have a gateway machine to outside the lab. The standard command for this is
> ssh -nNT -L <clientport>:localhost:<hostport> <controls>@<Host-IP-Address>
where controls is the username, Host-IP-Address is the IP address of the machine to be forwarded from, clientport is the port on your machine (the one you are ssh'ing from) and hostport is the port on the remote machine (for Zurich this is 8006). Then when you go to http://localhost:<clientport> and you'll see Zurich interface.
Since the release 2.18 (Nov 2018) the python access tools are now just in Pypi. You can install them with pip:
> pip install --upgrade zhinst
This should now allow you to use python API to access your Zurich box.
You’ll want to set up a service on your Debian box with systemd. Make a unit
> cd /etc/systemd/system
> sudo vim ziServer.service
You must use sudo to be able to save the file here.
Paste the following in, this assumes that your username and its group is called controls on your machine:
Description=Zurich Instruments HF2LI data server
ExecStart=/bin/bash -c "exec ziServer"
Tip: in vim you can type “:set paste” to get exact paste without auto indent etc.
Save the file and exit. You'll also need to create the working director, or change the above to your desired directory
> mkdir /home/controls/services/
Finally, tell systemd to look for new things:
> systemctl daemon-reload
and enable the service,
> systemctl enable ziServer.service
and manually start the service,
> systemctl start myservice.service
It should be running, try to see if this is so:
> ps | grep ziServer
It should run on reboot of the machine and restart every 30 seconds if it crashes for whatever reason. Try rebooting the host machine to check it is still running
Follow the above steps to also auto load the webserver with a unit file named /etc/systemd/system/ziWebServer.service:
Description=Zurich Instruments HF2LI web server
ExecStart=/bin/bash -c "exec ziWebServer"
Now you have a local network ready server for accessing the Zurich box through a web browser.
RXA: I talked with Modesto this morning. He had gotten the information at some point that our only problem was that we had 2 thermostats, and had not been told about the weird temperature fluctuations and the hot air. So I talked with him this morning so that he knows that we're going for stability in addition to using 1 sensor.
AWADE (Additional Info Wed Apr 24 19:42:32 2019 ): Modesto said that he set the temperature to 70 F.
Modesto returned today to carry out the fix of the AC. The south side hot actuator on the south vent was tied to the west wall thermostat. So current status is that both heat/cooling actuators are tied to the one thermostat on the west wall. Work was completed at 2 pm.
Modesto said he would be back tomorrow to check the system.
Someone from Facilities named Modesto came out to the QIL to see the problem with the HVAC. He measured 80F coming out of the hot vent (when its thermostat was set to 68F) and 65F coming out of the cold vent. He was able to drop the hot vent to about 62F by turning the set point down to 55F (so the controller is at least working).
I asked that he set it up that both units are controlled by one temperature sensor. So he’s going to disconnect the hot vent controller from it’s thermostat and tie it into the thermostat for the cold side. This seems reasonable but could be potentially problematic if the HVAC units have significantly different responses.
Anyway, the current plan is for him to come in on Friday to do this work
Attachment #1 shows the schematic of the experimental setup for amplitude stabilization using AOM. The proposed idea is as follows
OK...but how will the amplitude stabilization be done? How about a diagram showing the feedback loop and electronics?
Andrew measured the output voltage noise of photodiodes through an AC coupled pre-amplifier (G=200, 0.7 nV/rtHz) while varying the intensity of white light falling on it. The setup uses a regular 2xAA flashlight (torch) with an incandescent bulb to illuminate the photodiode. The flashlight focus is adjusted to give a non-expanding beam and a 25.4 mm (1") lens is then used to focus the collimated beam down. The total power of light was controlled by trimming it with an iris.
Below is the fitting of data to estimate the shotnoise intercept current. Here the fitted function is the quadrature sum of input referred shot noise and dark noise modeled as an equivalent shot noise quanitiy i_snint (called intercept current):
I have included zip file with data and notebook in it as well. With measured shotnoise intercept current of 48 ± 7 uA and 31 ± 7 uA, we are good to go to use these for measuring shot noise with light power in the order of 5.0 mW falling on the photodiodes. With 5.0 mW (~3.9 mA) on each PD, this gives us a clearance of 10dB from the dark noise floor on average for each detector. Plots with fits are attached below.
This post details the rebuild I made of the transimpedance amplifiers (TIA) for the homodyne detectors. My previous iteration of this design failed to take into account the output swing limitations and current draw limitations at the output of the op amp. It turns out that the OP27 was not the best choice here. On the face of it its GBP and input referred noise were fine for a ~ 1 MHz detection. However, operating the chip with 5V output voltage (to get 10 dB shot noise clearance from thermal noise) and with output impedance on order of 150 Ω meant that the frequency response was not as expected (see ATF:2316).
A better choice is something like AD829 which is designed for driving signals directly into 50Ω terminated outputs. The updated design is illustrated below.
Here the transimpedance gain has been lowered to 2 kΩ to lower the relative input referred noise contributed by the AD829's slightly higher current noise. Here the optical power can be increased to give the same effective output signal. In this case increase optical power and lowering gain keeps the thermal noise clearance below shot noise constant but improves the clearance of the AD829 input current noise.
For reference the thermal noise of the TIA is given by the Johnson noise
where k_B is the Boltzmann's constant, T is the temperature (300K) and Rfb is the feedback resistor value. Also here the shot noise is
Where e is the charge on an electron (1.602e-19 C), R is the photodiode responsivity (~0.8 A/W), and P_PD is the power on the photodetectors (0.5-5 mW). Keeping in mind that there is a maximum voltage swing (V_max) on the output of the op amp, this comes from its current driving capability into a given load, then the feedback resistance (TIA gain) is limited to
The noise clearance, given a maximum output voltage, is then given by the ratio
Power on the photodiode and responsivity cancel out for the noise clearance. Assuming we are not optical power limited then the thermal noise ratio (clearance below shot noise) is wholly determined by V_Max and the physical constants e, k_B and T. For room temperature (300 K) this reduces to the rule of thumb
Keeping the V_max to within 3 V means that we will get a thermal noise clearance factor of 7.6 below shot noise (8.8 dB). V_max of 5.2 volts will give 10 dB clearance. Ok I guess.
Koji suggested the AD829 as a replacement to OP27. AD829 has applications in driving 50 Ω/75 Ω loads in video applications and has some nice noise characteristics. The bottom line is that it has 1.7 nV/√Hz input voltage noise, 1.5 pA/√Hz input current noise, can do a ±3 V voltage swing into 150 Ω load (DC coupled), and is fast (600 MHz uncompensated, with 230 V/µs slew). There are some quirks. AD829 seems have have a weird 80 MHz feature that causes oscillations if not compensated properly. I did a bit of modeling in LISO and then just decided to build it once I found that ~2 kΩ gain was about right for ensuring that the dark noise wasn't dominated by the op amp current noise.
Because I was building on proto-board I wanted to ensure that there was as little parasitic capacitance as possible. I built the whole amplifier + PD onto a single SOIC-14 to 0.1 pitch adaptor (Adafruit SMT Breakout PCB for SOIC-14, Part No. 1210), pictured below. The small footprint and short trace lengths between critical pins means that there is a lower chance of parasitic impedance causing instability or impact on bandwidth.
The feedback resistor (2 kΩ) and feedback compensating capacitor (15 pF ceramic + 3 pF nominal pin parasitic) were soldered directly to the reverse side where the TSSOP-14 pins were connected through vias to the top side. This minimized the path length of this electrical signal. I scratched off pads that were unused in case they shorted or were a source of crosstalk. The photodiode mount pin was soldered directly to the edge of the board to minimize distance. The power bypassing capacitors were SMT 100 nF ceramics (5%) that were soldered directly to the SMT breakout with the shortest path to ground on that board (see pictured). The other photodiode pin was soldered to +5 V (-5V) supply pin in unit A (unit B). The opposite biasing makes subtracting the signals using a summing circuit easier but may affect the overall TF response. There is no power regulation, I'm planning to use batteries to power these circuits.
In my initial tests I had no compensating capacitor attached to pin 5. I inserted a 40 pF ceramic capacitor in place of the photodiode and looked at the AD829 output pin with a high impedance probe on an oscilloscope. I immediately saw 80 MHz oscillations. I don't really need a super high bandwidth so I went strait to the maximum recommended choice for pin5 compensating capacitor of 68 pF. This makes AD829 unity gain stable with 66 MHz bandwidth (slew 16V/µs) but is more than enough for my needs. This killed the high frequency RF ringing junk. Maybe less capacitance here would have worked, but this performance is enough for my needs and gives some certainty about the op amps stability (ignoring input capacitance compensation).
At the output I added 100 Ω of series resistance to limit the loading on the op amp and current draw when 50 Ω terminated. With 50 Ω terminating impedance this makes a 150 Ω to ground. Providing the output DC swing is kept within 3V the op amp should behave as expected.
The whole thing fits together very nicely on a single SMT breakout board. Making it compact will hopefully avoid any issues with stray capacitance messing up the performance. I have then mounted this on a larger proto board for ease of installing in the experiment. Paths to the output SMA output are thin wire and not routed through the underlying board. Only power and ground is routed through the board, all other pins to the op amp disconnected.
I measured the signal transfer function of the above TIA units using the Jenne rig at the 40 m. It took me a number of tries: I made the mistake of loading the DC port of the NF 1611 detector with 50 ohms (which resulted in too much current draw and affected the LF response of the witness detector); there were also some issues with the polarization/positioning onto the beam splitter there that made it not 50:50 (it was 69:33 ), I moved the fiber launch a bit to get the splitting right and retook measurements after that; also I initially had the current set too high on the laser current driver which I think was saturating its response. I'll skip over the details and just present the final measurement. I've included a zip in the attachments with the data that logs some more of the details of my failed attempts.
I used the same calibration as used in PSL:2247. Here the laser diode current was set to 25.0 mA, which is 1.51 mW of 1064 nm, and the AC excitation into the laser was set to -21 dBm (19.9 mV rms). Power on the witness detector was measured to be 0.79 mW and that on the PD under test was 0.75 mW (as measured with a power meter). Units of measurement were linear magnitude and phase in degrees. DC voltages were measured with 1 MΩ impedance.
Unit A: using 25 mA current into laser and -21 dBm sweep I get DC on PD of 1.20 V (into 1 MΩ) and a DC voltage of NF1611 detector of -2.13 V (into 1 MΩ).
Unit B: using 25 mA current into laser and -21 dBm sweep I get DC on PD of 1.07 V (into 1 MΩ) and a DC voltage of NF1611 detector of -2.12 V (into 1 MΩ).
The calibrated TIA current to voltage gain is plotted below:
A notebook detailing all the attempts is attached below.
This set of measurments turned out to be bad. The OP27 (±15V supplies) with 50 Ω series at the output + 50 Ω load impedance seemed to be saturated.