From FM Radio to 5G Signals: Unlocking Full-Band Reception with PlutoSDR
A complete practical guide to unlocking your PlutoSDR from 325MHz–3.8GHz to 70MHz–6GHz — covering firmware modification, GNU Radio spectrum analysis, antenna selection, and real-world signal reception.
1. Understanding PlutoSDR's Hardware Potential
The PlutoSDR is an entry-level software defined radio built around the AD936x series RF transceiver. While it ships in AD9363 mode (325MHz–3.8GHz), a simple firmware modification unlocks AD9364 mode (70MHz–6GHz). This "hardware unchanged, performance upgraded" capability stems from ADI's highly compatible chip design.
Key hardware specifications comparison:
| Parameter | AD9363 Mode | AD9364 Mode |
|---|---|---|
| Frequency range | 325MHz–3.8GHz | 70MHz–6GHz |
| Instantaneous bandwidth | ≤20MHz | ≤56MHz |
| Transceiver channels | 2Rx/2Tx | 1Rx/1Tx |
| Sample rate | 61.44 MSPS | 61.44 MSPS |
In AD9364 mode, field tests confirm:
- FM radio broadcast (88–108MHz) reception becomes viable
- 5GHz Wi-Fi signal analysis is possible
- Cellular signal monitoring extends to more frequency bands
2. Firmware Upgrade & Mode Switching
2.1 Preparation
- Ensure PlutoSDR firmware version ≥ 0.26
- Install USB drivers and a terminal tool (PuTTY / TeraTerm)
- Prepare a MicroUSB data cable
2.2 Mode Switching Procedure
Connect to the PlutoSDR via serial (default IP: 192.168.2.1) and execute the following commands:
# Log into the device (default credentials)
ssh root@192.168.2.1
password: analog
# Switch to AD9364 mode
fw_setenv attr_name compatible
fw_setenv attr_val "ad9364"
reboot
Verify the configuration:
fw_printenv attr_val
# Should return "ad9364"
2.3 Reverting to Factory Configuration
To restore AD9363 mode:
fw_setenv attr_name compatible
fw_setenv attr_val "ad9363"
pluto_reboot reset
3. Building a Real-Time Spectrum Analyzer with GNU Radio
3.1 Environment Setup
Ubuntu 20.04 LTS is recommended. Install dependencies:
sudo apt install gnuradio libiio-dev gr-iio python3-numpy
3.2 Basic Flowgraph Design
Create a GRC flowgraph with these blocks:
- PlutoSDR Source — configure center frequency and sample rate
- QT GUI Frequency Sink — spectrum visualization
- Low Pass Filter — signal preconditioning
- QT GUI Waterfall Sink — waterfall display
Typical parameter settings:
samp_rate = 2.5e6
center_freq = 98.5e6 # FM broadcast band
rf_bw = 2e6 # RF bandwidth
gain = 30 # Receive gain
3.3 Advanced Features
- FM demodulation: Add a WBFM Receive block
- Signal recording: Use a File Sink to save IQ data
- Automatic gain control: Configure AGC parameters
4. Antenna Selection & Optimization Tips
4.1 Frequency Bands vs. Antenna Types
| Target Band | Recommended Antenna Type | DIY Option |
|---|---|---|
| 70–300MHz | Whip antenna | Quarter-wave copper wire |
| 300MHz–1GHz | Log‑periodic antenna | Diamond antenna |
| 1GHz–6GHz | Patch / Horn antenna | Cantenna (waveguide) |
4.2 Measured Performance Comparison
SNR comparison for 2.4GHz Wi-Fi reception:
| Antenna Type | Average SNR (dB) | Peak Fluctuation (dB) |
|---|---|---|
| Stock whip antenna | 18.2 | ±3.5 |
| DIY diamond antenna | 22.7 | ±2.1 |
| Professional directional antenna | 28.4 | ±1.2 |
4.3 Antenna Usage Recommendations
- Low bands (<1GHz): Add a pre‑LNA
- High bands (>3GHz): Pay attention to feed line losses
- Multi‑band applications: Consider an active antenna solution
5. Practical Signal Reception Examples
5.1 FM Radio Reception
- Set the center frequency to a local FM station (e.g., 98.5 MHz)
- Configure WBFM demodulator parameters:
quad_rate = 384e3
audio_decim = 8
- Connect to an audio output device
5.2 Wi‑Fi Signal Analysis
- Channel scanning: Sweep 2.4GHz / 5GHz bands
- Spectral measurement: Identify channel occupancy
- Signal characteristic analysis: Observe modulation quality via constellation diagrams
5.3 Cellular Signal Monitoring
- GSM: 900 / 1800 MHz bands
- LTE: Common bands like B1, B3, B7
- 5G NR: Mid‑bands such as n78, n79
6. Performance Optimization & Troubleshooting
6.1 Common Issues and Solutions
- Spectral leakage: Adjust filter bandwidth to ensure it ≤ sample rate
- DC offset: Enable hardware calibration or software compensation
- Signal saturation: Reduce receive gain or add attenuation
6.2 Advanced Debugging Techniques
# Spectrum smoothing example
import numpy as np
from scipy import signal
def smooth_spectrum(psd, window_size=5):
window = np.ones(window_size) / window_size
return np.convolve(psd, window, mode='same')
6.3 Hardware Modification Suggestions
- Replace with a high‑precision TCXO (temperature‑compensated crystal oscillator)
- Add heatsinking for long‑term stability
- Use an external high‑quality power supply to reduce USB noise
7. Extended Application Scenarios
7.1 Education & Lab Work
- Radio propagation measurements
- Modulation scheme comparison experiments
- Basic MIMO system demonstrations
7.2 Engineering Applications
- IoT device signal analysis
- RF interference hunting
- Wireless protocol reverse engineering
7.3 Research & Innovation
- Machine learning for signal classification
- Adaptive filtering algorithm validation
- Prototyping novel modulation schemes
Hardware Support
Hardware optimization — firmware pre‑upgraded to support 70MHz–6GHz: