Jon Kraft from Analog Devices delivers a technical presentation on new features and advanced applications for the popular ADALM-Pluto software-defined radio (SDR). The talk covers four key topics: enabling and utilizing the Pluto's second transmit/receive channel for an adaptive digital beamforming demonstration using the MVDR algorithm; introducing the new Time Division Duplex (TDD) engine in firmware, which allows for precise synchronization between transmit and receive buffers for applications like radar; identifying a potential hardware flaw on Rev C/D Plutos involving shorted ESD diodes and providing a straightforward method for testing and fixing the issue; and explaining the concept of context port forwarding, a feature in the libiio library that enables remote control of multiple Plutos through a single network connection via an intermediate host like a Raspberry Pi.
New Features and Advanced Experiments with the ADALM-Pluto SDR
0:03:51 Unlocking a Second Channel: The ADALM-Pluto SDR contains a second transmit and receive channel that is not connected by default. It can be physically enabled by opening the case and adding U.FL to SMA pigtail cables, effectively turning the device into a 2x2 MIMO SDR.
0:09:09 Adaptive Digital Beamforming Demonstration: Using the newly enabled second receive channel, a practical adaptive digital beamforming system is demonstrated. The system uses the MVDR (Minimum Variance Distortionless Response) algorithm to dynamically create an antenna pattern with a sharp main lobe on the desired signal and nulls on interfering signals, offering superior performance over conventional beamforming.
0:16:29 TDD Engine for TX/RX Synchronization: A new feature available in firmware (rev 0.39 and later) is the Time Division Duplex (TDD) engine. It allows users to precisely align the start of the receive data buffer with the start of the transmit buffer, which is critical for applications like radar (for coherent processing and matched filtering) and synchronized half-duplex communication protocols.
0:24:54 Potential Hardware Issue on Rev C/D Plutos: A manufacturing flaw may affect some Rev C and Rev D Pluto units. Excess solder can short the RF ESD protection diodes to ground, significantly attenuating the signal on the affected port.
0:26:49 How to Test and Fix the ESD Diode Issue: The problem can be diagnosed by creating a simple TX-to-RX loopback and checking the received signal strength with a tool like IIO Oscilloscope. If the signal is very low, a short is likely present. The recommended fix is to physically remove all four ESD diodes by scraping them off the board and cleaning the excess solder from the pads.
0:29:15 Remote Access with Context Port Forwarding: This powerful feature allows multiple, physically distant Pluto devices to be controlled from a single computer over one Ethernet cable. By connecting the Plutos to an intermediate computer (like a Raspberry Pi), a service called iiod can forward the control context of each Pluto to a unique network port, simplifying complex multi-SDR setups.
0:38:10 Synchronizing Sweeps in GNU Radio: During the Q&A, the speaker addresses the challenge of synchronizing data sweeps in GNU Radio. While possible using GNU Radio's native tagging system, he recommends a more straightforward approach: implementing the synchronization logic within a Python block inside the GNU Radio flowgraph.