Displaying reports 781-800 of 1093.Go to page Start 36 37 38 39 40 41 42 43 44 End
Reports until 20:50, Monday 01 April 2024
Controls General
Jeffrey Wack - posted 20:50, Monday 01 April 2024 - last comment - 14:24, Tuesday 02 April 2024(11516)
Moku IIR filter delay

Conclusion: Performing a freqency sweep response measurement of the digital filter box and taking the derivative of the phase with respect to frequency gives a value of 1.2 microseconds, in agreement with the measurement of logpost 11512.

The digital filter box of one moku pro was set to an all pass filter using the API. The sampling frequency is 39.063 MHz. A second Moku measured the frequency response. The phase data of this frequency response was numerically differentiated using next neighbors, and the delay of 1.2 microseconds is the median time over all pairs.

When the same measurement is performed using a single moku in multi instument mode and the signal is routed through the internal bus, a delay of 950 nanoseconds is measured. 

An independent measurement of the DAC + ADC delay gives 250 nanoseconds. A pulse from the oscilloscope is split, half is routed outside the moku and the other half along the signal bus, the arrival times of the two pulses is then compared.

This leads to the conclusion that the 1.2 microseconds of delay is approximately 950 nanoseconds of filtering time plus 250 nanoseconds of ADC/DAC time.

 

Images attached to this report
Comments related to this report
Ian MacMillan - 11:17, Tuesday 02 April 2024 (11517)

This agrees with the results from Radhika in at the 40m. She got 1.3 microseconds for an allpas IIR filter. Her plot shows results for PID, FIR, and IIR filters in the Moku Pro and the Moku Go. 

Jeffrey Wack - 14:24, Tuesday 02 April 2024 (11518)

The previously posted response function was taken at a small amplitude (10mVpp), a larger amplitude (0.5Vpp) gives the following

Images attached to this comment
Computing General
Torrey Cullen - posted 14:26, Monday 01 April 2024 (11515)
Some useful resources down the road

I was on a CE call that referenced some interesting tools for interferometer modelling that may be useful for us after this paper is out. Sticking it on here just so everyone has it.

Lab Infrastructure Lab Maintenance
Torrey Cullen - posted 15:37, Friday 29 March 2024 (11514)
Lab up and running

[Ian, Torrey]

Ian and I cleaned the floors of the lab, removed the plastic coverings on the optics tables, and powered up the laser. There is

Controls General
Jeffrey Wack - posted 20:15, Wednesday 27 March 2024 (11512)
Delay Measurements of Moku Modules

Jeff, Torrey

We have performed pulse delay measurements on the various modules of a Moku Pro. This was done using two Moku Pros, the measuring Moku (Moku A) in oscilloscope mode, the measured Moku (Moku B) cycling through the modules. Moku A emits a pulse which is first detected by Moku A before traveling to Moku B where it is processed, and a response is emitted. The response is then measured on a second input of Moku A. See the diagram below. The delay was determined by measuring the distance between the half maxima of the rising edge of each pulse. A 10 ns width pulse was used for all the modules other than the slow path of the Laser Lock Box, which required a 1 microsecond pulse to get an easily measured response pulse. A slightly modified setup was tried where a compensating length of cable was insterted between the BNC T and the first input of Moku A. 

Module Short T delay (ns) Long T delay (ns)
BNC barrel  14 0
Digital Filter Box 1200 1190
Laser Lock Box fast path 604 600
Laser Lock Box slow path 5480 5443
PID Controller 527 511

The FIR filters change their delay based on the number of coefficents. The filter measured is a bandstop with the minum width notch at the maxium frequency, designed to be as close to an all-pass as possible. The "short T" was used

Coefficents Delay (ns)
3 859
39 1330
83 1890
145 2680
191 3280
231 3800

 

 

Images attached to this report
Lasers Laser Filter Cavity
Daniel Grass - posted 15:28, Tuesday 26 March 2024 (11510)
Machining of 25 1/4-20 holes into a Kurt J Lesker F1000X000N, 10

