Overview
This implementation of a Software Defined Radio is based on the ADRV9361 System on Module hardware. This provides a powerful platform for investigating performance and capabilities.
Initially, the system was implemented using the GNU Radio software for the radio functionality with the intention that this would be replaced by programming the FPGA logic on the hardware. Linux was used for the kernel drivers and for the high-level application development.
GNU Radio is an open software platform, designed to help people build a software defined radio. It offers various building blocks for signal processing, as well as methods to manipulate the data flow between blocks. Functions that are available include mathematical operations, FFTs, IFFTs, filters modulators, control blocks, scramblers and channel coding such as convolutional encoding.
The GNU radio software architecture includes two components. The first is a set of various C++ blocks, which implement the signal processing operations such as filtering and modulation. The second one is the framework implemented as Python scripts to control the data flow among blocks.
Although the hardware can provide 2x2 MIMO, the software, at present, assumes only a single antenna implementation. It also only implements FDD operation.
Software Installation
Prerequisites
Hardware
The development kits used were the Avnet picoZed SDR which are now produced by Analog Devices. Due to this change the new part numbers are ADRV9361-Z7035 for the module and ADRV1CRR-FMC for the carrier card. To implement a full link two sets of these boards are required.
A supporting PC workstation is also required for each development kit. Each PC should be running Ubuntu 16.04 and have GNU Radio installed. Version 3.7.11 of GNU Radio was used for development. Additionally, network connectivity between the development kits and the PC are required.
Development Kit Configuration
Each development kit runs its own customised ADI Linux Distribution the image of which must be installed on to and SD card and placed into either the module or the carrier SD card interfaces. This ADI distribution, along with other useful documentation, may be downloaded from https://wiki.analog.com/resources/eval/user-guides/adrv936x_rfsom/user-guide/software
Once the development kit is up and running it is important to make sure that the Industrial I/O subsystems (IIO) software is installed as this is required to provide data connectivity from the AD 9361 over the network interface. The IIO software and documentation can be found at https://wiki.analog.com/software/linux/docs/iio/iio
IIO Configuration
To properly configure the IIO software please first copy the supplied Demo/Devkit_files folder to a convenient place on the development kit.
To help with the configuration of the ADI IIO Oscilloscope software we provide the file Inter-IoT_IIO_profile.ini which can be uploaded using the File-> Load/Save Profile tab in the IIO GUI.
Note that the correct path to the FIR filter configuration must be configured correctly in FMcomms2/3/4 tab so that it points to the supplied file min_rate_qband.ftr.
Supporting PC configuration
The supporting PC should be running Ubuntu with GNU Radio installed. It is recommended to install GNU Radio using PyBombs as this makes installation of the additional required packages easier. Additional GNU Radio packages required are: * gr-eventsteam * gr-burst * gr-iio
Running the demo
- Find the IP addresses of the devkits
- Edit the IP addresses in the transmit and receive *.grc files so that the IIO blocks can find the correct dev kit
- Run the supplied zmq_tuntap.sh bash file
- Run the supplied run_ofdm.sh bash file.