For tracking purposes on a holiday trip to France I was looking for a small solution allowing APRS to run. For a spare Raspberry Pi I picked up a TNC-Pi and a small 2.8” touchscreen display. That allowed xastir to run on that machine. GPS data is feed to the system from an ublox NEO-6M GPS receiver connectet to the Raspberry Pi via an FT-232 USB-RS232 adatper. The raspian image is configured to start the graphical desktop on the 2.8” display and launch xastir automatically.
The kernel image was taken from Adafruit because that includes the kernel modules for running the PiTFT display and the touchscreen. The 4 push buttons require an extra kernel module that I could not build yet but will follow up upon.
I had this equipment connected to my IC-706 MK2G while driving the camper. The GPS reception was excellent but the number of reachable repeaters not. So I had to further test this construction on the bench at home after the journey.
The technical details: The TNC is configured to connect the Raspberry Pi via I2C bus. That leaves the only onboard async serial line free. I want to hardwire a GPS RX to that in the future. The linux system uses the kernel AX.25 stuff in order to attach the device via kissattach. Inbetween there is i2ckiss which emulates the kiss device towards the kernel and communicates with the TNC using the I2C bus. The manual for the TNC-Pi is available from  and describes the assembly of the hardware as well as how to configure the TNC.
I used the pitnc_setparams and pitnc_getparams  to set the TNC to I2C mode and removed jumpers JP3 and JP4 to disconnect the async line to the Raspberry Pi. Furthermore i2ckiss was used to attach the TNC via the I2C bus. That binary can be found at . The TNC is activated from the rc.local file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
The config of the /etc/ax25/axports file is simple:
1 2 3 4 5 6 7 8 9
So this makes the TNC-Pi available as kernel AX.25 device. From here on it can be used from xastir as AX.25 TNC in the configuration. To display the user interface on the TFT screen X needs to be configured to use /dev/fb1 as frambuffer device. I created a new file /usr/share/X11/xorg.conf.d/99-fbdev.conf with the following content:
1 2 3 4 5
The last thing that needs to be done is to autostart xastir on launch of the graphical desktop. That is again done by creating a file .config/autostart/xastir.desktop in the home directory of the user pi with this content:
1 2 3 4
Normally xastir cannot use the kernel AX.25 devices as non-root user. As it runs as user pi here I simply set the suid bit of the executable with sudo chmod +s /usr/bin/xastir.
The GPS device is configured as “Serial GPS” in xastir and requires to set the correct device name and baud rate. I created an udev rule to have a symlink to the actual serial device as /dev/GPSmodule. That can be achieved with a udev rule that triggers on the serial number of the FT232 device. My /etc/udev/rules.d/55-usb-serial.rules contains:
And finally a few pictures from the setup.