Hi all,
I have a couple Kenwood TM-D710G radios with integrated TNCs. As the APRS.fi iOS app recently got an rx-igate feature and is now able to connect to TCP TNCs, I thought it might be an interesting project to try and get the iOS app working with the Kenwood integrated TNC.
The Kenwood TM-D710G TNC can run in full KISS mode, but it needs to first be initialized by issuing "KISS ON" followed by "RESTART" to the serial port.
The following is done with a Raspberry Pi 4 running a standard Raspberry Pi OS. The Kenwood's TNC serial port is attached to an FTDI USB-RS232 adapter (visible in Linux as /dev/ttyUSB0).
I managed to automate the KISS initialization and share the serial port with Linux's ser2net application. I have the following configuration in /etc/ser2net.conf:
OPENSTR:initkiss:\r\nKISS ON\r\nRESTART\r\n
8001:telnet:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT initkiss
After this, I configured avahi-daemon to advertise the ser2net tcp port. I added the following to /etc/avahi/services/kenwood.service:
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Kenwood TM-D710</name>
<service>
<type>_kiss-tnc._tcp</type>
<port>8001</port>
<txt-record>pn=144.800 1200</txt-record>
</service>
</service-group>
A quick systemctl restart avahi-daemon later and the iOS app now shows the TNC, is able to connect to it and is able to decode packets from it.
The Raspberry Pi and the iPhone are both connected to my home wifi. My plan is to have this setup in my car, by having the Raspberry Pi connect to my iPhone's wifi hotspot.
This is just a quick hack, perhaps someone can improve upon this. One idea for improvement would be to have ser2net share the serial port in raw mode and do the KISS mode initialization separately.
-Tuomas OH3ERV