Table of Contents
The KISS TNC app turns the PortaPack into a bidirectional KISS TNC (Terminal Node Controller) over the USB serial port. It receives APRS/AX.25 packets from radio and forwards them to a connected PC as KISS frames, and transmits KISS frames received from the PC over radio as AFSK 1200 baud AX.25.
What is KISS TNC?
KISS (Keep It Simple, Stupid) is a protocol that allows a PC application to send and receive AX.25 packet radio frames through a TNC over a serial connection. With this app, the PortaPack acts as the TNC, and the USB serial port is the link to the host PC. Any APRS or packet radio software that supports a serial KISS TNC can be used — for example Direwolf (as a client), APRSISCE/32, APRSdroid, or custom scripts.
Controls
| Field | Description |
|---|---|
| Frequency | RX/TX frequency. Default: 144.390 MHz (APRS standard) |
| RF Amp | RF amplifier on/off |
| LNA | LNA gain |
| VGA | VGA gain |
| RSSI | Signal strength indicator |
| USB | Shows Connected or Disconnected — whether the PC has opened the USB serial port |
| RX | Count of AX.25 packets received from radio and forwarded to the PC |
| TX | Count of frames received from the PC and transmitted over radio |
| Console | Live log of received packets, shown as SOURCE>DESTINATION |
The status line at the top toggles between Listening (RX active) and Transmitting (TX in progress).
Connecting a PC
Connect the PortaPack to the PC via USB. The USB serial port appears as a standard CDC serial device. Open it in your packet radio software and configure it as a KISS TNC at any baud rate (the USB CDC connection is not baud-rate limited).
Note
On Linux the device typically appears as
/dev/ttyACM0. On Windows it appears as a COM port. No driver installation is needed on Linux or macOS; Windows may require the standard CDC driver.
Operation
- RX: The app continuously listens on the configured frequency. When a valid AX.25 packet is decoded, it is wrapped in a KISS frame and sent to the PC over USB serial. The RX counter increments and the packet's source and destination callsigns appear in the console.
- TX: When the PC sends a KISS data frame (command byte
0x00) over USB serial, the app switches to transmit mode, sends the AX.25 frame as AFSK 1200 baud Bell 202, then automatically returns to RX mode. The TX counter increments for each transmitted frame.
Warning
The maximum transmittable frame payload is 200 bytes. Frames larger than this are silently discarded.
Technical details
| Parameter | Value |
|---|---|
| Modulation | AFSK Bell 202 |
| Baud rate | 1200 baud |
| Mark / Space | 1200 Hz / 2200 Hz |
| Default frequency | 144.390 MHz |
| Max TX frame size | 200 bytes |
| KISS framing | Standard KISS (0xC0 FEND, 0xDB FESC escaping) |
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Start here
Contributors
How to collaborate
Contributing Guidelines
How to ask questions correctly
Hardware
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
- Description of the hardware
- Enclosure/cases
- Repairs
- Mods
User manual
Intended use and Legality
- Usage cautions
- First steps
- Firmware update procedure
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- What if I don't like some of the apps
Applications
- 📥 Receivers
- 📤 Transmitters
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
- ▶️ Replay
- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
Misc
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi), or other weird distros
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.