Discovering SDR with GNU Radio and USRP B205Mini.

09 Dec.,2024

 

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.

Check now

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 AD 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.

How Does NI USRP Hardware Work?

3a. Host-Only USRP

Figure 2: NI USRP-

Following a common SDR architecture, USRP hardware implements a direct conversion analog front end with high-speed analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) featuring a fixed-personality FPGA for the digital downconversion (DDC) and digital upconversion (DUC) steps. The receiver chain begins with a highly sensitive analog front end that can receive very small signals and digitize them using direct downconversion to in-phase (I) and quadrature (Q) baseband signals. Downconversion is followed by high-speed analog-to-digital conversion and a DDC that reduces the sampling rate and packetizes I and Q for transmission to a host computer using Gigabit Ethernet for further processing. The transmitter chain starts with the host computer where I and Q are generated and transferred over the Ethernet cable to the USRP hardware. A DUC prepares the signals for the DAC after which I-Q mixing occurs to directly upconvert the signals to produce an RF frequency signal, which is then amplified and transmitted.

 

Highmesh Product Page

Figure 3: USRP- System-Level Diagram

 

3b. USRP Devices with Programmable FPGAs

Figure 4: NI USRP-

The NI USRP-294x/295x devices combine two full-duplex transmit and receive channels with up to 160 MHz/channel of real-time bandwidth and a large DSP-oriented Kintex-7 FPGA in a half-1U rack-mountable form factor. The analog RF front end interfaces with the large Kintex-7 410T FPGA through dual ADCs and DACs clocked at 120 MS/s. 

Each RF channel includes a switch allowing for time division duplex (TDD) operation on a single antenna using the TX 1 RX1 port, or frequency division duplex (FDD) operation using two ports, TX1 and RX2. 

The NI USRP-294x/295x devices cover from 10 MHz to 6 GHz frequency range with user-programmable digital IO lines for controlling external devices. The Kintex-7 FPGA is a reconfigurable LabVIEW FPGA target that incorporates DSP48 coprocessing for high-rate, low-latency applications. The PCI Express x4 connection back to the system controller allows up to 800 MB/s of streaming data transfer back to your desktop or PXI chassis, and 200 MB/s to your laptop. This connection allows up to 17 USRP devices to be cabled back to a single PXI Express chassis, which can then be daisy chained together for high-bandwidth, high-channel-count applications.

Figure 5: USRP- System-Level Diagram

 

3c. NI USRP- Stand-Alone Device

Figure 6: NI USRP-

The stand-alone NI USRP- includes an onboard processor, FPGA, and RF all in one form factor. The USRP- is built on a heterogeneous processing architecture with an onboard Intel Core i7 processor running the NI Linux Real-Time OS. It is a 2x2 radio that covers frequencies between 10 MHz and 6 GHz with the 160 MHz bandwidth and adds an x86 processor to form stand-alone system operation, which can be targeted to deterministically perform processing and program the Xilinx Kintex 470 FPGA all from a single design environment. The USRP- is also equipped with a GPS-disciplined 10 MHz oven-controlled crystal oscillator (OCXO) Reference Clock.

 

Figure 7: USRP- System-Level Diagram

For more usrp radioinformation, please contact us. We will provide professional answers.