APRSFile: A basic file transmission protocol for APRS

APRSFile is a basic file transmission protocol for APRS that allows for the transmission of files via APRS. Any type of file can be transmitted (photos, text, audio files), though the transmission rate is not very fast.

Basics of the format

The format encodes files to Base64 before sending them over aprs. Base64 is a standard format that can be easily decoded. Encoding the files with Base64 allows for the files to have characters in them that would not be allowed in normal APRS messages, allowing for binary files such as images to be transmitted. The format starts each file transmission with an initial message that states the name of the file and an ID. Every packet that contains the Base64 data will be prefixed with the ID.

Here is an example of an initial message: "APRSFile|test.txt|FPV|BASE64 Encoded Data".

After the initial message is sent, the messages containing the Base64 data are sent.

Here is an example of a message with the Base64 data prefixed with the ID: "FPVVGhpcyBpcyBhIHRlc3Qgd2l0aCBBUFJTRklMRS4=".

64 characters of Base64 data are sent in each message.

Using the format

You can use this web tool to decode files sent over the APRS network. It will automatically fetch the APRS data from the callsign. The web tool is currently not working due to Heroku discontinuing free plans. It will hopefully be back up in the future.

APRSFile Web Tool

You can use these python scripts to do the encoding and decoding. Here is a link to download them: aprs-file.zip The zip file contains instructions on how to use the scripts.

Transmitting files

After encoding the file with the scripts, you will have some wave files. These files can be played into a radio and transmitted. You can transmit on the APRS frequency. You can also transmit on any frequency that will support 1200bps AX.25. Please follow the regulations in your county. Also, please be considerate to other users on the APRS frequency and do not hog the frequency by playing all the files in quick succession.

Here are some examples of some files sent with this protocol.

Examples

Here is an image transmitted over APRS:

APRS

Large Collection of Miscellaneous Amateur Radio Resources