I machined 25 1/4-20 holes into a Kurt J Lesker F1000X000N, 10" diameter 304 Stainless Blank Flange. I added a 0.020" deep channel between the holes so that screws and posts wouldn't create virtual leaks if placed on top of one.

See attached photos and drawing.

 

Here is a list of instructions, some of which may only make sense to me:

Put flange on mill

Tape copper gasket at 45°, 135°, 225°, and 315° to secure it

Tape around copper gasket

 

Secure flange with 4 “stairs” with copper under the piece

Use 5/16 or 19/64 pieces to align leak checker gaps vertically

To do this, put 5/16 or 19/64 pieces holes and press against the rails

 

Finder center with edge finder

 

Program hole pattern

Use center drill to do hole pattern, going into the “2nd layer”

Use drill stop to do this

200 rpm on low speed and in reverse

 

Use #7 drill (.201 diameter) very tightly in chuck

Put in hole, use drill stop, raise drill, raise table 500 thou

Drill pattern using spray bottle lubricant

*use lots of pressure* and

700 rpm on high speed, forward

 

Use 4 flute, 90° chamfer tool

Put in hole, use drill stop, raise drill, raise table 50-65 thou

Chamfer using spray bottle lubricant

200 rpm on low speed, reverse

 

Program end mill pattern

*be sure to constantly raise and lower height*

Put 1/8 in diameter, 4 flute tungsten carbide end mill in, find 0 z by putting end mill over hole, barely taking anything

Then lower by 0.020” for channel

4000 rpm on high speed, forward

10”/min

 

Use initial (p) tap to get first pattern

Use bottom tap to clean up holes

Should get 14 half revisions out

This gives around .4” of depth

 

Carefully chase holes with bolts to clean up the thread

 

Use stone to remove burrs from end mill

 

Clean machining lubricant off flange

Images attached to this report
Non-image files attached to this report
Controls General
Chris Stoughton - posted 13:07, Tuesday 26 March 2024 - last comment - 20:41, Wednesday 27 March 2024(11511)
delay time on RFSoC 4x2

Using firmware cloned from htps://github.com/leoeltipo/rfsoc4x2_public I ran the notebook demo_2_filter.ipynb with the mixer set at 500 MHz and flow,fhight = 10,120.

 

I transmitted a narrow square pulse (yellow) into ADC_C and read back the (blue) pulse from DAC_A.

 

This is running a band-pass filter.  The delay is a bit less than 100 nSec.

 

A 15 MHz tone in at 50 mV pk-pk generates a tone of the same amplitude and frequency.  There are issues with overflow and wrapping at larger amplitudes.  Changing the qout values for analysis and synthesis define which bits are used.

 

The notebook is set up to use qout values of (analysis,synthesis) of 2,1.  Using 3,0 gives the same response.  2,0 doubles the output voltage amplitude.  Other values cause underflow/overflow issues.

 

 

Images attached to this report
Comments related to this report
Jeffrey Wack - 20:41, Wednesday 27 March 2024 (11513)

My attempts to reproduce this measurement give a delay of about 3 microseconds. The same notebook was used with the same settings. The Moku in oscilloscope mode produced a 10ns pulse, which is measured at input 1 (red) before travelling into ADC_C, through the RFSoC, out of DAC_A, and back to input 2 (blue).

Images attached to this comment
GQuEST Output Filter Cavities (GQuEST)
Daniel Grass - posted 11:45, Tuesday 26 March 2024 (11509)
COMSOL Model of the Output Filter Cavity Mechanical Resonances

I modeled the Output Filter Cavity in COMSOL to see if the noise between 3-4 kHz in the open loop transfer function when the cavity is locked is due to mechanical resonances. I modeled the aluminum cavity and its steel supports. See attached photo.

There is no obvious mode between 3 and 4 kHz that would lead to a strong noise source. Modes like the one shown, at 1 kHz, should produce more noise than anything between 3 and 4 kHz.

