Software+Installation

__ **Software Installation** __

This guide assumes you are using Ubuntu 11.04. The software has been tested on Arch Linux, but installation on Arch will not be covered.

The SDR Jove software requires GNU Radio. The version used to develop and test the software was GNU Radio version 3.3.1git-144-gf2940603d. Using a version older than this is not recommended. I recommend downloading the latest copy of GNU Radio from the git or svn repositories.
 * Dependencies **

First, install the following packages from the Synaptic:

 sudo apt-get build-dep gnuradio  sudo apt-get install python-dev  sudo apt-get install autoconf automake autotools-dev  sudo apt-get install libboost-dev libboost-python-dev libboost-program-options-dev  sudo apt-get install guile guile-dev

Clone the latest GNU Radio version by issuing the following command:

git clone http://gnuradio.org/git/gnuradio.git

Once these are installed, change directories to where GNU Radio was cloned to, and run:

 ./bootstrap ./configure make make check <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">sudo make install

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The firmware for the USB transceiver is already built, but if you would like to recompile it, you will need the Small Device C Compile (SDCC).

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> sudo apt-get install sdcc

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">To get a copy of the SDR Jove software, use the following command to clone to the repository: <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> git clone git://gitorious.org/sdrjove/sdrjove.git <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">This will copy the directory structure of SDR Jove to your current directory. The directory looks like the following:

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/sdrjove
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /debug -- Development Tools, fx2load, udev rule file
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /fx2_firmware -- Firmware source files for the Cypress FX2 USB Transceiver
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /gui -- Python files for the GUI and GNU Radio
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /hardware -- Hardware files, FPGA source, schematics, etc.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /usb_driver -- Source code for the usb driver.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The debug folder contains the following files:

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/debug <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">fx2lib). Run “sudo python setup.py install” in this directory to install. <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> donbusb.iic --The firmware that comes with the Nexys2 board (provided by <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> Digilent) <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">It sets up a udev rule to set permissions on the receiver when it is plugged into the USB port.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /fx2 --Contains python files to load firmware onto the FX2 (from
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> load.py --Loads the SDRJove firmware to the FX2’s RAM
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> 30-sdrjove.rules --Move this file to /etc/udev/rules.d/
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> Vend_Ax.hex --Stage 2 loader to download new firmware to the FX2 EEPROM.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The fx2_firmware directory contains the following directories:

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/fx2_firmware
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /cystream --Firmware used to stream data from the FX2.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /fx2lib --Library to write firmware for the FX2.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The gui directory contains the following directories and files:

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/gui <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">the filename and time are appended to this file.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> sdrjove.py --This is the main GUI file. Run this file to start the application.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> time_database.txt --Timestamp database. Any time the software writes data to a file,
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> __init__.py --This python this directory is part of a package.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /gnu_radio --GNU Radio processing blocks. Described below.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> /gui_components --GUI component files. Each frame of the GUI is contained in a separate python file.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The gnu_radio directory of the gui/ directory contains the GNU Radio python files and the GRC files used to generate most of the code.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/gnu_radio
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> __init__.py --Tells python this is part of a package.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> live_mode.py --Python script to use the live mode from the GUI.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> live_mode.grc --GRC file to describe the flow of the live mode
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> radio_astronomy.py --Python script to use the radio astronomy mode from the GUI.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> radio_astronomy.grc --GRC file to describe the flow of radio astronomy mode.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> record_mode.py --Python script to use record mode from the GUI.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> record_mode.grc --GRC file to describe record mode.

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">The usb_driver directory contains the following files:

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">/usb_driver
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> dataGrabber.c --The main driver file.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> dataGrabber_timing_test.c --Source for running tests to time the driver.
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> Makefile --Makefile to compile the driver