Discovering SDR with GNU Radio and USRP B205Mini.
This post will be different from what I usually write. In general, in my posts, I talk about low-level algorithms and FPGA implementations to do digital signal processing, but this time I will use software to configure an specific purpose board. The board I will use is the USRP B205 Mini, a board from Ettus Research that you can found on Digilent store. To configure this board I am going to use GNU Radio. Later we will talk about this software, but I had never used it before and I think is a very good option to learn digital signal processing with a very friendly graphical interface.
First, let’s talk about the board. The board is the little sister of the Ettus SDR (Software Defined radio) boards. B205 Mini is based on a Spartan6 LX150 as a controller and the Analog Devices AD9364 as RF Transceiver. This transceiver allows us to transmit and receive signals from 70Mhz to 6Ghz, with a bandwidth from 200kHz to 56Mhz. That is, I can configure the receiver center frequency from 70Mhz to 6GHz, that is like a frequency offset that I can subtract. Then, the signal that before was modulated at, for example 1GHz, is demodulated to 1GHz lower frequency, and now is located at we know as base frequency, then, the FPGA receive that signal on base band and can apply filters or any signal processing algorithm.
Algorithms or anything what we would to do with this board, can be configured from C code and drivers provided by Ettus, or with a third party software. In my opinion, use C code, allowing you to manage all the configurations of the transceiver, is a very good option to develop complex SDR demodulation, or for engineers with a well knowledge on SDR and communications. For the rest of mortals, including me, a software that makes easy the transceiver configurations, and let you focus on the demodulation technique, to experiment with different filters, are the best choice, and that is what I did.
The software I used to configure B205 Mini is GNU Radio, and as I said before, after of days working with this software, I am very impressed of how easy can be configured the B205 Mini to receive an FM radio signal, or even generate a FM transmitter and send data to another receiver. Blocks to configure Ettus devices are included on GNU Radio by default so the only think we have to do is connect the board to our PC, install all the drivers, and start to design.
When I started my degree on University, transmit a signal without wires fascinates me. Now I understand how is that possible, but I have never try to do it on my self, and this is a great opportunity to try it. To do that, I will use B205 Mini as a transmitter, and also I need a receiver, and although I can use the same board to perform an air loop-back, that will not allow me to separate the transmitter and the receiver. As a receiver, since I do not have a radio on my home (I don’t know when it happens…), I will use another SDR receiver, in this case, the RTL-SDR.
On the transmitter side, the diagram I used is very simple. Signal I want to transmit is a pure tone of 2 kHz. This tone has to be modulated to a high frequency. To choose that frequency, with the help of Gqrx software, I search a band where nothing was received, and in my case, 99.8Mhz is a free band, so I configure the emitter center frequency on 100.1 MHz. The rest of the parameters will remain as default. Then, an FM modulator has to be added to the design, and finally the signal source, that is the 2kHz pure tone.
On the receiver side, I have used Gqrx, with RTL-SDR dongle. As we can see on the image, at 100.1Mhz, there is a signal received. Around 100.1Mhz, we can see several radio stations transmissions at 99.0 MHz, or 99.5MHz.
With this basic example, we can modify the signal source to, for example, an audio file, then filter it with a low pass filter to ensure a limited bandwidth and transmit this audio file. If what you want is receive an FM signal, the diagram is a little bit more complicated, and some filters are added to clean the audio spectrum.
To me, who I am not a radio enthusiast, the opportunity to create a receiver or a transmitter is very cool. As I said before, if you are a communications engineer with long experience on SDR, this board offers you a lot of possibilities. On the other side, if you are a hobbyist, and the only thing you want to do is receive signals up to 2GHz, RTL-SDR dongles maybe is the best choice by cost, but even been you a hobbiyst, you want to transmit signals, or experiment with high frequency signals this board is also a good choice.