Evan Krall's Adapter Board Lets You Squeeze an RTL-SDR Dongle Into a Raspberry Pi CM5 IO Case
Unhappy with long dongles putting strain on your USB ports? This M.2 to USB adapter will solve that problem.
Maker Evan Krall has designed an adapter board that lets you squeeze a low-cost RTL-SDR software-defined radio dongle inside the Raspberry Pi Compute Module 5 IO Case — making for a much neater build than if you hang it from one of the external USB ports.
"I want to use my [Raspberry Pi Compute Module] 5 in its CM5 IO Case to run some RTL-SDR software, but the RTL-SDR sticks out a lot from the front," Krall explains of the problem he set out to solve. "This makes it take up a lot more space on my shelf, and it feels fragile to have such a long device cantilevered out from the USB port like that. It also has an unsettling amount of play. By putting the RTL-SDR inside the case, we can tidy things up a lot."
The Raspberry Pi Compute Module 5 is the computer-on-module variant of the Raspberry Pi 5 single-board computer, packing the same system-on-chip into a more compact form factor designed primarily with industrial and embedded use in mind. There's an official Raspberry Pi Compute Module 5 IO Board that acts as a carrier, breaking out its key ports and features — and a matching Raspberry Pi Compute Module 5 IO Case, turning it into a compact desktop computer.
Krall has all three, and there's enough room inside the chassis to squeeze in the low-cost receive-only RTL-SDR dongle too — with only one stumbling block: the RTL-SDR is a USB device, and the Raspberry Pi IO Board has no internal USB ports. What it does have is an M.2 slot, linked to a single PCI Express lane on the Broadcom BCM2712 system-on-chip.
"I suppose I could've made a whole new CM5 carrier board with one of the USB ports available internally," Krall notes, "but it seemed like less effort to make a PCIe to USB adapter board. The schematic is mostly copied from Will Whang's [Google] Coral M.2 module, but instead of a Coral TPU [Tensor Processing Unit], I have a USB port. I made a few changes to Will's design to fit my needs: USB 3 port instead of [a] Coral module; added a 5V boost converter for USB power; changed some part numbers for availability. The board is designed with mousebites so it can be split into two parts, which are connected via an FFC [Flat Flexible Circuit]."
The full project write-up is available on Hackaday.io, with KiCad project files available on GitHub under the permissive MIT license; using the antenna hole on the Raspberry Pi Compute Module 5 IO Case requires filing down the SMA connector on the RTL-SDR.