Table of Contents
SDR with the ADALM-Pluto …………………………………………………….. 2
Foreword …………………………………………………………………………… 10
Motivation – Why SDR? Why Pluto? …………………………… 11
Chapter 1 – Introduction to SDR and the AD936x Family ………….. 12
Chapter 2 – The ADALM-Pluto in Detail ………………………………. 15
2.1 Overview of the Hardware Architecture ……………………………. 15
2.2 The RF Signal Path (AD9363) in Detail …………………………….. 16
2.3 Key Components on the Pluto Board ……………………………….. 18
2.4 AD9363 vs. AD9361 vs. AD9364 – Clear Comparison ………. 19
2.5 Extension: Enabling AD9361 Mode on the Pluto ……………… 19
2.6 SDR Alternatives to the ADALM-Pluto ……………………………. 20
2.7 Comparison Table of Relevant SDR Platforms …………………. 22
2.7.1 Alternative Development Boards ……………………………….. 23
Chapter 3 – Signal Paths, I/Q Signals and DSP Fundamentals ……… 24
3.1 The Receive Path (RX Chain) in the AD9363 ……………………. 24
3.2 What Are I/Q Signals? …………………………………………………… 25
3.3 Sampling Rate, Nyquist and Aliasing ………………………………. 26
3.4 The Digital Filter Chain in the AD9363 …………………………… 27
3.5 AGC – Automatic Gain Control ……………………………………… 28
3.6 Measurements with the Pluto – What Signals Look Like …… 29
3.7 Typical Sources of Error ……………………………………………….. 34
Chapter 4 – Installation & Tools for the ADALM-Pluto …………… 35
4.1 Pluto Firmware, Drivers and USB Ethernet ……………………… 35
4.2 libiio & pyadi-iio – The Core Communication Layer …………. 36
4.3 Installation on Linux (Ubuntu 24.04) ………………………………. 36
4.4 Setup on macOS ………………………………………………………….. 37
4.5 GNU Radio Installation ………………………………………………… 37
4.6 MATLAB/Simulink & Octave ………………………………………….. 39
4.7 Satsagen Setup ……………………………………………………………. 39
4.8 Device Troubleshooting ……………………………………………….. 40
Chapter 5 – Advanced Digital Signal Processing ……………………. 42
5.1 Baseband Signals and Complex Representation ………………. 42
5.2 FFT, Windowing and Spectral Analysis ……………………………. 43
5.3 FIR Design, Decimation and Bandwidth ………………………….. 44
5.4 IQ Imbalance and DC Offset ………………………………………….. 45
5.5 Timing Recovery and Carrier Recovery ……………………………. 46
5.6 Noise Sources and SNR ………………………………………………… 47
5.7 Summary – Key DSP Concepts ………………………………………. 48
Chapter 6 – Measurement Setup and Laboratory Practice ………….. 49
6.1 Cabling – The Basis of Every Good Measurement …………….. 49
6.2 Signal Levels, Attenuation and Safe TX Measurements …….. 50
6.3 Useful RF Components for Pluto Measurements ……………… 51
6.4 First Real Measurement – Pluto Noise Floor ………………….. 52
6.5 Pluto as a Simple Signal Generator ………………………………… 54
6.6 Pluto in Loopback Mode – Ideal for DSP Testing …………….. 55
6.7 Satsagen – Pluto as a Spectrum Analyzer ………………………. 56
6.8 Typical Errors in Laboratory Operation ………………………….. 56
Chapter 7 – First Steps with the Pluto ………………………………… 58
7.1 Establishing a Connection ……………………………………………. 58
7.2 First Python Connection (pyadi-iio) ……………………………….. 59
7.3 Receiving First Samples (RX) ……………………………………….. 59
7.4 Displaying the First Spectrum (FFT) ………………………………. 60
7.5 Recording and Storing Samples …………………………………….. 61
7.7 Receiving and Displaying in Real Time ………………………….. 62
7.8 Typical Beginner Mistakes – and How to Avoid Them ………. 64
Chapter 8 – Modulation Schemes ………………………………………. 66
8.1 Amplitude Modulation (AM) ………………………………………….. 66
8.2 Frequency Modulation (FM) ………………………………………….. 67
8.3 Single Sideband (SSB) …………………………………………………. 69
8.4 Digital Modulation: ASK, FSK, PSK, QAM ……………………… 70
8.4.1 Amplitude Shift Keying (ASK) …………………………………… 70
8.4.2 Frequency Shift Keying (FSK) …………………………………… 70
8.4.3 Phase Shift Keying (PSK) ………………………………………….. 71
8.4.4 Quadrature Amplitude Modulation (QAM) …………………. 72
8.5 OFDM – Orthogonal Frequency Division Multiplexing ………. 74
8.6 LoRa – Chirp Spread Spectrum ……………………………………… 75
8.7 Practical Modulation Analysis with the Pluto ………………….. 76
8.8 Typical Modulation Errors ……………………………………………. 76
Chapter 9 – Satellite Reception with the Pluto ……………………… 78
9.1 Satellite Types Receivable with the Pluto ………………………. 78
9.2 The Key Principle: Doppler Effect ………………………………….. 81
9.3 NOAA APT (137 MHz) – Classic Weather Images …………… 82
9.4 METEOR-M2 LRPT (137.1 / 137.9 MHz) ………………………… 83
9.5 HRPT (1.7 GHz) – High-Resolution Weather Images ………. 83
9.6 ISS Signals (ARISS & ICARUS) ……………………………………. 83
9.7 ICARUS Experiment (401–403 MHz) ……………………………… 84
9.8 Recording Complete Satellite Passes …………………………….. 85
9.9 Antennas for Satellite Reception ………………………………….. 85
9.10 Practical Python Examples ………………………………………… 86
9.11 Typical Errors in Satellite Reception ……………………………. 86
Chapter 10 – Amateur Radio with SDR ………………………………… 88
10.1 FM, SSB and CW – Classic Operating Modes ……………….. 88
10.2 APRS (1200 Baud AX.25 on 145.825 MHz) ………………….. 89
10.3 ADS-B (1090 MHz Aircraft Tracking) …………………………… 91
10.4 LoRa Experiments in Amateur Radio ……………………………. 92
10.5 Operation with Power Amplifiers, Filters & Safety ………… 92
10.6 QO-100 (Es’hail-2) ……………………………………………………. 93
10.7 Typical Amateur Radio Projects with the Pluto …………….. 94
Chapter 11 – Practical Projects with the ADALM-Pluto ………….. 95
11.1 Pluto as a Spectrum Analyzer …………………………………….. 95
11.2 Pluto as a Signal Generator (CW & Modulated TX) ………… 97
11.3 Pluto as a Full Transceiver (Simplex) …………………………… 98
11.4 Designing a Custom Digital Protocol ……………………………. 98
11.5 ADS-B Radar Project (1090 MHz) ………………………………. 99
11.6 LoRa Decoder …………………………………………………………… 100
11.7 Step-by-Step RF Measurements …………………………………. 101
Appendix A – Python Reference for the ADALM-Pluto ………….. 102
A.1 Installation & Environment ………………………………………….. 102
A.1.1 Windows – IMPORTANT: 32-bit Python …………………….. 102
A.1.2 Linux (Ubuntu 24.04 Notice!) …………………………………… 102
A.1.3 macOS …………………………………………………………………… 103
A.2 Pluto Basics – Connect, Read, Write ……………………………… 103
A.2.1 Testing the Connection …………………………………………… 103
A.2.2 Basic RX Configuration ………………………………………….. 103
A.2.3 Basic TX Configuration ………………………………………….. 103
A.3 RX – Analysis, FFT, DSP …………………………………………….. 104
A.3.1 FFT Spectrum (Standard) ……………………………………….. 104
A.3.2 Power Spectral Density (PSD) ………………………………….. 105
A.3.3 I/Q Constellation ……………………………………………………. 105
A.3.4 FM Demodulation (Phase Difference) ………………………. 106
A.3.5 AM Demodulation (Simple Method) …………………………. 106
A.3.6 FSK Frequency Estimation ………………………………………. 106
A.4 TX – Signal Generation ………………………………………………. 106
A.4.1 CW Signal ……………………………………………………………… 106
A.4.2 FM Signal (1 kHz Tone) ………………………………………….. 106
A.4.3 QPSK Transmitter …………………………………………………… 106
A.4.4 Two-Tone Test (IMD3) …………………………………………….. 106
A.5 DSP Utility Functions …………………………………………………. 107
A.5.1 DC Removal ………………………………………………………….. 107
A.5.2 Normalization ……………………………………………………….. 107
A.5.3 Band-Pass Filter (FIR) ……………………………………………. 107
A.5.4 Noise Measurement (SNR) ……………………………………… 107
A.6 Satellites & Special Modes ………………………………………….. 108
A.6.1 NOAA APT Recording ……………………………………………. 108
A.6.2 Doppler Correction (ISS / ICARUS) ………………………… 108
A.6.3 LoRa Chirp Analysis ………………………………………………. 108
A.6.4 ADS-B Pulse Detection ………………………………………….. 108
A.7 Notes on 32-/64-Bit Python …………………………………………. 108
A.8 Common Errors and Solutions …………………………………….. 109
Glossary ………………………………………………………………………….. 109
List of Abbreviations …………………………………………………….. 116
List of Figures ……………………………………………………………….. 123
Final Remarks ………………………………………………………………… 125
