Dummies Guide For Cariboulite SDR

Dummies Guide For Cariboulite SDR

Cariboulite SDR

Cariboulite SDR

It was the best of times, it was the worst of times.  Worst actually.  I own a LOT of Software Defined Radios.  And for some odd reason if I see something new and cool with SDR I like to shake it down and give it a try.   Even though the Cariboulite SDR Hat device for Raspberry Pi has been around a few years I decided to give it a try.

I am just going to say this up front.  This is a story of great hardware and abysmal software.  Your money seemingly just buys stress and grief.  Oh, it does work.  But the software is pretty awful and very difficult to configure.  It should not be this way for a $150 device.

Things You Need To Know Up Front

  1. The Pi with the Cariboulite installed needs to be connected to Ethernet.
  2. The receiving computer also needs to be connected to the same network via Ethernet.
  3. If you can’t go Ethernet to Ethernet stop right here and go have a happy life.
  4. The best distribution to use is the current and latest updated Raspberry Pi OS Bookworm.
  5. Make sure you use the Lite version of Pi OS WITHOUT the desktop.
  6. Make sure to enable SSH when editing the Pi OS installation
  7. If you can’t function with a headless environment stop right here and go have a happy life.
  8. The HAT seems pretty susceptible to RFI. I lost 2 days of my life troubleshooting stuttering issues only to find that my Amateur Radio DMR radio hotspots were causing the interference.  When I moved the Pi into another room the stuttering stopped.

Dummies Guide

I learned all of this THE HARD WAY over several days.  Days I wish i had back.  First do a clean install of 64 bit Bookwork with no Desktop in Raspberry Pi Imager.

Cariboulite SDR

Raspberry Pi Imager

After clicking next ensure that you Edit your settings.  Make sure you enable SSH.  Then write the OS.  I’m not going into detail here.  If you can’t install Pi OS you’ll never get the rest of this.  And there are a zillion guides on the internet for doing this.

Install Card And Boot

Insert SD card, power up, and ensure you have ethernet activity.   SSH into your pi and update.

ssh 192.168.1.50 -l pi

Make sure to use YOUR IP address of YOUR Pi enter password

 sudo apt update && sudo apt upgrade -y
 sudo reboot

After the upgrade is completed, reboot.  Log in again. This is the interesting and fun part.

sudo apt install git cmake

That will get you going.  Now follow these commands:

git clone https://github.com/cariboulabs/cariboulite.git
cd cariboulite/driver
sudo nano smi_stream_dev.c

Hit Ctl +W and type create sysfs

Cariboulite SDR

Learn To Code

Alter this line from:

    smi_stream_class = class_create(THIS_MODULE, DEVICE_NAME);

to:

    smi_stream_class = class_create(DEVICE_NAME);

Then hit Ctl +X, then hit the Y key and finally enter to close the file. Back up one directory

cd ..
./install.sh

This takes several minutes. But shortly into the installation you’ll be prompted with:

Did not find SoapySDRUtil. Do you want to clone and install? [Y/n]: 

hit enter

Now go get a snack.  This takes a few minutes.

After finishing it will give you two warmings.  Worry not Pi soldier.

Cariboulite SDR

I Told You To Learn To Code

Now in your terminal:

sudo nano /boot/firmware/config.txt

Scroll down and add the following:

# CaribouLite
dtparam=i2c_vc=on
dtoverlay=spi1-3cs

While you are in there add this as well.

# Disable WiFi and Bluetooth
dtoverlay=disable-wifi
dtoverlay=disable-bt

If you are installing this over WiFi DO NOT disable the WiFi until you are done and connected to Ethernet. 

Ctl+X, hit Y, Enter to save and exit

sudo reboot

Okay, log back in via SSH and enter two more commands:

sudo systemctl start SoapySDRServer.service
sudo systemctl enable SoapySDRServer.service

Now you should be able to open GQRX on another computer THAT IS CONNECTED TO ETHERNET  and set your I/O device settings as per below.   The device SHOULD be visible to you.

Cariboulite SDR

GQRX I/O Settings

Lastly I found that it would hiccup and stutter just barely about every 12 to 15 seconds.  I found that by turning down the Modem AGC then the stutter would disappear.

Screenshot

Wrap Up

Does it work? Yes.  Is it a PITA especially since it costs $150.  Absolutely.  To be honest I get better performance with a $35 RTL-SDR.  What I did just gets it working.  I’m currently trying to get this to work from SDR++ as a streaming server which should work a lot better and be a lot more powerful.  And considering it was released in 2022 it is a safe bet that not a lot of additional development, if any, is forthcoming.

SDR++ Maybe?

Interestingly enough my digging into the SDRPlusPlus GitHub reveals that the developer states “The SoapySDR source module has been deprecated for months.
I don’t know what hardware you have but you most likely should NOT use it.”

Well, there goes that brilliant idea.  This thing sucks more and more all the time.

I cut my teeth on GQRX, and I love GQRX but father time has passed it by.

To cut to the chase, I hate this fucking thing.  It is overpriced with horrific software support.  Again, it works, it is fun, but not $150 worth of fun.  By the way, the absolute best network streaming device in the world currently is the SDRPlay nRSP-ST.  Yeah, it is $500 but I don’t regret spending that at all.  It has compression and works great even over wifi with lower signals is the correct I/O device is selected.  I regret spending every penny on this abominable piece of shit.   Having said that, if the software support was great this could be a great experience.  Sadly now it is not.

I should also add that this can also be set up on DragonOS but I found it only works with Beta 37.

If you have a Cariboulite and this helps……..I’m happy.  If you don’t have a Cariboulite save yourself a lot of grief and buy something else. Lastly,  if you need to transmit, as the Cariboulite theoretically can, then buy a HackRF.

This is what it sounds like over WiFi.  Ethernet is your only hope.

JOHN’S TECH BLOG SAYS THE CARIBOULITE IS A REMARKABLE PIECE OF SHIT

3 thoughts on “Dummies Guide For Cariboulite SDR

  1. vodidan

    I had the same issue and have been pulling my hair for 2 weeks, I did more or less the same changes and got it working on rpi0 W 2. Also managed to build from source SDR++ and enabled soapysdr feature(it is deprecated but you can enable it), it does work a lot better that gqrx. Now I am trying to get it to run with openwebrx.

    Reply
    1. John Hagensieker Post author

      Thanks for the comment. How did you enable Soapy in SDR++? Happy to add it to the blog and give you credit for the instructions.

      Reply
  2. Peter

    Hi John,
    I was able to get the cariboulite to work well with no stuttering. I found that the stuttering was tied to network traffic. I also ran the soapySDRserver with niceness -99 (max cpu priority) e.g

    nice -n -99 SoapySDRServer –bind.

    Listening though gqrx works well. It wasn’t working well when the connecting interface was less than 10MiB/s determined via the application btop. I had a wired connect would stutter when the bandwidth fell below 4MiB/s. Sometimes this was due to me doing other things on that connection.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *