The 10 € TNC
by Antony Chazapis
Mobilinkd make a nice Bluetooth-enabled TNC. At their site, one can also find the firmware for a simple, Arduino-based TNC, along with detailed instructions on how to interface the Arduino board with a radio. What is even more interesting, is that the Arduino Nano board, used in the example implementation, can be found at extremely cheap prices. While an original one costs over 30 € in Greece, I found a shop selling a clone for 5.5 €! If I had all the other parts required for interfacing with the radio, this project would cost me even less than 10 €.
I first sketched out a simple layout for the adapter board (the “shield” in Arduino nomenclature), and then soldered all the components on perforated board. The Arduino Nano clone uses the CH340G chip for serial communication, which required a driver for Mac OS X. To flash the firmware, I used the avrdude binary included in the Arduino application and the following commands (adjust the serial port and firmware location if you use these):
cd /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin ./avrdude -v \ -C ../etc/avrdude.conf \ -c arduino \ -p m328p \ -b 57600 \ -P /dev/cu.wchusbserialfd120 \ -U ~/Downloads/mobilinkd-473-arduino.hex
The first test was with the TNC connected to my Yaesu FT-897D’s data port. On the other side of the TNC, I connected the TP-Link TL-MR3020 running Aprx, as described here. I could send packets, but not receive a thing.
I searched around the Internet and found that the output level of the radio’s data port is 100 mVolts peak-to-peak. That was clearly not enough for the TNC. (Mobilinkd also provide a tool to monitor the input level.) I either needed some kind of amplifier, or to connect the input to the headphone or speaker output. I changed cables to interface with the radio’s front headphone and microphone sockets. This time the TNC would hear incoming packets as well! I set Aprx to act as an IGate and set off on a car ride with my VX-8GE and a small external magnet antenna, to see if it could track me far enough. And it did – up to the edge of the city.
The Mobilinkd TNC supports 1200-baud AFSK only. A quick look at it’s source code reveals it is based on BeRTOS. A similar BeRTOS-based TNC is investigated by KI4MCW here, while a comprehensive list of Arduino-based TNCs and various implementations is provided by M1GEO here. With an Arduino, you can also build a MicroModem. M0PZT has used an Arduino UNO clone to build the Mobilinkd TNC and has made a video showing it working at his site.