In this example, we use the USRP B210 as the sub-6 GHz SDR. The Pi-Radio FR3 2-ch SDR front-end is interfaced with this USRP, extending its operation into the FR3 bands. This example is based on the OFDM reference example from GNU Radio.
Download the Repo: https://github.com/pi-radio/gnu-radio-demos
The relevant file is "ofdm_tx_rx.grc". We have created and tested this demo with GNU Radio version 3.10. While we recommend running this demo using two SDRs (one for the TX, one for the RX), you can run everything on the same SDR as well. This demo is a simplex (i.e., uni-directional) system. A continuous stream of data is sent from the TX to the RX, without a reverse path for acknowledgements or the like.
Step 1: Run the demo in FR1 Cabled Loopback: Connect a 20dB SMA attenuator to each of the TX and RX ports (RF A) on the USRP. Connect the TX and RX using an SMA cable (the total attenuation between the TX and RX is therefore 40dB). Do not connect the Pi-Radio system in the loop at all. Run the file in GNU Radio Companion (GRC). You should observe something like this, below.
Make the following observations:
Top-Right: Observe the spectrum of the received signal. The total bandwidth is 5 MHz, of which 4 MHz is occupied. Note that we have limited the bandwidth to 5 MHz because of the ability of the host computer to crunch the data in real-time.
Bottom-Right: These are the time-domain IQs of the received signal. Observe that clipping is not taking place. If clipping were taking place, the amplitude would hit +/- 1.
Bottom-Left: This is the equalized constellation of the OFDM signal. Note that we are using QPSK. Observe the excellent EVM.
Top-Left: This is a scrolling "waterfall graph" of the received signal, with time on the Y-axis, and frequency on the X-axis.
Bottom: Observe the sliders that show that we have configured both the TX and RX gain on the USRP B210 to 55.
This is the baseline FR1 system that you first need to get working. Spend some time looking at the GRC flowgraph. Note that in this example, the USRP is operating with a 1 GHz center frequency. Play around with different gain values and observe the behavior of the system. Once you're satisfied, revert to the original gain settings (TX and RX gain set to 55), and proceed to Step 2.
Step 2: Add the Pi-Radio FR3 front-end to the signal chain:
Connect the TX signal from the USRP to the "FR1 IF IN 1" port of the Pi-Radio system. Keep the 20 dB attenuator in this signal chain. It is also a very good idea to place a low-pass filter (cutoff of approximately 1.4 GHz) in this signal path.
The Pi-Radio system will output the FR3 signal from the "FR3 RF OUT 1" port on the back side. If you have a spectrum analyzer that operates at the FR3 bands, you can "see" this signal. Take precautions not to damage your spectrum analyzer. The TX-side of the Pi-Radio system up-converts the FR1 signal to FR3. Please read the FAQ below for tips to prevent hardware damage.
Connect the "FR3 RF OUT 1" port to the "FR3 RF IN 1" port, using 40 dB of attenuation in this signal path. To do this, attach a 20dB attenuator to the "FR3 RF OUT 1" port, and another 20dB attenuator to the "FR3 RF IN 1" port, which adds up to the required 40dB. Connect them using an SMA cable. Ensure that the attenuators and cables are rated for FR3 operation.
Take the output signal from the "FR1 IF OUT 1" port of the Pi-Radio system and feed it back into the RX port of the USRP. Make sure that you have 20dB attenuation in this path. It is also a very good idea to place a low-pass filter (cutoff of approximately 1.4 GHz) in this signal path.
The figure below shows what your setup should look like. Note that in this diagram, we have assumed that the TX side consists of a USRP and a Pi-Radio FR3 front-end box. The RX side uses independent hardware.
Double-check these connections before running the flowgraph. Please read the FAQs at the end of this document to learn about the precautions you need to take to avoid damaging the USRP and/or the Pi-Radio system.
Frequently Asked Questions (FAQs)
What if I have a USRP other than the B210? You can easily modify this example for other models of the USRP. Pay attention to the gain settings and sample rate. It shouldn't take you more than a few minutes to get it working for different USRP models.
Should I run this demo on two separate SDRs or just one SDR in cabled loopback mode? Either way is fine. However, real-world SDRs like the USRP and the Pi-Radio front-end have some self-leakage between their TX channel(s) and their RX channel(s). Therefore if you run the experiment using just one SDR in cabled loopback mode, the receiver will receive the sum of two signals: 1) the self-leakage and 2) the actual received signal. This can affect the performance. If you have two SDRs, we highly recommend using one SDR for the TX and the other for the RX.
Can I run this experiment over the air? Yes, if you have an experimental license to transmit over the relevant frequency. Please note that a lot of the FR3 bands are controlled, so be careful not to break the law in your jurisdiction. Pay attention to the frequency and the EIRP of your transmitted signal.
What precautions do I need to take to avoid hardware damage?
Consider the TX side. When the input FR1 signal is active on the "FR1 IF IN" port, the Pi-Radio system will produce an output signal on the corresponding "FR3 RF OUT" port. This output signal *must* be fed into a terminated load (for example, A. a 50 ohm attenuator; B. a spectrum analyzer; or C. the "FR3 RF IN" port using a 40 dB attenuation). Failure to do this will damage the FR3 power amplifier on the Pi-Radio TX chain.
Consider the RX side: The maximum input power that you can feed into the "FR3 RF IN" port is -20dBm. Exceeding this limit will damage the LNA on the Pi-Radio system. This is why we recommend that in cabled loopback mode, you use 40dB of attenuation between the "FR3 RF OUT" and "FR3 RF IN" ports. Alternatively, if you are going over-the-air (OTA), please take into account the path loss between the TX and RX antennas, as well as the antenna gains. Make sure that the loss is at least 40dB, otherwise damage will occur.
ESD Protection: When handling the USRP and/or the Pi-Radio system, you must follow ESD protection guidelines. Ground your wrist, and always use nitrile gloves when touching the hardware (including the SMA cables).