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?

Just 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.

Resource usage

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!

Beta status!

Please remember that this library is very new, and I still consider it “beta quality”. It might do weird stuff, so be careful ;) And please let me know if you find any bugs, so I can squash them!

19 thoughts on “LibAPRS

  1. First of all, compliments for your work, it’s very interesting!
    I’ll give it a try on arduino as soon as I have some free time.
    I was wondering, can this library be easily modified to achieve a simpler ask1200 modem without the specific features of aprs, but mantaining the other features, as the ccir checksum or CDMA?
    Best regards.
    PS I’ve recently sent you an email to the address reported in your contact section, but it may have been lost.

    1. Hi Dan! I did get your mail, I have just been very busy finishing up everything regarding the new MicroModem release. I will send you a reply to your mail tomorrow!

      1. Mark:

        Can you copy me on your response to Dan Re: simple AFSK 1200 baud modem. I have the same interest. And I also want to implement CSMA without KISS. Your guidance is appreciated.

        Henry
        p.s. you should also have an order from me for a test modem. thx

      2. Hi Mark
        I’m interested too on data transmission (no APRS) could you copy me too ?
        Thanks
        Mauro

      3. Also interested in this. May start modifying the library myself but if there has already been work done I would love to see it.

  2. In the example you use a GPS lib. Do you hav a link or something for that lib?

  3. Hi.

    I see you helped Tanner with changing the way the PTT works. High for RX and LOW for TX.

    I have looked through the files but cant seem to find the same lines i any of the lib files. Can you pleas advice on how to go about? Im trying to use the same radio as Tanner (DRA818V) in a tracker..

  4. Oy there,

    Thanks for this really nice lib. Looking incredible while browsing threw the code.
    My question is quite simple, you were talking about sending raw data and anything else with this library. Would it be possible to interact on the arduino console with serial monitor to send data directly, like you described at the MicroAPRS page. (! or #) or setting your callsign with c. I was not able use this commands nor have I found them in the library.

    Best regards

    1. To do this with the library, you would need to make a simple command parser yourself. If you need hints on how to do it, take a look at the source code for the SimpleSerial version of MicroAPRS!

  5. I am interested in this project. I was looking to do something like this myself so I could customize it as I have a couple projects in mind, but this is the next best thing. I have noticed that you don’t call out any pins for the communication. Is it possible to define different pins for different functions, or can I only uses the ones you defined (and which ones are those)? I also see you have a message command and position command, is it possible to just pass raw APRS data to it?

    Thank you for taking the time to make this library.

Leave a Reply to Dan Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>