raspi-pico-aprs-tnc/README.md

2.8 KiB

raspi-pico-aprs-tnc

A TX-only TNC (Terminal Network Controller) to generate the AFSK audio tones for APRS (Automatic Packet Reporting System) messages using a Raspberry Pi Pico microcontroller board.

An analog line-out audio signal will be generated at GPIO-pin 'GP0'. You can observe it by using a scope, listen to it by using an audio amp, or connect it to any RF transceiver to send it on the air (ham radio license required).

AFSK scope screenshot

Image: Pico's output signal probed by a DSO. We clearly see the 1200 Hz and 2200 Hz tones of the 1200 Bd 2-AFSK.

Basically, the data/signal flow is as follows:

APRS (text msg + geo-coordinates + meta-data) -> AX.25 -> PCM -> PWM -> Band-Pass filtering -> AFSK audio signal

Both a static library libaprs_pico.a and an example application will be generated by the build.

Preliminaries

Your host platform for cross-compilation is assumed to be LINUX.

  1. Install the Pico-SDK following the instructions given in the Raspberry Pi 'Getting Started' Guide (pdf)
  2. Set the PICO_SDK_PATH environment variable to point to your Pico-SDK installation directory

Hardware

We just need a simple band-pass filter to extract the AFSK-signal from the PWM signal:

band-pass filter

Build the library and the example application

(cd into the cloned dir)
cmake -S . -B build
cmake --build build

build/lib/libaprs_pico.a and build/aprs_pico_example.xxx will be created.

Run the example application

cd build
(flash 'aprs_pico_example.uf2' or 'aprs_pico_example.elf' to the Pico board as usual)

The GPIO-pin 'GP0' is the line-out for the analog AFSK-signal. You can observe it by using a scope, listen to it by using an audio amp, or connect it to any RF transceiver to send it on the air (ham radio license required).

TODO (Aug 2021)

  • Thorough evaluation, in general
  • Send the APRS message on the console (USB or UART) rather than hard-coding
  • Show how to physically connect to a Baofeng HT
  • PTT control for RF transceivers

Ingredients / Acknowledgements