Funcube Dongle Pro

23.08.2011 20:11

During the CCC camp I found out about the Funcube Dongle. It's a small USB device that contains a complete software defined radio frontend. It was designed to receive telemetry from the Funcube amateur satellite, but gained popularity among HAM radio operators and other folk interested in radio communications because of low cost (around 160 €, including shipping) and versatile frequency range (64 MHz to 1700 MHz central frequency with up to 80 kHz bandwidth). So much popularity in fact that the authors had problems keeping up with demand.

I have been playing with SDR interfaces a while ago and was pretty much sold on this gadget when I saw receipt of a satellite transponder from a hand-held antenna. It arrived via Fedex yesterday and I was eager to try it out.

Funcube Dongle Pro

The documentation says software support for Linux is still under development. However because the device uses USB audio and USB HID standards there are no drivers necessary. For setting up the radio frontend hardware there is a nice graphical QT application available that gives you access to all the knobs. It's called qthid.

Setting up qthid 3.0 on my Debian Squeeze system took a few tweaks. First, you need to install a few dependencies:

# apt-get install libusb-1.0-0-dev
# apt-get install qt-qmake qt-dev-tools

Note that you don't in fact need the complete QT Creator IDE to compile. This saves some considerable disk space.

It also turns out that libusb in Debian has a broken pkg-config, which means the following patch needs to be applied:

--- a/hid-libusb.c
+++ b/hid-libusb.c
@@ -40,7 +40,7 @@
 #include <pthread.h>
 /* GNU / LibUSB */
-#include "libusb.h"
+#include "libusb-1.0/libusb.h"
 #include "iconv.h"
 #include "hidapi.h"
--- a/
+++ b/
@@ -53,6 +53,7 @@ win32:LIBS += "C:\\Program Files\\Microsoft SDKs\\Windows\\v7.
 linux-g++ {
     CONFIG += link_pkgconfig
     PKGCONFIG += libusb-1.0
+    LIBS += -lusb-1.0

qthid should now compile with

$ qmake
$ make

After setting up udev rules as described in the README file, qthid still said No FCD detected. Documentation suggested that obsolete firmware might be the cause. qthid actually allows you to upgrade the firmware from within the program, but since it doesn't detect the device in the first place it's kind of a catch-22. I solved this by first setting up qthid 2.2, upgrading the firmware in Funcube Dongle to version 18f (latest stable release at this time) and then upgrading qthid to version 3.0. As you can see, this did the trick:

qthid screenshot

By the way, this is how the device presented itself before the firmware upgrade:

generic-usb 0003:04D8:FB56.0004: hiddev0,hidraw0: USB HID v1.11 Device
[Hanlincrest Ltd.          FunCube Dongle V0.0  ] on usb-0000:00:1d.0-2/input2

and after the upgrade:

generic-usb 0003:04D8:FB56.0006: hiddev0,hidraw0: USB HID v1.11 Device
[Hanlincrest Ltd.          FUNcube Dongle V1.0  ] on usb-0000:00:1d.0-2/input2

The next step is to get the latest version of GNU Radio framework working. After it finishes compiling I guess that shouldn't be too hard.

Posted by Tomaž | Categories: Digital

Comments Beware of stone wave device. GL radio magic!

Add a new comment

(No HTML tags allowed. Separate paragraphs with a blank line.)