What is it?
LibAPRS is a library for the Arduino IDE, that makes it easy to write your own APRS applications for a MicroModem, or compatible build. It allows you to send and receive APRS packets, location updates and messages using simple functions in the Arduino IDE. All the AFSK modulation/demodulation, AX.25 handling, and such is running transparently in the “background” in interrupts, so you can focus on implementing exactly what you want!
How do I get started?
The easiest way is to install the Unsigned.io Board Support Files in your Arduino IDE. There is a guide available on this page. When you add the files, LibAPRS will be automatically included. Remember to select “MicroModem” as the board for the library to become available (even if you are using a self-built modem).
You can also download the latest version of the library from the LibAPRS GitHub page, and place it in your Arduino libraries folder.
Take a look at the included example for an explanation of the different functions.
Compiling an Arduino sketch with just the library and nothing else uses around 4000 bytes of flash and 831 bytes of RAM, so there should be plenty of space left to implement your application. The library uses TIMER1 for running the interrupts, so don’t change TIMER1 configuration!
Found a bug?
LibAPRS has been used in many different projects, from hoppy to commercial products, but there might still be bugs hiding somewhere. If you find one, please report it so I can fix it!