Raspberry Pi 2 and FUNcube Dongle Pro Plus
Today we spent some time with the new Raspberry Pi 2 and the FUNcube Dongle Pro Plus.
As many will be aware, the original Raspberry Pi had a problem with its USB host stack, for which I released a workaround here: this simply reduced the dongle’s bandwidth so that the Raspberry Pi could keep up.
Well the good news is that the Raspberry Pi 2 so far does not seem to show the same limitation. I recorded an hour of full bandwidth this afternoon, and it plays back perfectly, which would not have happened with the original Raspberry Pi.
Talking of the Pi 2 in general, this is a very significant update. Compiling code natively on the original Pi was hard work, it was tediously slow. Frequently, you’d cross-compile, which although is frequently done, it’s hard to set up and the environment needs continually tweaking and updating. On the Pi 2 on the other hand, it’s like night and day, it’s a piece of cake to compile your code natively. I was really enjoying running both a native screen and keyboard/mouse combo together with a VNC X session simultaneously, it really is a joy to use.
Many thanks, Howard
FUNcube Christmas ordering
Seasons greetings to all!
We currently have a good stock of FUNcube Dongles ready for immediate dispatch, you can order here.
Here are the cutoff dates for delivery before Christmas day:
North America: Tuesday 23 December 11:00 UTC
Northwest Europe: Tuesday 23 December 11:00 UTC
Southern and Eastern Europe: Monday 22 December 11:00 UTC
Scandinavia & Baltics: Monday 22 December 11:00 UTC
Brazil*: Friday 5 December
Russia*: Wednesday 3 December
Rest of world: Friday 19 December 11:00 UTC
*Note that for Brazil and Russia, we are temporaily using the Royal Mail International Signed for service rather than FedEx due to the way customs charges are currently levied in those countries.
Many thanks, Howard
Security dongles are typically used to help prevent unauthorized use and copying of certain forms of software. Initially using ports such as the serial port or parallel port, most are now in USB format.
On the other hand, some unlicensed game cartridges have a «daisy chain» design that allows licensed games to pass along their authorization, for instance to circumvent the chip on the Nintendo Entertainment System.
Small peripheral appliances
A Chromecast plugged into the HDMI port of a TV. The wire attached to the other end is the USB power supply.
In the mid-to-late 2010s, the dongle form factor was extended to digital media players with a small, stick-like form factor — such as Chromecast and Fire TV Stick — that are designed to plug directly into an HDMI port on a television or AV receiver (powered via Micro USB connection to the television itself or an ), in contrast to a larger set-top box-style device. Single-board computers, such as the Intel Compute Stick, have also been produced in a similar means.
Very short cables that connect relatively large jacks to smaller plugs allow cables to be easily installed and removed from equipment with limited space available for connectors. The Chromecast device comes with a short HDMI extension cable to allow its use in cramped quarters. Some devices come with a permanently attached length of cable that negates the need for a short adapter cable.
- Cassette adapters enable cassette-radios to allow AUX in, like with iPod/MP3 player/smartphone/portable CD player.
- Personal FM transmitters allow content from a portable media player, portable CD player, smartphone, portable cassette player, or other portable audio system to be heard on an FM radio.
Both floppy disk and hard disk drives have been emulated on solid-state «dongles» to ensure legacy recognition, allowing SD cards to serve software to old Commodore 64 and Apple II era computers.
connectivity can be re-channeled with some dongles:
- Old school video game consoles:
- The Everdrive series of game cartridges has enabled classic systems such as the Sega Mega Drive and Nintendo 64 to allow one cartridge to have a number of games that were formerly on multiple cartridges of their own, by use of an SD card with ROMs on them; since it can allow a real game console to access ROMs, which an emulator would normally do.
- The Sega 32X was an add-on for the Sega Megadrive which allowed a 32-bit library of games to play on a system that was normally just 16-bit, though it suffered from having its own AC adapter in order to work.
- The Nintendo DS contains a cartridge slot used primarily for Game Boy and Game Boy Advance games, but was also used as a slot for add-on dongles such as the Rumble Pak.
USB host connectivity grants more flexibility to computer-based devices
- legacy game controllers have special adapters
- SD card readers
- Flash drives
- Mobile broadband modems
- Older cars that «externalized» their CD players and changers from the head unit can now use «emulators» that allow USB and SD cards with MP3s and other audio files to be recognized as «tracks» to the CD control unit circuitry.
- Adapters that convert miniature implementations of an interface to the full-sized equivalent, or are required to provide the electrical and mechanical interfaces for expansion cards that cannot physically accommodate them (such as PCMCIA, Compact Flash and ExpressCard expansion cards which are just millimetres thick, too small for a standard connector without having the connector and housing extend beyond the dimensions specified by the standard). Although commonly referred to as «dongles», the alternative term «Pig-tail» is favoured by some in the IT industry, due to the appearance of a full-sized connection element, with a short, thin wire extending, somewhat reminiscent of the rear of porcine animals. The term is somewhat descriptive, and allows one to avoid using the word dongle except for its original meaning.
A parallel port dongle.
There are varying accounts on the etymology of the word «dongle»; in a 1999 paper, P. B. Schneck stated that the origin was unclear, but that it was possibly a corruption of the word «dangle» (since these devices «dangle» from a port on a PC).
A 1992 Byte magazine advertisement by Rainbow Technologies claimed that dongles were invented by and named after a person named «Don Gall», which spawned an urban legend. Linguist Ben Zimmer noted that the claim was likely a by-product of their «tongue-in-cheek» marketing style, and «was so egregiously false that the company happily owned up to it as a marketing ploy when pressed by Eric S. Raymond, who maintains the Jargon File, an online lexicon of hacker slang.»
FUNcube Dongle Pro+ and Raspberry Pi
I’ve been working on some firmware for the FCD Pro+ to work around the USB stack limitations of the Raspberry Pi.
The workaround reduces the bandwidth of the FCD to work within those conditions: there is one version for 48kHz bandwidth and the other for 96kHz.
The documentation for updating your firmware is here, and the firmware bootloader/upgrade program is here.
The firmware for 48kHz is here, 96kHz is here, and the original 192kHz firmware is here.
Take care when using this new firmware! Due to the way Windows works, it doesn’t fully re-enumerate the USB port when you re-insert your device, so you’ll find that your Windows software might get a little confused. In short, the way to resolve this is to shut down any programs using the FCD Pro+ first, uninstall the FUNcube sound device from the Device Manager control panel applet (run devmgmt.msc), unplug the FCD Pro+, re-insert it a few seconds later, and let it re-enumerate (may take a minute or so depending on your system). Once this is done you can restart your programs. Of course, if you have installed a restricted bandwidth version of the firmware, this will be restricted in Windows too. You can always install the original firmware using the same steps.
Why are there two versions? It’s because there are two “features” of the Raspberry Pi stack. Warning: this will get a bit nerdy.
The first problem is that the USB stack has a problem with USB full speed isochronous streams of more than about 750 bytes per 1ms frame. The USB specification allows for up to 1023 bytes per frame, and the FCD Pro+, with the default firmware, uses 768 bytes per frame. So while the FCD Pro+ is within the USB specification, it’s just beyond the Pi’s capabilities.
The second feature of the Pi’s USB stack is that there is only a single transaction translator (TT) for USB full speed devices (such as the FCD), so all full speed devices have to share this TT. Having a single TT unfortunately is not a unique scenario on USB 2.0 hosts and hubs, we sometimes see it on PCs too. Obscurely, this can be circumvented by putting the FCD Pro+ on an external USB 2.0 hub, because the hub will have its own TT.
There’s a whole treatise about this here.
So, in short, the 48kHz version is designed to work on the Pi without an external USB 2.0 hub, allowing for the USB full speed devices to share the single available TT. The 96kHz version _might_ work on your Pi, depending on what other full speed devices are connected, and should work if the FCD Pro+ is placed on an external USB 2.0 hub, either on its own as the only full speed device on that hub if the hub only has one TT, or with other full speed devices if the hub is a multi TT hub.
Many thanks, Howard
One of the more esoteric uses for a FUNcube Dongle
As you may know, although the FUNcube Dongle was originally designed with receiving signals from space in mind, there’s nothing special about extraterrestrial radio waves when compared to those on terra firma.
In fact, at least one FUNcube Dongle has even found its way into space itself on board a satellite.
Back here with our feet on the ground, I received a link to an article in TechRepublic about security researchers at Tel Aviv University using the FUNcube Dongle to sniff the ether around computers, and determine security keys in a so-called side-channel attack.
Normally the RF hash associated with computers is something that we try to avoid, but as far as I can tell, the researchers sniff the RF fingerprint of the cipher algorithms from the computer, and from that they can determine keys used in schemes like RSA.
The original report is here.