A collection of tools for amateur radio astronomy observations
Marcus Leech, Science Radio Laboratories, Inc
A collection of tools, known as simple_ra has been developed as an open-source toolkit in support of small-scale radio astronomy observations, including:
Continuum in any of: total-power, differential, or correlation interferometer modes
The simple_ra application is based on the Gnu Radio SDR application framework, and provides a WXGUI graphical user interface, as well as extensive command-line configuration options, and a suite of post-processing tools.
The software can be made to run on single-core and multi-core systems with at least 2GB of memory, and a modern x86-class CPU running at 2.1GHz or faster.
The software can be installed on both Fedora and Ubuntu systems as well as Scientific Linux 6.3. There is an installer script that will be described later in this document.
SDR hardware is required that is compatible with the gr-osmosdr “plug in” for Gnu Radio, such hardware includes:
RTLSDR “dongle” devices
Ettus Research USRP devices
HackRF and BladeRF devices1
AirSpy devices, when they become available
For purposes of time synchronization, it is recommended that the system be configured to use NTP to synchronize the system time. Other services may also be used, they key thing is that the system time should be reasonably accurate at all times so that LMST time-stamps are accurate.
During installation, the system needs to be connected to the Internet, to allow software packages to be downloaded and installed.
The data-logging process produces several megabytes per day of log files, depending on configuration.
There is an installation script at:
This script will install the Gnu Radio prerequisites, as well as simple_ra, and related tools.
It should run on recent Fedora, Ubuntu, RedHat, and SL6 distributions.
Once it has been downloaded, it can be run as a shell script:
chmod 755 install-gr-ratools
The simple_ra command
The command that is used to start the simple_ra application is called simple_ra . Assuming that you've placed your $HOME/bin directory into your command search path, you can start up the application by simply typing simple_ra at the command prompt.
The simple_ra command takes a plethora of command-line parameters, as shown below:
This sets the sample-rate that will be used by the hardware for the device(s) attached to the application to rate, in Hz.
This sets the device ID of the main channel to device. See DEVICE NAMING below for more details.
This sets the device ID of the secondary channel to device. See DEVICE NAMING below for more details. If a real hardware device is specified, then the application automatically enables either differential mode (where the –devid2 channel is a terminated reference), or interferometer mode, depending on the setting of –interf.
This sets the longitude used by the LMST computations to decimal-longitude. Longitudes that are notionally “west” are expressed as negative numbers.
This sets the size of the FFT used in spectral logging to size. The size of the instantaneous spectral display, however, is always 2048. This setting should, for efficiency reasons, use a size that is a power of 2, and 1024 is probably the smallest useful size.
This sets the operating, tuned, frequency, in Hz, to frequency. Exponential notation is allowed. So that for example, 1GHz can be entered as 1.0e9.
Set the hardware RF gain to gain. Like –srate and –frequency, this applies to both devices if two devices are used.
This sets the detector bandwidth, in Hz, to detector-bandwidth. This setting must be less than the sample rate, and is often set to about 80% of the notional sample rate. It can also be used for spectral shaping to a certain degree in RFI situations.
This sets the DC gain to dc-gain. The value provided must be one of [100,1000,10000,100000].
This sets the logging interval, in seconds for logged data, to logging-rate. A value of 5 is typical.
For some types of hardware, this can be used to tell the drivers what the estimated parts-per-million frequency offset is. The given ppm-estimate value is a floating-point number.
This sets the filename used to send high-speed detector data to an external FIFO for other types of real-time processing. Normally, this is set to /dev/null, but it can be set to any legitimate file using fifoname. Typically, some external script would set up a FIFO, and the FIFO reader, and then tell simple_ra what the name of this FIFO is.
This option is used when the tuned frequency and sky frequency are different. For example, for a standard commercial C-band feed, the tuned frequency range would be 950-1450 MHz, typically, but the sky frequency is 2750Mhz higher. If this is the case, use sky-offset to configure for the use of a down-converter before the receiver hardware. This affects the frequency that is logged in logfiles, as well as de-dispersion calculations for pulsar monitoring.
The software produces two formats of logging files, one of which is in a .CSV format for use with programs like Excel. The experiment-name parameter is used to add a suffix to the .CSV files giving the (abbreviated) experiment name.
This sets the device name to calib-device-name (typically a USB serial device like /dev/ttyUSB0 or /dev/ttyACM0) used to control the calibration on/off signals, if they are used.
This sets the hardware baud rate of the calibrator-control device to calib-device-baud. For a USB based serial device, this setting is often not meaningful, but should be specified anyway.
This sets the character-string to send to the calibrator-control device to calib-device-onstring for turning the calibrator source ON.
This sets the character-string to send to the calibrator-control device to calib-device-offstring for turning the calibrator source OFF.
This sets the initialization string for the calibrator-control device to calib-device-initstring. This is typically used at startup time to initialize the calibration-control device to a known state.
This sets the interval for automatic calibration run to auto-calib-interval, in seconds.
This sets the ON time for automatic calibration to auto-calib-ontime, in seconds.
This enables advanced spectral processing, including notch filters, spectral-flattening, and de-dispersion.
This enables meaningful spectral display. Without this, there is still a spectral display, but it runs at a very low rate, to conserve CPU cycles.
This enables spectral logging.
This flag is used to disable the detector pre-filter (set with –dbw above). Setting this option reduces the CPU footprint a small amount.
This flag is used to disable total-power (or differential or interferometer) detector logging.
This flag enables a correlation-interferometer mode where the two devices (--devid1 and –devid2) correspond to two coherent hardware channels, and the output is derived using a cross-multiply between the two channels, subject to configurable delays and phase adjustment. This obviously requires hardware that is coherent, and can deliver samples that are time-aligned.
This flag controls the initial state of the pulsar processing. By default, pulsar processing is turned OFF.
This sets the file prefix to fileprefix for purposes of logging and other functions. Normally, simple_ra places log files in $HOME/simple_ra_data/.... But if fileprefix is specified, data files are instead placed in $HOME/simple_ra_data/fileprefix/....
The --devid parameter accepts a device name in the format used by the gr-osmodr
"generic" source block, which supports a number of device types, including:
Ettus Research UHD/USRP devices