CaribouLite is an affordable, open-source, dual-channel software-defined radio (SDR) platform—and an SDR-focused FPGA development framework—implemented as a Raspberry Pi (RPi) HAT. CaribouLite turns your Raspberry Pi single-board computer (SBC) into a self-contained, dual-channel radio Tx/Rx that spans a wide tunable frequency spectrum up to 6 GHz.

CaribouLite gives you full control of its hardware, including the FPGA, its firmware, and all of its supporting software. With the deeply integrated IceStorm toolchain, writing your own FPGA application couldn’t be easier. You can reuse many Verilog modules, such as SPI and SMI modules, to support custom applications of CaribouLite hardware.

Purpose & Philosophy

  • CaribouLite was designed for makers, hackers, educators, and researchers. As a high-quality, affordable, standalone SDR building block for the Raspberry Pi SBC, it perfectly complements the current SDR ecosystem.
  • It is (and will remain) fully open-source, so you can learn from, experiment with, and hack on it to your heart's content. All of its components are visible to the curious eye, and its layout clearly identifies the structure of the front end, the Tx/Rx indicators, and more.
  • CaribouLite was built for portability. All it needs for operation is an RPi and a power source.


We created two versions of CaribouLite: the full version and the ISM version. Both versions include an internal TCXO clock source, a low-noise amplifier (NF < 4 dB under 3 GHz), and high Tx power (up to 14 dBm). They also provide fully controllable, 8-bit, read/write PMOD expansion ports to facilitate advanced applications such as direction finding, GPS synchronization, etc.

On the software side, Raspberry Pi’s high-level APIs like Soapy / GNU Radio, and Jupyter notebooks are fully supported, through which the HAT’s complete feature-set can be accessed.

CaribouLite API

All CaribouLite software components are located in our GitHub repository. That includes libcariboulite & SoapySDR driversdevice-tree overlays, and sample code.

SoapySDR API is fully supported and included in Soapy API. To support both channels in CaribouLite SDR—and to stay backward compatible with the current ecosystem software—each CaribouLite board is recognized as two SDR devices rather than as one device with two channels. The two devices are:

  1. The Sub-1-GHz channel
  2. The wide range up to 6 GHz (or 2.4 GHz for the ISM version)

This configuration supports a wide range of standard software packages such as SDR-PlusPlusGQRXCubicSDRGNU-Radio, and more.