tncd

AGWPE-to-KISS Translation Bridge for packet radio

GitHub Releases Documentation GPL-3.0

About

tncd is a userspace bridge that lets AGWPE-compatible applications (Winlink, Xastir, APRSIS32, etc.) talk to KISS TNCs — serial, TCP, or Bluetooth.

It implements full AX.25 connected mode including SABM/UA handshake, I-frame sequencing, and RR acknowledgement, with no kernel AX.25 stack required.

x86_64 i686 arm64 armhf riscv64

Install

Debian / Ubuntu

curl -fsSL https://tncd.dev/tncd.pub \
  | sudo gpg --dearmor \
  -o /usr/share/keyrings/tncd.gpg

echo "deb [signed-by=/usr/share/keyrings/tncd.gpg] \
https://tncd.dev/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/tncd.list

sudo apt update
sudo apt install tncd

Fedora / RHEL / CentOS

sudo curl -fsSL \
  https://tncd.dev/rpm/tncd.repo \
  -o /etc/yum.repos.d/tncd.repo

sudo dnf install tncd

openSUSE

sudo curl -fsSL \
  https://tncd.dev/rpm/tncd.repo \
  -o /etc/zypp/repos.d/tncd.repo

sudo zypper refresh
sudo zypper install tncd

Arch Linux (AUR)

yay -S tncd

Or any AUR helper. System deps are resolved automatically.

Packages include all Python dependencies. Only python3 and bluez need to be installed separately (usually already present).

Quick Start

Copy the example config and edit it for your TNC:

sudo cp /etc/tncd.ini.example /etc/tncd.ini
sudo $EDITOR /etc/tncd.ini

Enable and start the service:

sudo systemctl enable --now tncd

For a Bluetooth TNC, also start the rfcomm manager:

sudo systemctl enable --now tncd-rfcomm

See the README for full configuration reference.