In summary, this COMSOL model does not support assigning the 3-4 kHz noise to mechanical resonances.

Images attached to this report
How To General
Jeffrey Wack - posted 10:28, Thursday 21 March 2024 (11506)
Use scp to transfer files to the RFSoC 4x2

Leo Stefanazzi at Fermilab has written some example projects for the RFSoC 4x2 board which demonstrate a digital filter and a frequency response analyzer. I am going to run the example notebooks on the RFSoC in B102.

1) Connect the RFSoC to the lab network via ethernet and boot it up. It should display an IP address.

2) Clone to git repo to some machine on the lab network.

3) Use scp to transfer the desired files to the RFSoC. The IP address is the one displayed, and the username and password are both 'xilinx'

scp -r /home/lab/code/RFSoC/rfsoc4x2_public/firmware/pynq xilinx@192.168.50.98:/home/xilinx/jupyter_notebooks

4) Now, in a browser, go to the IP address, and log in with password 'xilinx.' You should see the new files there.

In order to find the path to the jupyter notebooks on the RFSoC, I used ssh.

ssh xilinx@192.168.50.98

 

GQuEST General (GQuEST)
Daniel Grass - posted 18:13, Wednesday 20 March 2024 (11504)
End Mirror Clamp Design

See Photo

Images attached to this report
Electronics General
Jeffrey Wack - posted 15:17, Wednesday 20 March 2024 (11503)
RFSoC 4x2 Quick Start

1) Plug in the power cable, insert the SD card. Set the boot option to SD and turn it on.

2) The display reads "RFSoC-PYNQ No IP detected"

3) Connect to your machine with an ethernet cable. The message doesn't change.

4) Now we need to set up a DHCP server on your machine. My machine is Windows so this is what these instructions will be for. Go to Control Panel > Network and Internet > Network and Sharing Center. You should see an "Unidentified Network." Select "Ethernet." Select "Properties" then "Internet Protocol Version 4" and select "properties." Set the IP address. I used 192.168.68.1 Set the subnet mask to 255.255.255.0 Now download tftpd32 from http://tftpd32.jounin.net/ and do the usual install wizard stuff to install it. When you start the program go to settings and select the DHCP tab. Set the "IP pool start address" to 192.168.68.100, set "size of pool" to 20, set "Def. router" and "WINs server" to 192.168.68.1, set "Mask" to 255.255.255.0, and hit ok!

5) You should now reboot the 4x2. After it does its thing you should see "IP Addr(eth0): 192.168.68.100" on the display.

6) Connect to the board by going to http://192.168.68.100 on your machine. Log into the Jupyter page with the password "xilinx"

7) You should see some folders and a notebook called Welcome to Pynq.ipynb Celebrate! and enjoy all the example notebooks

Images attached to this report
Controls General
Jeffrey Wack - posted 12:02, Tuesday 12 March 2024 - last comment - 10:37, Thursday 21 March 2024(11500)
Moku Self-Measurement

I've written a notebook which takes second order section coefficents, sets the digital filter box, measures the frequency response, and compares it to a pythoncontrol model. The notebook is labeled "DigitalFilterBox_TransferFunction" and is saved in the MOKU_scripts folder.

The filter measured is given as an example in the API documentation, and described as "an 8th order Direct-form 1 Chebyshev type 2 IIR filter with a normalized stopband frequencyof 0.2 pi rad/sample and a stopband attenuation of 40 dB." The magnitude of the model and measured tranfer functions looks the same to eye, but the phases do not match. I expect that internal delays in the Moku will cause phase loss, but I'm not sure how big to expect this effect to be. Additionally the phase curves move in different directions, and I am not sure how to explain that discrepancy.

Script outline:

Define the IIR filter as a series of second-order sections. The Moku wants these coefficents in a form described in the user manual (unfortunately it is not documented in the API documentation). Each IIR filter can have a maximum of 4 second order sections. You also have to give the Moku a sampling frequency which is one of the 3 allowed frequencies:  39.06MHz, 4.883MHz, 305.2kHz for the Moku Pro.

