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.

Gareth Halfacree
15 minutes agoHW101 / Communication

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.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles