FX25 APRS in Javascript by Kevin Poulton M0VXY.

This is a proof of concept packet generator for APRS, implemented in Javascript. It uses FX25 forward error correction. I primarily built it to learn about the APRS protocol, but I have also hope it will serve to help anyone trying to implement in code some of the more obscure practical components of creating a AX25/FX25 frame generator, and the modulation of the resulting frames over AFSK.

Credits

I can't pretend to have originated much of this!

FSK code has been adapted from http://sixteenmillimeter.github.io/Javascript-FSK-Serial-Generator-for-Mobile-Safari/. Most important addition I made was to ensure phase continuity of the FSK signal.

CRC check in AX25 based on http://practicingelectronics.com/articles/article-100003/article.php. .

Reed-solomon coding for FX25 reverse engineered from Direwolf. In addition, I have used direwolf as my reference case - outputted frames have been checked bit by bit against the direwolf output.

How to use?

Populate the Source Address field below. Leave the digipeater setting blank unless you know what you are doing. Set your radio to your local packet frequency (e.g. 144.800 for me in the UK), and transmitting the produced sound through the radio. Go to https://aprs.fi/ and see if you have been heard!

Your callsign in uppper case. The SSID is used if you have multiple locations to distinguish between your stations. E.g. 2E0LDN-1 is different to 2E0LDN-3.
The destination address, limited to 6 characters, is used as a software identifier. APZxxx represents experimental software.
Enter a comma separated list of digipeaters if you want to use these. Leaving blank is probably preferable for testing.