Software+Usage

Software Usage

When initially setting up the SDRJove hardware, the first step is to download the FPGA bit file to the Nexys2 board. The recommended way to do this is with the Digilent Adept tool. This tool runs on Windows and can be downloaded here: [] If doing debugging, the trace connecting the FX2 chip to the EEPROM can be cut. To do this, first located JP6 located next to the FX2 USB chip.

THIS IS NOT REQUIRED. ONLY CUT THIS TRACE IF DEBUGGING USB FIRMWARE. Flip the board over and notice there is a trace connecting both pins of JP6. Using an X-Acto knive or similar tool, cut this trace. It can be verified that the trace is disconnected by plugging the board into the USB port. The board will not power on. By running the lsusb command, it can be verified that a default Cypress FX2 chip is connected. Once this is verified, disconnect the USB power and solder two header pins to JP6. Using the extra jumper located on the “Jump Storage” jumper, the FX2 EEPROM can be reconnected. Keep this jumper connected, and connect to the USB bus. Again using the lsusb command, it can be verified that the device enumerates as “Digilent.” The device should also power on.

The next thing to do prior to using the software is to load the FX2 firmware onto the onboard FX2 ROM on the Nexys2 board. You will need the Vend_Ax.hex file in the debug/ folder. You will also need to install the fxload program from the Ubuntu repository. Do this with the following command: sudo apt-get install fxload Next, connect the Nexy2 to the USB bus. If you cut the USB EEPROM trace as outlined above, make sure it is connected. Then, run lsusb to determine the bus and device numbers from usbfs. You may need to remove the usbtest kernel module using: sudo rmmod usbtest Then issue the following command: sudo fxload -D /dev/bus/usb/XXX/YYY -s ~/SDR_JOVE/debug/Vend_Ax.hex -t fx2lp -I ~/SDR_JOVE/fx2_firmware/cystream/fx2_firmware.ihx -c 0x01 where XXX is the bus number from lsusb and YYY is the device number from lsusb. Note that the paths to Vend_Ax.hex and fx2_firmware.ihx assume SDRJove was cloned to your home directory. Note: you may have to run this command twice if you receive an error the first time. This will write the SDRJove FX2 firmware to the EEPROM so its configuration will be remembered each time the device is plugged in. To temporarily load the new firmware, use the load.py file located in the debug directory. Using this program, firmware can be loaded onto the FX2, but it is erased each time the Nexys board is unplugged. When doing this, you will need to make sure the jumper on JP6 is disconnected prior to running load.py. Also, you may need to remove the usbtest kernel module using:  sudo rmmod usbtest <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Next, unplug and reconnect the Nexys board to the USB bus. Run lsusb to make sure a new “Cystream” device is connected, with VID of 0x04b4 and PID of 0x0410.

<span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Next, the USB driver must be compiled. Change directories to the usb_driver directory and type “make” to compile. <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">You will also need to copy the udev rule to the correct directory. Change directories into the debug/ directory and issue the following command: <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;"> sudo cp 30-sdrjove.rule /etc/udev/rule.d/ <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Next, make sure all the hardware is connected and change directories to the “gui” directory. Type “./sdrjove.py” to run the application.

<span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">The software can be run in one of four modes of operation. Those modes are:
 * <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Real Time Mode
 * <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Full Record Mode
 * <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Radio Astronomy Mode
 * <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Data Analysis Mode

<span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">In Real Time mode, the user can select to display a waterfall plot or mix a portion of the bandwidth to audio, which can optionally be saved as a wav file or output through the speakers. When the audio is getting mixed down, the 1MHz signal is mixed with a digital 700kHz oscillator to mix the signal to the audio region. This mixed frequency is adjustable in the live mode configuration. The “adjust mixer frequency” slider in the configuration will change the mixer frequency by the specified amount (in hertz). Note: audio output through speakers is experimental, and highly dependent on the audio hardware and software installed.

<span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">In Full Record mode, the data stream can be recorded to a file, and a live waterfall plot of the band can be displayed. <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">In Radio Astronomy mode, the integrated RMS signal strength over the entire band is displayed as a function of time. This stream of data can be optionally be saved to a file. This file is saved as a binary file with 16 bits (2 bytes) allocated to each data point. <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;"> In Data Analysis Mode, a data file from full record mode can be run through radio astronomy mode to analyze the power in the signal. <span style="display: block; font-family: 'Times New Roman',Times,serif; font-size: 120%; text-align: left;">Both full record and live mode require configuration before they can be used. Selecting a button on the toolbar will select that mode.