AX.25 Packet Modem
A software-defined AX.25 packet radio modem built entirely on Arduino with PWM audio output and ADC decoding.
During late 2012, I built a packet radio modem for 1200 baud AFSK (AX.25) from scratch on an Arduino. The goal was to accomplish as much as possible in software with minimal external components.
Design
- Hardware PWM creates output waveforms using direct digital synthesis
- Low-pass filter smooths the PWM output
- ADC samples receive audio at 8kHz for software decoding
- External SPI SRAM chips provide packet memory (512kbit 23LC512)
The audio decoder is based on code from the BeRTOS AX.25 stack, adapted for standalone use without the full BeRTOS operating system.
Software
The source is available on GitHub. Built with Atmel Studio rather than the Arduino IDE for more flexibility with modules. While originally designed for APRS, it evolved into a generic TNC with APRS capabilities.
This project has 80+ stars on GitHub and has been forked by many other amateur radio operators for their own packet radio experiments.