CaribouLite RPi HAT

A fully open source dual-channel SDR Raspberry Pi HAT with a tuning range up to 6 GHz

Dec 15, 2021

Tutorials, Q&A, caribou biology

by David M

Hello backers, followers, supporters and makers!

This update will cover some technical details of FPGA development over CaribouLite and the SMI interface. In both aspects, CaribouLite has major contributions and we would like to show them. The weekly questions from backers and answers come next, and finally we will have a special topic about the real Caribou - the amazing animal CaribouLite is named after. Have a nice read (and watch)…

Photograph of a caribou

Photo by Stan Tekiela

Technical Updates

The last week was fully dedicated to software, firmware, and debugging. In a complex system such as CaribouLite we have hardware, RF, firmware (FPGA), and Linux-side software that should all work together flawlessly on both RF channels - a difficult task. But a flawless experience using CaribouLite is crucial, not only for our backers, but also for us.

  1. This week we encountered a special good, stubborn bug that made us learn, read, and get wiser, even though at the end it was a matter of a simple I/Q sample shift. That's what we call a GREAT BUG TO GROW ON - we read, analyzed, understood, and even implemented three deep academic articles (shared below) - on our quest to solve the problem.

But, as in often the case, "Occam’s razor" had its own plans for us… We eventually found that the spectral noises and images we had witnessed over the last few weeks were merely the result of an FPGA firmware bug! What a surprise.

  1. In addition, we continued developing integration with Python on Raspberry Pi (RPI) and started a new Examples subdir in the project’s Github repo.

  2. Moving to a 64-bit OS on the RPI 3/4/Zero2W: we decided to take this step following hints the 64-Bit option was on the table and the distro looks stable. Drivers, system performance, and software support were tested and the new distibution indeed looks stable and functional. Perfomrance is slightly better and the opportunity to break the 4 GBit RAM usage limit (in practice ~3.6 GBit) is worth the pain. We’ve prepared a CaribouLite-related distribution with all relevant development features; the image will be available online for in our repo.

FPGA and SMI

CaribouLite is not only an SDR HAT, but also a great FPGA development board. And it provides access to the RPI’s SMI interface (maybe the only dev board doing so today) to experiment with. All development can be done over an RPI (that is exactly what we did), including firmware! To give our audience more insights into the FPGA/firmware/integration parts, we’ve created a tutorial video that explains CaribouLite’s architectural choices and FPGA/SMI micro-architecture.

You can access the coresponding presentation slides in our repo. Make sure you subscribe to our YouTube tutorials channel to be notified on the next demos and presentations.

More Backer Questions and Answers

  1. Q: Will CaribouLite work with OpenWebRX?

    A: YES - isn’t it great to have a Linux tiny computer with a tiny SDR over it? We will port OpenWebRX which will be a great method to connect your CaribouLite to your home router and provide I/Q streams through it!

  2. Q: Will you support radio enthusiast communication methods such as APRS and FT8, including transmission?

    A: Transmission of I/Q samples with special waveforms and packets is on our to-do list and will be coverred in a few weeks. The ham radio networks are really gold-mines of interesting use-cases that we want to implement and experiment with. So bring them on!

  3. Q: Is the production version going to have the 40 upwards facing GPIO pins to connect to other HATs?

    A: The current production doesn’t provide the stackable header option. The CaribouLite and the SMI interface populates all the RPi’s pins, so putting another HAT on top is generally not practical for this generation of CaribouLite.

  4. Q: Do you plan to provide RPI 2W/3/4 cases?

    A: Not in this campaign, but we will provide detailed STEP files of the board mounted on different types of RPIs. We will also provide open source printable files of CaribouLite cases, though we do not plan to sell these cases at this stage. The "CaribouLite-Only" STEP file is already available in our repo, so if you want to start working on this enclosure - do not hesitate. We are here to answer questions and support you in the process.

  5. Q: CaribouLite for TETRA network detection and decoding?

    A: Following this interesting question by our backer we checked if we can tune BOTH channels down to 380 MHz (the lowest TETRA frequency, to the best of our knowledge). The answer for the wide-tunable channel is obviously YES! For the Sub-1GHz channel, on the other hand, it was questionable as Microchip doesn’t specify support for frequencies below 389.5 MHz in AT86RF215 modem’s specs. After testing the capabilities out of spec, we went all the way down-to 360 MHz and even further. So TETRA reception is possible on both channels concurrently on the CaribouLite-Full, and on the sub-1GHz channel with the ISM version. But we need to keep in mind that in the S1 GHz channels, going below 389.5 MHz is out of Microchip’s specifications so performance degradation may be expected.

  6. Q: Can you clarify which RPI versions CaribouLite supports?

    A: As noted in our Github repo and datasheet, CaribouLite supports all RPI versions with 40-pin header. This means the versions with 26-pins (Raspberry Pi 1A, Raspberry Pi 1B, and Raspberry Pi Pico) are not supported. All the rest are supported and can work with CaribouLite. Of course, not all Raspberry Pis are born equal in terms of compute and capabilities, but even Raspberry Pi Zero 2W is fully capable of performing complex tasks that are well beyond the requirements of CaribouLite. You can see CaribouLite running on a RPI0-2W in this (Raspberry Pi Zero-2W Basic Demo.

What is a Caribou (aka, Reindeer)?

Caribou, or rather "Xalibu", meaning "one who paws" by The Mi’kmaq (an interesting read by itself), is a type of deer living in northern Europe, Siberia, and North America [1].

Unfortunately, caribou are endangered as their numbers are in constant decline due to the heavy industrialization of the woodlands of Canada. To survive and prosper, caribou need large areas of undisturbed forests and vegetation. Logging, oil exploration, gas extraction, and mining (gold, uranium, tar sands, etc.) are cutting into these forests and are violating the delicate natural balance essential for caribou and other species to survive.

While searching for a good name for our "Raspberry Pi SDR", many possibilities came up. Product, project, and file naming have always been among my weakest skills (I guess it is part of being an engineer). But then a good friend (Thanks, Yuval) asked "Why not Caribou-Board?" and that was a hit since the two antennas on top resemble a caribou’s horns (as seen in the stunning picture above).

We hope our naming choice will remind all of us to read and learn more on the costs of industrialization and its elusive and shy victims.


Questions?

Ask Crowd Supply about an order
Ask CaribouLabs a technical question
Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects