I’ve been using Raspberry Pi mini computers for lots of little dedicated purpose tasks over the last couple years (VPN servers, print servers, D-Star controllers, arcades, etc) and I decided I’d like to make one to go with my KX-3 portable setup. I’ve had several questions about it and since it’s been about 2 years since I made one, I decided it was past time for a blog post!

My basic desire was to assemble a low maintenance portable peripheral that could be used in the field with my KX-3. I’m calling this a peripheral, and not a computer because I really wanted more of an appliance feel, without the burden of having another computer to manage and care for. I also wanted something that was dedicated to the purpose, so it could live in the bag with my KX-3 and I wouldn’t feel the urge to rip it apart and use it for other projects.

The Raspberry Pi, currently at version 3, is ideal for this purpose. It’s not the fastest or the lowest power, but it’s by far the best known and supported platform. It runs a version of Linux called Raspbian and a desktop environment called Pixel.

Because the Pi is based on Debian Linux, it has a host of ham radio applications available for use. My primary interest is in FLDigi and WSJT-X, but various other programs like Xastir, Direwolf, Chirp, D-Rats and even some panadapters are available from the built in software package manager.


Bill of Materials

You can make substitutions as necessary to meet your requirements, but I’d recommend against using cheaper quality power adapters and microusb cables. The power requirements for all this hardware are stretching the Pi to it’s specs and a low quality power source or a cable with a little bit too much line loss will cause you problems. If you see a small square rainbow in the upper right corner of your display, that’s the Pi telling you it needs more power than it’s getting.


Instructions (vague)

  • Use NOOBS (or Win32DiskImager) to install Raspbian (full image, not lite) onto the SD card.
  • Assemble all the above hardware as per the instructions that came with it.
  • Apply Power (I use the Y-cable included with the case to power the display and Pi from 1 microusb cable)
  • Connect your Pi to the internet, either via an Ethernet cable, or via WiFi (icon in corner of GUI).
  • Once booted, open terminal and update your pie (you can also use the GUI package manager, but I find the command line easier and faster)
    • sudo apt-get update && sudo apt-get -y upgrade
  • Install fldigi
    • sudo apt-get install fldigi
  • You can also install Xastir or any number of other ham packages at this point. WSJT-X is not in the built in sources, we’ll get to that later.
  • To add fldigi to the desktop, click on the raspberry icon and find it in the application launcher. Right click on it and select the option to add it to the desktop.
  • Plug in your Signal Link USB, and configure fldigi to use it for input and output just as you would on any other computer system.
  • You can also plug in your Elecraft serial cable, and configure it in fldigi. It’s FTDI based and natively supported on the Pi, so no additional drivers or software are required. It’s not strictly required as the Signal Link USB will key the radio by itself, but I like the feedback it provides. I also plan to test eliminating the Signal Link from my setup due to it’s huge size.



WSJT-X isn’t included in the default software repositories on the Pi but it can still be added. There are, however, some issues. The one being that it doesn’t fit on the display we’re using in this project. The official display has a resolution of 800×480, and WSJT-X requires more pixels than we have in order to run properly. If you’re using an external monitor however, WSJT-X works well and can be installed as follows:

Instructions (Courtesy of KI7MT)

  • Open a terminal on the pi, and enter the following commands
    • sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 862549F9
    • sudo nano /etc/apt/sources.list
  • Add the following line to the end of the sources.list file
    • deb http://ppa.launchpad.net/ki7mt/wsjtx-next/ubuntu trusty main
  • Save the file with Control+X, then Y.
  • Enter the following commands
    • sudo apt-get update
    • sudo apt-get install wsjtx

I’d really like to get WSJT-X working in my configuration, but it’s screen requirements are diametrically opposed to my portability goals. Small 1080p screens are still 10″ in size, they exist smaller but at a very high cost and generally not compatible with the Raspberry Pi.



I have mine setup with the fldigi suite of apps, Xastir, WSJT-X (even though it doesn’t fit at the moment), Direwolf, Chirp, D-Rats, and PDFs of the user manuals for several of my rigs. Added to my KX-3, it’s part of my portable station that can do just about anything in ham radio. Admittedly, mostly I just use it for fldigi.



Overall I’m very happy with this build, but it’s not perfect and I’m still looking for ways to improve it. Here are what I see as the issues, and how I’m planning to address them.

The touchscreen is really useless, it’s not precise enough so a mouse is still needed. This is not really an issue as we can simply ignore the touchscreen, but I wanted to point out that it’s not really a feasible input method for this project.

It looks out of place. As nice as the adjustable axis case is, it’s large and doesn’t fit well with the KX-line aesthetic. I’ve ordered and plan to test this metal case with integrated PiTFT compatible 800×480 display. It’s a physically smaller screen without touch, but it’s the same resolution and comes packaged in a shell I expect will fit in much better with the KX line. It also has the advantage of being a whole lot cheaper, at $69 for the case and screen as opposed to $100 for the official Raspberry Pi screen and case to hold it. I’m expecting it to be much more durable, and although I know others might not agree I prefer the smaller screen size. The drawback to this option is that it requires installation of a binary blob PiTFT driver to make it work, but since this is to be an appliance I find that acceptable.

The Signal Link USB is bulky, and likely not necessary. It’s a fantastic interface and and time honored, it works perfectly with the Pi, but it’s huge and has controls that are simply not needed for this project. I’ve been informed that the KX3 is very happy with line level input and output without matching transformers. Both the Griffin iMic and the Syba USB sound dongle have been confirmed by members of the KX-3 reflector as working fine. I’ve ordered the Syba to play with, but my final intent is to test the Griffin iMic as soon as I can find the one I know I own… I prefer the short cable as doesn’t block any of the other ports on the Raspberry Pi (although a short usb extension cable solves that problem on the Syba quite well). Using these interfaces, you must either enable VOX on the KX-3, or use a serial cable and configure fldigi to send the TX on and off commands. I intend to use the serial method.

The Pi requires 5V for power, at about 2A. Most Amateur Radio equipment runs from 13.8V. Easily solved with a USB battery, or a decent quality 12V Adapter. Thanks to the proliferation of tablets and phones these can be found that are both good quality and inexpensive. Look for anything rated for the iPad Pro. That’s will get you a 2.4A (minimum) output and as long as you stay away from the bargain bin at the gas station you should be OK.

Lastly, not specific to this project, but a general KX-3 issue: This is a cabling nightmare. I get it, I’m asking a lot out of my little KX-3, which is intended to be a portable radio, but wow. Elecraft, if you’re listening, the KX-3S needs to have a single MicroUSB/USB-C port on it that brings out Control, TX, RX, and IQ. We’re using this radio in all sorts of ways you never intended Wayne… I know you’ll be thinking of us while you’re working on the next one, but keep in mind that the wiring diagram for my KX-3 station is more complicated than my data center!