You are here: NRAO Public Wiki>CICADA Web>RUPPI)" title='Topic revision: 1 (2010-08-25 - 11:12:57)'>RoachUltimatePulsarProcessingInstrument(RUPPI) (2010-08-25, ShilpaBollineni) Edit wiki text Edit Attach Print version

Roach Ultimate Pulsar Processing Instrument (RUPPI)


The RUPPI is developed to upgrade from IBOB's and BEE2 in the WUPPI system to the ROACH. It is a hardware which was developed from reconfigurable off-the-shelf hardware platforms (ROACH) and software tools that allow deployment of astronomical signal processing systems. We built a single design that was put together all the designs form the WUPPI system. One of the main applications is upgrading to ROACH. The main difference between WUPPI and RUPPI would be the hardware they used and the data acquisition machine RUPPI uses (cicada2).

Project Goal

The goal of this project is to upgrade the WUPPI system with ROACH boards which can act as a pulsar machine for observations using the 43m telescope.

RUPPI User's Guide

What is RUPPI?

The Roach Ultimate Pulsar Processing Instrument is a backend hardware and has a custom FPGA. RUPPI is implemented using the custom "Gateware" that is compiled and loaded into the FPGA's.

RUPPI's specifications are:

  • 8 bit "real" sampling

  • 2 polarizations

  • 800 MHz bandwidth

  • 2048 spectral channels

  • Full Stokes parameters available

  • Reduced data rate modes:

  • Stokes I only

  • Frequency and time down sampling

  • On-line pulsar folding

User defined parameters

When using RUPPI, there are quite a few parameters that you can change to affect the way that RUPPI takes data. The vast majority of these parameters are passed to RUPPI (or the data acquisition software) by defining or setting FITS-header-like keyword/value pairs in a shared memory on "TOFU", the data acquisition machine. But when the whole system is moved to the 43m telescope we will be changing the server to "cicada2".

  • Integration time

  • FFT shift factor

  • Scale and Offset factors

  • Output processing

  • Frequency Decimation

  • Time decimation

  • Etc.

RUPPI software user's guide

Below are the instructions to get things up and running. This documentation is from Shilpa Bollineni and Glen Langston.

We donot have a RUPPI interpreter setup like WUPPI. Therefore any change in the parameters or with loading the designs has to be done manually on the xterm windows.

A - Try communicating with roach via telnet

1. Open a xterm window and connect to tofu. Login as yourself, and ping roach with the command:

[user@tofu ~]$ ping

PING ( 56(84) bytes of data.

64 bytes from icmp_seq=1 ttl=64 time=0.173 ms

64 bytes from icmp_seq=2 ttl=64 time=0.123 ms

64 bytes from icmp_seq=3 ttl=64 time=0.115 ms ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 5000ms rtt min/avg/max/mdev = .097/0.123/0.173/0.026 ms

This implies that the communication with the roach is good.

B - Open the xterm/console window to use for the ruppi software

1. Open a xterm window and connect to tofu. Login as yourself, and source the wuppi startup file. The WUPPI and RUPPI uses the same shared.

user@tofu ~]$ source /opt/64bit/wuppi/wuppi.csh

You should do that in each xterm that you will be using. Source wuppi.csh or wuppi.bash as appropriate for your login shell.

2. Programming the ROACH. First we have to make sure that the required bof file is copied into the roach network.

a) Open ipython on a ssh terminal in tofu and transfer the use the following commands to program command

[user@tofu ~]$ ipython

Python 2.5.1 (r251, Oct 1 2007, 12:04:58)

Type "copyright", "credits" or "license" for more information.

IPython 0.9.1 -- An enhanced Interactive

Python. ? -> Introduction and overview of IPython's features.

%quickref -> Quick reference. help -> Python's own help system.

object? -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import corr

In [2]: fpga=corr.katcp_wrapper.FpgaClient('',7147)

note: is the IP address of the roach and 7147 is the KATCP port.

In [3]: fpga.listbof() Out[3]: ['tut2_in_1ppstest_2010_Apr_25_2244.bof',

'parkes10may4mdl_2010_May_03_2139.bof', ...................................']

In [4]: fpga.progdev('filename.bof')

Out[4]: 'ok'

Now the bof file is running in the ROACH.

b) Go to part D below to start the ruppi monitor software

c) To exit out of this, press CTRL+D, then type exit

Here is the ROACHUser'sGuide.

C - Open the putty window to check the 10gig packet flow

Log into TOFU as root and give the command

[root@cicada2]$ tcpdump -i eth2 (the response when the packets are flowing)

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes

10:07:24.584486 IP > cicada2_10.10002: UDP, length 4096

10:07:24.626416 IP > cicada2_10.10002: UDP, length 4096

10:07:26.052479 IP > cicada2_10.10002: UDP, length 4096

36 packets captured 37 packets received by filter 0 packets dropped by kernel

root@tofu]$ tcpdump -i eth2 (the response when the packets are not flowing)

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening

on eth2, link-type EN10MB (Ethernet), capture size 96 bytes.

D - Open the putty window to start the 10gig data monitor

We have worked with different designs for which we have different methods of 10Gbe data transfer and data monitoring.

1. RUPPI million spectrometer design procedure:

open a ssh terminal on tofu and execute the following python script to see the spectrum


millionLinearScale.PNGRUPPI)/millionLinearScale.PNG" height="547" />

Note: a. Do not have the scale of the graph set to log format.
b. The script file is available in the directory /users/glangsto.

2. Parkes Spectrometer design procedure:

This design has the 1SFA packet format feature incorporated into it. Spectra of the RUPPI million Spectrometer:

After you are done with step B and we are sure about the .bof file loaded in the FPGA.

A step by step procedure for the RUPPI instrument with parkes spectrometer is available at RUPPIDataTakingGuide.
Topic revision: r1 - 2010-08-25, ShilpaBollineni

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback