D-STAR on the Raspberry Pi: the PiGMSK Board

Although there is nothing that would keep you from connecting your Mini-Hotspot board to your Raspberry Pi (RPi) mini computer through its USB ports, this does mean extra cabling and clutter.

Many people started to wonder if it would be possible to "do something" with the so-called GPIO connector on the system, which is intended for user experimentation with all kinds of I/O devices and the RPi system.

The GPIO connector (which is the big pin-head connector on the RPi's lower right hand corner, next to the yellow video connector) carries a number of signals which interact directly with the RPi's ARM processor.

As shown on the left, we find a power supply (both 5V as well as 3.3V), general I/O pins (for connecting LEDs, switches and so on), a standard serial port (the "serial console" used by Linux, but Linux can be told not to use the port itself, freeing it for other use, such as connecting a GPS device for example) plus to complete serial buses: I2C and SPI.

All in all, that's quite a bit of I/O to play with, so maybe there is a way to use this for our D-STAR project, indeed!


A board designed for connecting it directly to the Raspberry Pi should obviously follow a number of guidelines to make it work. Some of these are:

Since we have three very usable I/O buses (serial port, I2C port and SPI port) and also a handful of general-use I/O pins, we should design in a such a way that either our board uses up all of the available resources, or we implement stacking, where multiple of our boards can be mounted on top of eachother, or, in some cases, where some other board is mounted on top of our board. This obviously means watching component sizes and heights!

Since we already have a "known to work" board design (the well-known Mini-Hotspot board, revision C, also known as the "Blue Board"), we use that as the basis for a new one, specifically for the RPi....

.... and here it is!

Code-named PiGMSK for now, this is a 3D rendering of the board as it is now under testing in real life.

Fitting exactly on top of an RPi system, it uses the GPIO connector for both power and support. Two holes for additional mounting support are present to ensure a robust pairing with the system. The board is available in two variants: one with a regular GPIO connector mounted (as shown), and one where the GPIO connector is a stacking connector, so, a socket at the bottom side of the board, and pins at the top side, so another board can be mounted on top.

Though a small board by looks, supported features are quite impressive:

The board uses the SPI bus to communicate with the RPi system. A jumper selects between the system's CE0 and CE1 select lines, so you could stack two of these boards onto a single RPi system, each using one of the available selects.

On the software side, this board obviously uses a (very) different method to communicate with the host (the RPi) system. The details of that, however, have been hidden in the API implementation (the shared library, "libnode-armv6l.so") so programs can continue to use that API, for both the USB version of the board as well as this new SPI version of the board.

In other words, the API has not changed with this board, other than some extra smartness that deals with how to select the proper interface (USB or SPI) and the details of that connection (USB ID, SPI slave device number and so on.)


Watch this page for updates as we get ready for its release !


Main Page   Products Page   Previous Product   Next Product

E-mail our Webmaster | Copyright © 2008-2015 DUTCH*Star | Last change: 07/01/15