Setting up a Raspberry Pi SD card with some Amateur Radio related apps

Gert KK6ZGA asked if I could set up an SD Card for her Raspberry Pi with including a few Amateur Radio apps. Rather than just install a bunch of random apps and hand it back, I thought it may be useful to document the setup steps for others as a reference in case anyone else is interested in doing something similar.

First steps, installing an OS – the SD card was blank, so first step I installed Raspbian from here:

… and then wrote the .img to the sd card with the dd util (notes on how to do this here , If on Windows there are utilities you can download to help you burn an image to an sd card, Google for help with these).

With my LG monitor it doesn’t recognize the HDMI output from the Pi unless you tweak the settings in config.txt to boost the output signal. I’ve covered this before here.

Booting up for the first time, the keyboard is configured by default for GB_en locale and UK keyboard layout (which makes it difficult to find some symbols on a US keyboard like ‘$’, so I have notes on how to switch this to US_en using raspi-config here.

For future reference, I have a number of other Raspberry Pi related getting started posts here.

Raspbian by default is configured to boot to a graphical desktop and to logon automatically with the default userid/password (pi / raspberry) – you should change your password on first boot. You can change this option in raspi-config too if you’d like to boot to a shell, or require logon at boot.

After first boot and the initial setup above, the list of apps I thought would be useful to install is most of what I covered in my July 2016 presentation at one of our RCARS club meetings on using a Raspberry Pi with  amateur radio. Here’s each of the apps I installed and how to start/use them:

  • Installed xlog:
    • sudo apt-get install xlog
    • To start, double-click the icon on the desktop
  • Installed cqrlog
    • sudo apt-get install cqrlog
    • To start, double-click the icon on the descktop

There’s many things you can do with with RTL-SDR (you’ll need a RTL-SDR dongle to take advantage of these), so here’s a couple of examples. Most of these are command line only, from the Terminal, which you can open from the desktop here:

  • dump1090 receives and decodes ADS-B transponder signals from airplanes flying overhead (depending on your antenna, within about a 100 mile radius) on 1.090Ghz. To run, there’s a couple of different modes.

‘Interactive’ mode is started like this from a terminal, first ‘cd dump1090’ then:

./dump1090 –interactive

You’ll see a display like this that updates every second, showing decoded info from received ADS-B transponder signals:

‘Net’ mode displays the received signals via a webpage. You’ll need the Pi to be on a network, either wired or wifi, and you’ll need to know your Pi’s IP address (which you can find by running ‘ifconfig’ in a Terminal). Run this with:

./dump1090 –net –quiet

And then point a browser at your Pi’s IP address on port 8080 (e.g. assuming your IP is, and you’ll see the received signals plotted like this:

Received signals including latitude and longitude location info are plotted on the map, other signals with no location info are displayed in the table on the right.

Other things you can do with rtl-sdr utils: rtl_fm allows you to tune to a specific frequency and decode the FM modulation, and with a combination of piping the data to your audio out if you have speakers attached to the Pi’s audio output, you can receive FM signals and output the audio like this (scroll to the right for the whole command):

rtl_fm -f 96.9M -M wbfm -s 200000 -r 48000 | aplay -r 48k -f S16_LE

This tunes the RTL-SDR to 96.9Mhz, uses wideband FM, a sample rate (I think) of 200000, pipes the audio ‘|’ into aplay to play the audio stream. Take a look at the RTL-SDR docs here for more info on the options.

Hopefully this is a few things to get you started 🙂

Homebrew contest 1st place: Packet Radio Go-Kit with node.js Packet to Twitter bridge

Super excited (and rather surprised!) to win the 1st place prize in the Homebrew Contest at this month’s River City Amateur Radio Communications Society club meeting last night!

My entry was something I’ve been working on over the past few months on and off to get ready in time for this month’s contest. There were two parts to my entry:

1. A self-contained, portable 2m Packet Radio Go-Kit. I put this together using:

  • 10″ waterproof gear case (from MCM)
  • 2m HT radio
  • Raspberry Pi 3
  • 7″ touchscreen
  • a TNC-PI packet add-on board for the Pi, from Coastal Chipworks (which I assembled as a kit)
  • ax25 apps (for axlisten and axcall)

2. A Packet Radio to Twitter bridge (implemented using JavaScript on node.js). While the goals and benefits of a portable Packet radio kit are somewhat more obvious, writing an app that receives Packet Radio transmissions and then retransmits them as Tweets on Twitter doesn’t have many practical applications. The main motivation for this part of the project was that I thought it would be an interesting blend of old tech and new tech. The popularity of Packet Radio declined with the arrival of easy access dial-up information services and BBSes in the 80s and then access to the internet in the early 90s, so linking the two together seemed an interesting idea. Plus, it’s an interesting stepping stone and talking point from common-place tech used on our wireless devices today, with data communications enabled via Amateur Radio.

I put together a number of articles as I was assembling my project and working on the Packet to Twitter interface. If you’d like to read more, here’s links to my previous posts:

Updating/installing node.js on the Raspberry Pi

The latest versions of Raspbian (e.g. Jessie) come with an older version of node.js preinstalled. If you search around for how to install node.js on the Pi you’ll find a number of different approaches, as it seems there’s not an official ARM compiled version of the latest releases in the Debian repos.

This approach provided by this project has later versions compiled for ARM. Follow the instructions on their site to download and install from the .deb file.

Before you start, if you already have an older version installed (check ‘node -v’), uninstall it first. The version I had on my fresh Jessie install was from nodejs-legacy, so ‘sudo apt-get remove nodejs-legacy’ did the trick.

Raspberry Pi with Adafruit PiTFT screen

Just followed the steps in the tutorial to get the modified kernel installed with support for Adafruit’s PiTFT and it all worked great.

What I’m going to be using it for is to monitor status output from Direwolf as it receives/sends packets, so will be running it in text mode, and ideally I want to get Direwolf and LinBPQ starting together at boot, and outputing to the console.

I’ve almost got the startup script working (following suggestions here), but I might take a look to see if I can redirect output to one of the virtual terminals and have that output to the screen (like discussed here). Some more things to take a look at 🙂

fbtext – this might be useful too.