---+++ Bolometer Characterization Step by Step
This page lays out instructions for characterizing EBEX wafers in the McGill cryostat.
Hardware Map
The first step is to make a new hardware map. Hardware maps are maintained on the hardware_map.git repository on kingspeak (see the git instructions for more details). The instructions below are long hand for taking the previous hardware map and modifying it slightly to match the changed wafer.
- Git pull
- Copy the previous hardware map to a new directory named
HWM_McGill_CooldownXX
where XX is the number of the cooldown.
- Make sure the soft link update.py in the hardware map points to
pywtl/common/CreateHardwareMapScripts/update_ebex.py
on your machine. If it doesn't delete it and remake it.
- Rename csvHWM_McGill_CooldownYY.csv to match the new directory name.
- Remove HWM_McGill_CooldownYY.png. You'll remake it with update.py when you need it.
- Move HWM_Template_McGill_CooldownYY.py to match the new directory name.
- Edit HWM_Template_McGill_CooldownXX.py. Do a search replace to change the previous wafer name to the current one. Do a search replace to update the LC board to the current one.
-
python update.py 1 1 1 1 0
. This should update your hardware map with the new wafer and LC board and make a new plot.
- (optional) Create a soft link in your home directory called hardware_map to the latest hardware map directory (/location/HWM_McGill_CooldownXX). This makes it possible to use the same configuration for all tuning software.
Create Data Directory
I like to keep all the data for a given run in one place. The location of this directory is up to you but you may want to create a soft link called current_dewar_data in your home directory to permit all subsequent configuration to need no changes from wafer to wafer.
Tune SQUIDs
I've been doing this with DfmuxLite and the mcgill_master_tuning_script.py for the last while. It requires a bit of set up (see the start of the script or ask Tijmen) but then most operations become just the setting/unsetting of flags.
- vim ~/pywtl/example_scripts/mcgill_master_tuning_script.py
- Set the flags for powerup, zerocombs, heatabovetc, heatsquids, tunesquids
- After all these complete check the webpages to ensure biases are set on SQUIDs
Net Analyses
It can be good to take Network Analyses at 4K and 850mK but for most recent wafers there have been no cold shorts so I would just jump straight to the 850mK ones. I still tend to use DiMMER for this step.
- (optional) If this is the first wafer you will want to "Manage Configuration Files". Then "Create a config.pkl file". You will be asked for the paths to your hardware map and analysis folder. If you created the soft links I suggested these should only ever need to be configured once.
- (optional) You may also want to select "Manage Configuration Files" then "Create folders for data and analysis". It'll just create some standard folders in your data directory for netanal, psats, ivs, etc. DiMMER never actually moves data there itself, you'll have to do that manually.
- Select "3) System Characterization" and "3) Network Analysis". You want to do all SQUIDs on P6, the default net analysis options are normally fine.
- After the data is taken move it to
current_dewar_data/netanal/data
- Select "5) Analysis" then "1) Manage AnalConfig File". You need to add rows to this file corresponding to your new wafer. Follow the on-screen prompts.
- Select "5) Analysis" then "1) Manage AnalConfig File". You now need to update the net analysis of your new rows to make the yyyymmdd match the current date
- Select "5) Analysis" then "2) Network Analysis" then "1) Analyze a complete wafer" and type the name of the current wafer. It should process your network analyses and create a folder in
current_dewar_data/netanal/latex/
with the wafer name.
-
cd current_dewar_data/netanal/latex/xxx-xx
and do a latex netanal.tex
. You should get a nice dvi (or pdf if you convert it) of network analyses for each SQUID. If they look good you're ready to move on.
Setting overbias frequencies and amplitudes
You now need to take the net analysis results and get them into the hardware map. To get the channel ordering correct you'll need a UMN wiring document, Asad will generally email one when he sends along the wafer.
-
python /pywtl/common/analysis/NetAnalSuite/concat_net_anals.py ~/current_dewar_data/netanal/data/
. This script just takes the network analysis results for each SQUID and concatenates them all into one comma-separated value file. Note that this file will be created in the current directory and is called netanal_resist_freq.csv
Now comes a little bit of bookkeeping silliness. EBEX bias frequencies are ordered by the bond pad on the LC board, not incrementing LC resonance.
-
libreoffice ~/current_dewar_data/netanal/data/netanal_resist_freq.txt
. You'll need to select spaces as the delimiter and to "merge delimiters" 1 libreoffice ~/xxx-xx_boardx.xls
. This is the wiring document from Asad.
- Sort the wiring document by SQUID and expected frequency and create new columns for measured frequency, measured resistance.
- Copy over the net anal results SQUID by SQUID, if less peaks are found than the total expected number determine which are missing and insert spaces in the wiring document as necessary.
- Once this is complete, re-sort the wiring document by SQUID and Bolo Pad. The measured column now contains your bolo frequencies in the proper order.
-
libreoffice ~/csvHWM_McGill_CooldownXX.csv
. Copy the net analyses results into the csv under the overbias headings. You have to transpose it (paste special) and put it Hz. You also want to replace any dashes or xs with 0s.
- Update the overbias gain and amplitudes sections to include something like 1.2 gain 3 for all channels corresponding to peaks in the net anal. You can use a spreadsheet "if" statement or do it by hand. 1
python update.py 1 1 1 1 0
to update the hardware map with your new bolo frequencies and amplitudes.
overbias
I've been doing this with DfmuxLite and the mcgill_master_tuning_script.py for the last while. It requires a bit of set up (see the start of the script or ask Tijmen) but then most operations become just the setting/unsetting of flags.
-
vim ~/pywtl/example_scripts/mcgill_master_tuning_script.py
- Set the flag for overbias
- After all these complete check the webpages to ensure biases are set on bolos and run
python ~/pywtl/mcgill/lab_modules/rail_monitor_dan.py
to make sure there are no rail issues. If there are find the offending bolos and turn them off.
Saturation Powers
Again, been done with DfmuxLite and the mcgill_master_tuning_script lately.
- Make sure the proper fracRns in the csvHWM_McGill_CooldownXX are set to 0.85 and run an update.py to put these values into the hardware map.
- Found that setting to FIR 6 instead of 5 helps DAN work better...
- Edit the mcgill_master_tuning_script, set the coolstage flag
- Once stage is cooled and overbiased and still no rails (kill bad bolos if problems), then set takeiv flag and run.
If you've set up DfmuxLite properly your data will be saved to
current_dewar_data/output/datestamp
. To process it run:
-
python ~/pywtl/common/analysis/an_iv.py ~/current_dewar_data/output/datestamp
. This will create IV plots for each bolometer in the same output directory.
-
python ~/pywtl/common/analysis/make_psat_csv_from_processed.py ~/current_dewar_data/output/datestamp
. This just makes a Psat.csv from the output of an_iv. It can be found in the target directory and can be sorted by squid wire and channel.
- Copy the results into the wiring document. I usually make two columns, one for the Psats themselves and second one for any weirdness in the IV seen in the plots. You do want to look at each individually. I've noticed that an_iv stores less Psats than it writes on the plots of the IV curves. I'm not sure why this is, I normally just add the odd balls back in on the wiring document by hand. Feel free to talk to Tijmen (or Nick Harrington?) about this and fix it.
- Finally run
python make_histo_pturn_plot.py ~/current_dewar_data/output/datestamp
. You may want to edit this script to apply the proper title. It creates a plot in the current directory of a histogram of Psats.
Critical Temperatures
Critical temperature measurements are much easier now thanks to James' PID. Here I'll describe how to set up the data taking, ask James to show you how to start the PID. All of this is normally done on the ebex branch, I recommend working there.
- First we need to set the bias currents.
cd /pywtl/mcgill/lab_modules/Tc_McGill
and edit TcSetup.py to set the small bias.
- If the Rudi sensor has changed channel from last run you may need to edit RecordData.py to change the channel of waf_sensor.
- then edit LaunchRecordData.py. Make sure the output directory and IP addresses are what you want then
python LaunchRecordData.py
.
- This should start two RecordData processes, check the data directory to make sure the files are getting filled, beyond just the headers. The sample rate is slow so be a little patient.
- Before running the PID try putting 1.5V on the "Wedge Heater" channel. Make sure the wafer responds to this power, otherwise the wafer heater might be on another cryoboard channel or there might be an open in the cryostat and this method won't work.
- We generally run the PID as daquser on lotusflowertower, so ssh to that machine and start a screen session (or resume one if there's already one called PID)
- The PID can be found in
~daquser/crython/mcgill
it's called tc_PID.py. It has nicely defined command line arguments and you can get help with --help. I usually set the rate to 0.02mk/sec though a faster rate would probably also be fine. Kevin B. likes 0.03mk/sec better.
To analyze the data:
- Start by plotting a single result
cd /pywtl_ebex/mcgill/lab_modules/tc_analysis
. Then python tc_anal.py
. One section of the temperature data should look particularly good. Note the start and end timestamps of this section for the full analysis
- Run
python tc_anal -s start_time -e end_time /path/to/tc/data
. It should process each tc and create a rebinned plot and tc.csv.
- Copy the Tc results from the tc.csv into the wiring document.
- Add/commit the wiring document to ebex-trunk/BoloWiringDocs
-
python tc_plot_csv.py /path/to/tc.csv
. This creates a fancy histogram with Tc peak with and without outliers.
- Look at the Tc plots for any of the channels with very odd Tcs. I generally replace any that clearly are not detections with an x in the wiring document. Usually these channels will not work.
Note that the Tc analysis script has a memory leak at the moment, if it looks like it's in danger of devouring all your system memory then run the tc analysis in batches (or go in and fix the memory leak).
Noise
Good luck sucker. The set up can easily be done with the mcgill_master_tuning_script. The analysis can be done with
pywtl/common/analysis/noise
after it is set up. --
KevinMacDermid - 2012-04-24
This topic: BolometerTesting
> WebHome >
BoloCharacterizationProcedure > BoloCharacterizationStepByStep
Topic revision: r7 - 2012-08-14 - KevinBandura