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

6 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: http://www.exar.com/common/content/document.ashx?id=248&languageid=1033&type=applicationnotes&part=xr2211a 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: https://github.com/markqvist/MicroAPRS/blob/master/hardware/AFSK.c
      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 :)

  3. 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 http://www.cypress.com/file/42141/download 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 ?

Leave a 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>