Story
In the 1980s, amateur radio enthusiasts developed digital data exchanges using their analog radios: packet radio with AFSK modems (typically the TCM3105). I revisited packet radio to exchange text messages using radios and two autonomous terminals. The setup runs on an Arduino Mega with a USB host shield for keyboard input. The information carrier can be any voice-capable device; here, it's a pair of Chinese UHF radios (UV-5R clones).
This project is strictly for educational and experimental use. All tests were done using 50-ohm dummy loads and the lowest power setting to ensure no emissions were transmitted over the air.
https://www.youtube.com/watch?v=b3W93Ya-uQM
Disclaimer
Users must comply with all applicable local laws and regulations regarding radio transmissions and encryption. This project is intended exclusively for post-apocalyptic scenarios—when civilization has collapsed and regulatory agencies are no longer a concern.
Demonstration
Here's a demonstration video with two "communicators" using these modems to exchange textual messages. The radio transmission is carried out by Baofeng UV-5R radios, a widely used UHF radio model. A third radio allows you to hear the frames "passing." You can hear the carrier, then the modulation at the moment of message exchange.
Features:
Text message exchange
Sending and receiving GPS coordinates
Navigation toward specific coordinate
Revisiting Packet Radio: AFSK and the TCM3105 in a Modern DIY Setup:
In the 1980s, amateur radio enthusiasts developed digital data exchanges using their analog radios: packet radio with AFSK modems (typically the TCM3105). I revisited packet radio to exchange textual messages using radios and two autonomous terminals that allow message input via a USB keyboard. The entire setup operates with an Arduino Mega and a USB shield (this project dates back several years). The information carrier can be anything that transmits voice; in this case, it's Baofeng UV-5R radios.
In packet radio, data is grouped into packets and sent from a transmitting station to a receiving station. These packets include information such as content (messages, GPS data, etc.), source and destination station addresses, error correction mechanisms, and more.
The most commonly used protocol for structuring these packets into frames is AX.25, which handles addresses, commands, and CRCs for error correction.
How are the bits in these frames physically transmitted over an analog radio?
Often by using AFSK modulation, as it allows the use of any radio capable of transmitting voice. The most commonly used component, found in DIY projects of the past and even today, is the TCM3105, an integrated circuit designed for AFSK (Frequency Shift Keying) modulation and demodulation.
The transmission speed is 1,200 baud, with two distinct tones representing bits 0 and 1 (1,000 Hz and 2,000 Hz, respectively). Upon reception, the TCM3105 demodulates these tones to retrieve the digital data. This component is still widely available today at minimal cost, especially on Chinese platforms like AliExpress (it's unclear whether they are newly manufactured or from old stock).
How does it work?
As I found the idea of combining modern microcontrollers with these retro modems appealing, I built terminals that allow the exchange of textual messages entered via a USB keyboard, incorporating AES encryption, GPS coordinate sending and receiving, and more. The data frames, while inspired by AX.25, adopt a different format to leverage two types of error correction.
Each 16-byte frame (14 characters for the message and 2 bytes for message context) is augmented with 4 bytes for Reed-Solomon correction (called "parity" or "syndrome," representing the data added to detect and correct errors). The entire frame is then further reinforced with additional correction based on the Hamming (7,4) code, which encodes each 4-bit data block into a 7-bit block, adding 3 parity bits.
This robustness is necessary because the presence of encryption renders a partially corrupted message unusable. Additionally, transmissions are simplex, which doesn't allow for confirmation of successful message reception.
The encryption keys stored on an SD card are synchronized between different terminals using GPS time. Encryption itself can be enabled or disabled. The GPS is also utilized to transmit its coordinates or guide the user (by azimuth and distance) to a pre-recorded or radio-received coordinate.
System Overview
The diagram shows the full architecture of the off-grid AFSK communicator terminal. At its core lies an Arduino Mega 2560, selected for its numerous serial and parallel interfaces. The system is powered via a standard USB port, making it compatible with power banks or solar power supplies.
Communication with the analog radio is handled through a TCM3105 modem connected to Serial Port 0. This modem performs AFSK modulation (1200 baud, 1000 Hz for binary 0, 2000 Hz for binary 1), allowing digital messages to be transmitted as audio tones over any voice-capable radio, such as the Baofeng UV-5R.
Positioning data is provided by a NEO-M6 GPS module, connected to Serial Port 1. This module not only delivers real-time coordinates but also plays a key role in synchronizing encryption keys between terminals. A DS3231 real-time clock, connected via I2C, ensures reliable timekeeping across power cycles.
Encryption keys used for AES encoding are regenerated every 2 minutes based on the current time. When GPS is available, the GPS time is used as the reference. If not, the system falls back to the DS3231 RTC. This allows both encryption synchronization and temporal anonymity, even in offline conditions.
The system includes a microSD card formatted in FAT32 (512 MB), connected over SPI1. It is used to store settings, logs, and the current encryption key. Text input is made possible through a USB keyboard connected via a MAX3421 USB Host controller. For navigation and basic interaction, three hardware buttons are directly interfaced with the Arduino.
A 128x64 monochrome LCD with a parallel interface displays messages, system status, and navigation information. The overall design reflects a balance between robustness and modularity, mixing retro-tech with modern embedded solutions to offer a reliable communication platform for off-grid scenarios.
Not for commercial use – © Selva Systems – Contact for license