It's here! I have just released the first version of LibAPRS for the Arduino IDE! You can now write your own APRS firmwares for MicroModem or compatible builds directly in the Arduino IDE. Check out the LibAPRS page for more details. Per the time of this post, the library is considered beta status, so please let me know if you find any bugs! And ask away in the forums if you have any questions

13 thoughts on “Arduino APRS Library

  1. When the serial monitor displays the settings from the basic example sketch, it is showing the lat and long as both N/A.
    I originally thought it may be because I got the format wrong so I changed it back to your example lat and long and it shows the same thing. Any ideas?

  2. I have been looking at the AFSK part of your library with a view to building a replica of the MicroModem on an Arduino Uno basis for the purpose of receiving and interpreting telephone Caller ID information, which is sent in a Bell 202 compatible format with non standard framing.
    Most of the published methods for doing this rely on chips which are now no longer obtainable.
    The Caller Id format is described here: in an application note (for an obsolete chip).
    The packet framing and modulation part would not be relevant, only the AFSK demodulation.
    I have 3 questions:
    1. can you comment briefly on the feasibility of doing this ?
    2. can you in one short sentence, and a link, state what the mathematical basis is for the AFSK demodulator ?
    3. are you considering creating such an development (as I have described above) as say an example in the LibAPRS library. If so, I would then wait to see what you produce.

    1. Hi DougX!
      It’s interesting that quite a few people have actually requested this lately. I am getting more and more interested in doing a firmware for this purpose, since the interest seems to be there. I’m not making any promises as to when, but I will probably have a go at it 🙂 Thanks for the link to the PDF, that’s great info!
      For your questions:
      1 – Absolutely feasible, and should not be too much trouble, basically some framing and coding changes from the current firmwares. Doable in a few afternoons I guess. I might be completely off, but that’s just my initial guess 🙂
      2 – I’m not skillfull enough with words to do that in one short sentence. Actually I think the best way I can explain it is how I already did here:
      The code and comments in that file actually tell it all 🙂 It’s not short, I know, but it’s the best explanation I have!
      3. As mentioned above I am very much considering developing such a firmware. I hope I will have the time soon, but I have one other project I want to finish first 🙂

    2. Hi DougX – this sounds great! Can you share how this is going?
      — Markus

  3. Hi Mark, can you send me an email? I’ve a private question about your Arduino modem and a new idea!

  4. OK. Many thanks for your response. I am just following this up again after more than a year.
    I now have a working version of this telephone caller line identification module for an Arduino Uno etc. based on a stripped down version the Arduino APRS library.
    In fact, I use only a rework of part of the AFSK.cpp and the FIFO routines, plus of course a parser for the formatted data packets.
    This is now in use at home, is accurate, and fulfills its purpose of displaying, on a large display, the number of the current caller, together with the caller name which is supplied by the telephone company in ‘MDMF’ formatted data packet also with a time stamp. Numerous enhancements come to mind, including a white list spam filter which suppresses the ringing for unknown callers and drops the caller after a timeout onto voice mail. But these enhancements are for the future.
    Anyway, I’m preparing this for publication soon (somewhere – maybe even here ?) after tidying it up a bit and producing some documentation. Naturally, I will also acknowledge the key input from the APRS library.
    What I’d like to do is to include a reference for how it works, at least in broad terms and there is one part I have no explanation for. It is the formula for differentiating between a mark and a space based on multiplying a sample with a delayed sample. I guess that it is using the correlator technique similar to the one described here with a delay line of a half a transmission bit width (~416uS). Is that more or less how it is or is there a more appropriate reference ?

    1. I’ve added a relatively simple HTML/Java Script based AFSK generator to this collection of telephone caller id systems. Although it is specifically designed for testing data transmission in telephone systems, it could be adapted with little effort for generating APRS signals since the underlying AFSK bit encoding is identical. The framing of course is different and would require some work. May be someone here finds it useful:

  5. Hi Mark,
    Was wondering if you have any updates to LibAPRS or the MicroAPRS stuff coming up in the next few months. I’ve built what I think is the MicroAPRS board (from DIY resources on your site) and am now about to use the LibAPRS library to see if I can write a sketch that will send/receive APRS packets. But if you have updates coming, I’ll hold off.
    — Markus K1FIG

  6. Good morning,

    I’m building the APRS tracker for my station PE2RVD.
    I’m using a NANO32 and blox GPS received.
    But the software is not working as all libraries seems to have problems and including other libraries which are not included in the files.
    As I’m starting Arduino and still building and programming 3rd party programmings, I don’t understand it anymore ;-P
    Does anybody has the complete GPSv4 file including the right libraries for programming?

    I’m using a Vertex VX-231 radio for transmission of the APRS packages.

    Thank you in advance!

Leave a Reply

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