So, What’s all this about?
Last week I was looking on eBay at what rigs and equipment was around and found some transceivers with APRS and thought “I don’t have anything that can do APRS, That could be handy when I go out to the bush and there are no mobile phone towers in range, say if I got stuck. These prices are a bit high for something I wouldn’t use much though.”
So then I looked at APRSdroid and saw that it can be connected to a radio, either directly (but you have to use vox) or via a TNC. I looked at TNCs online and saw not only that they can be expensive but that there isn’t much to them and went looking for some ideas on building one.
I have several Arduinos here and figured this would be a good starting point. But figuring out how to not only generate the 1200 baud AFSK signal but also receive it and process it looked pretty hard. Luckily some people have done this work for us… So lets not waste any more time figuring that out.
What do I need if I want to do this?
- Amateur radio licence (In Australia, Standard or Advanced ONLY)
- A 2m FM Transceiver ( I used a cheap Baofeng GT-3TP)
- Arduino. This can be any 16MHz (Important) Atmega328p based board like the UNO, SparkFun RedBoard etc.
- A protoboard/protoshield/breadboard/whatever… somewhere to build the components. I would suggest a shield format as it allows you to disconnect the board in 1 hit from the Arduino
- 1x bluetooth module (HC06)
- Some wire
- Soldering iron
- 1x 2N7000 MOSFET
- 2x 270Ω resistors
- 3x 1kΩ resistors
- 2x 2.2kΩ resistor
- 1x 3.9kΩ resistor
- 1x 8.2kΩ resistor
- 1x 10kΩ resistor
- 3x100kΩ resistor
- 1x 100nF ceramic capacitor
- 1x 1μF ceramic capacitor
- 1x 4.7μF electrolytic capacitor
- 1x LED for TX and 1x LED for RX OR 1x RGB LED(I used an RGB led with blue RX, red TX)
- 1x 2.5mm and 1x 3.5mm TRS plugs and some nice headphone lead OR A pre-wired Speakermic lead (This is for Baofeng, Kenwood handheld radios etc. other radios will have different connectors)
- 1x 3.5mm TRRS plug and socket (Optional but nice, I haven’t done this yet but I probably will)
OKAY, I have all that, now what?
If you can follow it, I have made a circuit on Tinkercad HERE
On the breadboard shown above, 29h is the audio input and so goes to the speaker pin of the radio (for the Baofeng this is the Tip of the 2.5mm TRS plug) and 30h is the ground (and the PTT GND) and it goes to the shield (GND) of the same plug.
29b is the audio output and so goes to the mic pin of the radio (For the Baofeng this is Ring of the 3.5mm TRS plug) and 30b is the Ground (and the PTT+, so do not ground this wire in the circuit, as it will trigger PTT, that’s what the MOSFET is for, it will ground this line when we are transmitting, causing the radio to go into transmit mode and also providing the ground for the TX signal.)
Also, here is the circuit it basically follows from the original designer (Mark at unsigned.io):
After you have built it, in whatever form you choose to, you will need to remove your circuit from the Arduino (This is why the shield configuration is easiest). You cannot upload reliably to the Arduino with the bluetooth module connected as it interferes with the USB serial data, they are parallel to each other.
Now, download this hex file and load it into your Arduino.
How the hell do I do that?
If you are on Windows and have the Arduino IDE installed, open a Windows Command Prompt.
You will have to change the Arduino folder to wherever you installed it, the COM port to match the one your arduino shows up as, and the file near the end to wherever you saved the hex file. – KEEP THE “:i” at the end.
D:\Arduino\hardware\tools\avr\bin\avrdude -v -C D:\Arduino\hardware\tools\avr\etc\avrdude.conf -p atmega328p -c arduino -P \\.\COM4 -b 115200 -U flash:w:microaprs-5v-kiss-latest.hex:i
If this works, you can unplug the Arduino from the computer, put your shield back on, plug it into power (NOT your pc’s USB port), and your radio and if you did everything right…
Oh yeah, you have to download and set up APRSdroid on your phone.
Then in your phone’s settings, pair with HC-06, or whichever bluetooth name appears when you turn on your new device.
Go into preferences in APRSdroid, and set it up with your callsign and which picture you want and your other details and then go to “Connection Preferences”. Select “Connection Protocol” and choose “TNC (KISS)”, Connection Type should be “Bluetooth SPP”. Client Mode should be checked, now select “TNC Bluetooth Device” Pick your new device from the list and APRSdroid is ready to roll. (it will automatically connect from now on).
Turn your radio on and tune it to your region’s APRS frequency (Australia is 145.175MHz), and hit “Start Tracking” on the main screen in APRSdroid.
You should now be able to find yourself on aprs.fi shortly after your signal is transmitted.
You may have to play with the radio’s volume knob to get a level the TNC likes for successful decoding of other people’s signals.
Okay, your instructions suck. Where can I find more information from someone I can understand?
However the circuit diagram above is lifted direct from Mark’s website or the linked Github (Can’t remember which), and it was the closest I could find to instructions. Between the two circuit pictures above there should be enough information for most people who are interested in building radio gear to make it work.
Note I did not design the TNC, all I did was build it and add bluetooth and write up this blog post. Credit to Mark from unsigned.io for doing all the hard work.
And thanks also to Jharwin in the comments below for letting me know a few mistakes I made.
73s – VK3DAN