Skip to content

Readout

mstrader edited this page Feb 7, 2013 · 7 revisions

This page explains how to use the SDR software to readout observation data from an MKID array. The process is summarized by the following flowchart. Each oval represents a program to run and each rectangle is a file output from one program that may be fed into the next program. See below for more detail on each program.

First, if it is not already started, the firmware needs to be loaded with startSeqFirmware.sh. This will automatically copy the desired firmware .bof file to each roach board, set the IF board clock speed, and load the desired firmware on each roach in sequence. Sometimes this errors out on a roach. Restart the script to run on that roach again and then those after it.

Next, an instance of templar is run for each roach board. Each has it's own Roach Freq/Atten file created previously by PSFit.py during the setup process. Using templar, the values to be sent to the DAC (which form a frequency comb of all resonant frequencies) are calculated and loaded into a look up table (LUT) on the roach. Templar then starts the DAC going, sweeps the LO, and displays the resulting IQ loops for each resonator. Adjustments may be made, then the loops are rotated, that is the phases of each frequency in the list is calculated such that the IQ loops displayed have the resonant frequency at zero degrees phase. Lastly, the calculated centers of each loop is loaded into firmware registers, so that this the phase calculated is relative to the loop center and not the origin.

Frequencies and attenuations can still be customized if there is a problem with individual loops displayed by templar. The changes to the Roach Freq/Atten file are saved in another file in the same location with the same filename with "_NEW" appended to the end. When templar loads the Roach Freq/Atten file, it looks for a _NEW file and uses any updates in the file in the frequencies and attenuations it loads.

Next, we open an instance of the channelizer GUI for each roach board. First a katcp connection is made to the roach boards. Then The Roach Freq/Atten file is loaded. The channelizer only uses this to get the number of frequencies. Next a file is loaded with the coefficients for a custom FIR, usually an optimal filter created with a phase pulse template. The coefficients are then loaded into registers on the firmware. For any of the 256 channels that does not correspond to a frequency in the list, the coefficients are set to zero, so that the filtered output of these channels is always zero. Next, with no light hitting the array, we hit 'load thresholds.' This determines the mimimum threshold that the phase must pass to be detected as a photon event. The threshold is calculated for each channel. Once this is done, the resonators are set up and are ready to be used, but the channelizer GUI can do a few more things, such as view phase pulses in a snapshot.

Next, we start NTP and the pulse servers on each roach board. These are C programs that grab data from the roach's bram as it accumulates, and send it to the controlling computer over a tcp connection. The data is received by a C program, called PacketMaster.c, which is run behind the scenes by Arcons Dashboard.

Using Arcons Dashboard, we can start an observation. This will signal the roach boards to start accumulating data, which is stored in an HDF5 file, on the controlling computer. Each second of data is shown on Arcons Dashboard as an image as it's received. The dashboard can also show the raw light curve for a selected pixel.

Clone this wiki locally