Measure the IIR filter with the frequency response analyzer. Define a frequency sweep and execute it, making sure to wait until the sweep is complete to pull the data.

Define the pythoncontrol model of the filter. Python control allows for discrete time transfer functions by passing it a sampling time. (s -> z^-1) The total transfer function is calculated as the second order sections in series.

Most of the data manipulations are done with dataframes, and the plotting with Vega Altair. Another example of using Altair to plot multiple transfer functions is in the notebook "plotting_sos"

Images attached to this report
Non-image files attached to this report
Comments related to this report
Torrey Cullen - 10:29, Monday 18 March 2024 (11502)

Very cool. Do you have a screenshot or a diagram of how you're taking these TFs? Curious about the phase difference.

Lab iPad - 10:37, Thursday 21 March 2024 (11507)

Here's the multi instrument setup. 

Images attached to this comment
GQuEST General (GQuEST)
Daniel Grass - posted 18:31, Monday 04 March 2024 - last comment - 17:14, Monday 15 April 2024(11499)
7 m Long Interferometer SolidWorks Screenshot

See attached photo

Images attached to this report
Comments related to this report
Daniel Grass - 18:42, Wednesday 20 March 2024 (11505)

More images

Images attached to this comment
Daniel Grass - 11:32, Thursday 21 March 2024 (11508)

Two IFO image

Images attached to this comment
Daniel Grass - 17:14, Monday 15 April 2024 (11527)
Images attached to this comment
GQuEST General (GQuEST)
Daniel Grass - posted 17:20, Friday 01 March 2024 (11497)
Optimal Filter for Photon Counting

I wanted to calculate the filter that provides the best SNR^2/Time for Photon Counting. It turns into maximizing an integral squared over another integral with a filter function F(\epsilon). I don't know nearly enough optimization theory to solve this analytically, so I used SciPy's optimizer. To approximate GQuEST's signal and noise, I set the signal to a constant height of 1 and the noise to be a Lorentzian with height 1e6 at 0 and 10 at 1. I then created numpy arrays to act as the noise and the filter. I optimize the SNR^2/Time by changing the filter outputs at all frequencies, ensuring the filter outputs are between 0 and 1.

The resulting filter looks very much like a boxcar filter, with a value of 0 between 0 and 0.48 and 1 between 0.48 and 1. Perhaps this makes sense; either you want to integrate over a frequency or you don't.

If I assume the filter is a boxcar instead of any filter, maximizing SNR^2/Time turns into maximizing a function of 1 variable (from infinite variables).

I plan on writing up my findings in an Overleaf document soon.

Images attached to this report
Non-image files attached to this report
GQuEST Output Filter Cavities (GQuEST)
Daniel Grass - posted 10:56, Wednesday 14 February 2024 - last comment - 11:53, Monday 04 March 2024(11465)
Newport Data for Noise from the MFM-100 Flexure Mount (in use for the Output Filter Cavity)

I recieved some data from Newport for vibrations from the MFM-100. I am not sure how they took this data and will update this post/comment on this post when I find out. For now, attached are the graphs shared with me. The resonances are around the frequencies we observed some noise in the output filter caviites.

Note: the picture of the mount in the images is only to show the axis; the mount does not look like the image shown.

Images attached to this report
Comments related to this report
Daniel Grass - 11:53, Monday 04 March 2024 (11498)

From Newport:

The data shared is the frequency response to a sine sweep test using an in-house shaker system.

The MFM-100 does have natural resonances in the 300-500 Hz range. This is normal.

Seeing a peak within 5% of tested samples is not totally alarming.

Provided it doesn’t jeopardize any performance, adding a material with a high damping coefficient at the mounting interface like viton, sorbothane, etc. will  certainly work.

Displaying reports 781-800 of 1093.Go to page Start 36 37 38 39 40 41 42 43 44 End