Connecting Android to my Ham Radio
I finally conjured up an electronics project which scratched an itch of mine — while simultaneously allowing my buddy and I to design a custom hardware/software solution.
The Problem: ham folks use morse code ‘keyer’ devices to aid them. It’s basically a tiny computer that plays a morse code message in a loop. You program messages into a few memories on the device, then tell the device to play “CQ CQ CQ DE NN9S” in a loop while waiting for someone to hear your hail. Or maybe you program the device to give standard canned responses when you’re participating in a radio contest. Either way, I had this realization that the smartphone in my pocket was essentially a supercomputer; why on earth was I bothering to assemble little IC devices with 5 or 10 flash memories to do this job? My phone was infinitely more powerful.
So really, the question boils down to this: assuming we can write a phone app that plays any morse code we want, how do we convert a ‘beep’ sound into a signal that my radio thinks is equivalent to “pressing the straight key”?
The radio’s connector is quite simple: it sends a small current out of a jack. If the current comes back to it, it thinks you’re pressing down on the straight key (closing the circuit). The straight key is just a physical switch.
So Jack AI4SV (my mentor/elmer) designed a circuit below which uses a common NPN bipolar transistor as the switch; we simply need to tickle the transistor’s base with a bit of current from the phone’s audio, and poof, the transistor closes the radio’s circuit and the radio sends a ‘beep’ out the antenna.
As you can see in the circuit, we take the ~.5V signal from the phone’s audio output jack and transform it into about ~5V. From there, we use a full-wave rectifier to convert the AC into DC, then eventually send that current into the transistor. The capacitor is there to smooth things out.
The other half of the project, of course, was writing an Android app to act as a versatile memory keyer. The open source code is available on Google Code, and the application is freely downloadable from Android Market.
In the video below, you can see a live demo of the prototype hardware & software in action:
I then built a ‘permanent’ version of the hardware using a perma-proto board from adafruit.com, which you can see here sitting inside an old dice box:
And here’s a screenshot of the final Android app. I can confirm that the hardware/software combo successfully drives my Yaesu 817-ND portable radio!