Basic Info
- The main PUPPI computer at Arecibo is called 'puppimaster' and the only user account currently is called 'gpu'.
- When logging in to puppimaster as gpu, you will already have all relevant PATH/etc set up (ie, no sourcing guppi.bash is required).
- The monitor programs
guppi_status
andguppi_gpu_status
are available on puppimaster and work exactly the same as at Green Bank. These are both good to have open during an observing session.
Basic How-To
- Log in to puppimaster (or use existing vnc session on :1 and :2)
- On a different machine (e.g. fusion00), start Cima (Cima runs very slowly on puppimaster), select Stable version, then Pulsar mode.
- Copy a PUPPI-friendly Cima conf file for your chosen receiver
from
/share/obs4/usr/pulsar/p2624
to your project directory. - Make sure winking cal is turned off in Main Cima Menu:Pulsar Observing.
- Main Cima Menu:Load Configuration, select the .conf file you copied over, Load and apply.
- Main Cima Menu:Power Control, Adjust All.
- On puppimaster, in a shell type
guppi
to get to the guppi command prompt, then execute these commands in sequence:mode(‘2048’)
to set the number of channels (2048 in this example),reset(‘100’)
to set the bandwidth in MHz.- A common setup
is
mode(‘fast4k’)
,reset(‘100’)
. This sets up PUPPI with 4096 channels, summed polarizations, 100 MHz bandwidth.
- A common setup
is
- To change the sampling time:
- In guppi
prompt:
get('BEE2/FPGA2/ACC_LENGTH')
. This returns a hex number that is the default acc_len (accumulation length) for the chosen mode minus 1. E.g. a return value of'0000000f'
is hex for 15, so acc_len = 16. - The sampling time: dt(s) = acc_len * nchan / BW.
- You will almost certainly need to change the accumulation length for the low-BW modes. The current lowest value allowable is acc_len = 16 for 800MHz-BW mode, and acc_len = 4 for the narrow-band (100MHz and 200MHz) modes.
- The lowest value allowable for 'fast4k' mode is acc_len = 2.
- To change acc_len e.g. to 6, in guppi prompt:
set_acc_len(6)
.
- In guppi
prompt:
arm()
to start hardware. The IF/LO Setup section below describes the parameters of several available configurations. The Setting up the PUPPI HW section gives more details about the commands.- On puppimaster, in a normal
shell:
guppi_adc_hist
. Two histograms will be displayed, one for each polarization; they should be Gaussian and closely overlapping.- Sample output from
guppi_adc_hist
:
ADC Power level info:
PolA (FPGA3): Mean=-1.030 RMS=21.897 Min=-96 Max=82
Add 0.8 dB attenuation (for target RMS 20.0)
PolB (FPGA1): Mean=-0.947 RMS=20.178 Min=-82 Max=86
Add 0.1 dB attenuation (for target RMS 20.0) - To check current attenuation
values, on puppimaster:
puppi_atten
. The attenuation values can be changed in steps of 0.5 dB within the range 0 - 15 dB. - If necessary, set new attenuation values with
puppi_atten -A [dB] -B [dB]
- If PUPPI attenuation values are already at 0.0, but guppi_adc_hist recommends decreasing the attenuation: Main Cima Menu: Power Control: Use the arrow buttons in the line labeled "Attenuation(dB)" to reduce the attenuation for both polarizations by the recommended amount.
- Sample output from
- On puppimaster, in normal
shell:
guppi_status
(general backend status). - On puppimaster, check if the directory for your project
ID exists in
/data/puppi
and create it if it does not. - On puppimaster, in shell:
puppi_observe -b L -I -P [project ID] -T [obs. time in s] [full path to .par file]
(example for L-wide, summed polarizations). Data will be in/data/puppi/[project ID]
.- For observing frequency of 327MHz and PUPPI bandwidth
of 100MHz, the default is to record data only from the center
60MHz as that is equivalent to the receiver
bandwidth. To record from the full 100MHz PUPPI bandwidth,
add the option
--full
when runningpuppi_observe
- The Running an observation
section lists all the available options to
puppi_observe
.
- For observing frequency of 327MHz and PUPPI bandwidth
of 100MHz, the default is to record data only from the center
60MHz as that is equivalent to the receiver
bandwidth. To record from the full 100MHz PUPPI bandwidth,
add the option
- Note: In search mode, the PSR/PSRJ, RAJ, and DECJ fields
in the par file give the name and position of the source that will
be written in the PUPPI file names and headers. For blind search
pointings, you can give a dummy par file
to
puppi_observe
with the desired parameters. - On puppimaster, in normal
shell: you can use
guppi_monitor
to look at the bandpass in real time. - To monitor for dropped packets, on
puppimaster:
tail -f /tmp/guppi_daq_server.log
- To end an observation at any time, on puppimaster:
puppi_stop
.
IF/LO setup
Several PUPPI-friendly CIMA config files are available in the p2624 (NANOGrav) project area. These are:-
generic_327_newcima.conf
- The old ASP 327 MHz setup works for PUPPI as-is. PUPPI center freq=327 MHz, BW=+100 MHz. -
generic_430_newcima.conf
- The old 430 MHz config also works. PUPPI center freq=430 MHz, BW=+100 MHz. -
puppi_1410_newcima.conf
- L-Wide setup for PUPPI+ASP+WAPPs. The center freqs for the various backends are:- PUPPI = 1380 MHz, BW=-800 MHz
- ASP = 1410 MHz, band_dir=+1 (Note changed band_dir vs old L-Wide config)
- WAPPs = 1700, 1195, 1500 MHz, BW=50 MHz
-
puppi_2030_newcima.conf
- S-Low config putting PUPPI in the bottom half of the receiver band with the 1700-1880, 2040-2400 MHz filters in place. Center frequency/bandwidth info:- PUPPI = 2030 MHz, BW=-800 MHz
- ASP = 2350 MHz, band_dir=-1 (Note changed band_dir vs old S-low config)
- WAPPs = 2085, 2205, 1850 MHz, BW=100 MHz
-
puppi_2800_newcima.conf
- S-Low config putting PUPPI in the upper half of the receiver band with the 2600-3100 MHz filter in place. Center frequency/bandwidth info:- PUPPI = 2800 MHz, BW=-800 MHz
- ASP = 2650 MHz, band_dir=+1 (Note changed freq vs old S-low config)
- WAPPs = 2950, 2750, 2850 MHz, BW=100 MHz
Setting up the PUPPI HW
Setting up the hardware (loading FPGA designs, changing clock
rate, etc) is done via the guppi>
prompt. Just
run 'guppi
' on puppimaster to open it up. At the
guppi>
prompt, run the following commands to set
up or change modes:
-
mode('4096')
to load 4096-channel incoherent mode. Usemode()
with no arguments will show both the currently selected mode, and all available choices. -
reset('800')
to change to 800 MHz BW. Usereset('100')
for 100 MHz BW on the low-freq receivers (327, 430). This command only needs to be run when changing the bandwidth. -
init()
sets up appropriate values in the FPGAs. Note that thereset()
command will automatically callinit()
so there is no need to run it twice in that case. -
arm()
starts data flowing to the computers. Important: Do not runarm()
once you are actually recording data! It will reset your observation. - A typical command sequence for setting up an 800 MHz
bandwidth observation is:
mode('4096'); reset('800'); arm()
. If no receiver changes will happen during a session, this should only needs to be done once at the start of the session.
Once you have done the above steps, you can check that the input
power levels are ok by running guppi_adc_hist
at
the puppimaster command line. Important: Do not run
guppi_adc_hist
while recording data!
PUPPI has programmable attenuators that can be used to tweak
the input power levels via the program puppi_atten
.
Attenuation for pol A and B can be adjusted separately from 0 to
15.5 dB in 0.5 dB steps. puppi_atten
with no
arguments will return the current settings. To give new
attenuator settings, use -A
and/or -B
,
e.g.:
-
puppi_atten -A 13.5 -B 8.0
Running an observation (taking data)
The script puppi_observe
will run a coherent
fold-mode observation or incoherent search-mode observation.
The script takes one argument,
which is the par file to use for folding or just to get the source name
from. The full path should
be used to specify the par file, eg:
-
puppi_observe /home/gpu/tzpar/B1937+21.par
The script also accepts the following options (as well as
-h
for usage info):
-
-c
to take a cal mode scan. -
-b
to set the receiver band. Default is L-band, other currently allowed values are-b 327
,-b 430
, and-b S
. -
-f
To override the default center frequency for a band. -
-T
to set the scan length in seconds (default is 1 hour for pulsars and 90 sec for cals). -
-m
to override the default observing mode. Allowed values are COHERENT_FOLD, COHERENT_CAL, SEARCH, CAL, or RAW. -
-I
to take summed-polarization data. Default is full-Stokes. -
-n
To override the default number of channels. -
-p
To override the default polarization (e.g. if you want to record only one polarization channel). -
-P
To set the project ID. -
--full
(For observations at 327MHz only), to record data from the full PUPPI bandwidth instead of the center 60MHz, which correspond to the receiver band.
By default, this script assumes you have set up the PUPPI hardware and IF/LO settings such that:
- L-band: PUPPI center freq (IF=1200 MHz) is 1380 MHz; the bandwidth is 800 MHz.
- 430: PUPPI center freq (IF=750 MHz) is 430 MHz; the bandwidth is 100 MHz.
- 327: PUPPI center freq (IF=750 MHz) is 327 MHz; the bandwidth is 100 MHz.
- S-band: PUPPI center freq (IF=1200 MHz) is 2030 MHz; the bandwidth is 800 MHz.
To stop an observation before the specified scan length
finishes, run puppi_stop
.
Plotting/checking data
For incoherent mode, the data are recorded on puppimaster,
in /data/puppi/[project ID]
, where "project ID" is what
you give to the -P option of puppi_observe
. The data is
recorded as 8-bit PSRFITS and can be plotted using the standard
Presto, PSRCHIVE, or SIGPROC codes.