This is a fork of LibAPRS designed to run on the ESP32.
The ESP32's adc1_get_raw()
/ adc2_get_raw()
methods can only be called at about 6000Hz; LibAPRS wants 9600Hz.
To get around this limitation, this fork uses the ESP32's I2S peripheral to drive both the ADC and the DAC.
The API remains roughly the same.
However, if you aren't using AFSK_transmit
or ax25_sendVia
to send packets, you need to call finish_transmission
to actually send data to the ADC over I2S.
LibAPRS is an Arduino IDE library that makes it easy to send and receive APRS packets with a MicroModem-compatible modem.
You can buy a complete modem from my shop, or you can build one yourself pretty easily. Take a look at the documentation in the MicroModem repository for information and getting started guides!
See the example included in the library for info on how to use it!
- Send and receive AX.25 APRS packets
- Full modulation and demodulation in software
- Easy configuration of callsign and path settings
- Easily process incoming packets
- Shorthand functions for sending location updates and messages, so you don't need to manually create the packets
- Ability to send raw packets
- Support for settings APRS symbols
- Support for power/height/gain info in location updates
- Can run with open squelch
- Download the library: https://github.com/markqvist/LibAPRS/archive/master.zip
- (In the Arduino IDE) Sketch > Include Library > Add .ZIP Library... > select the downloaded file > Open
You should read through the "Basic_usage" example included with the library. It contains an explanation of all the functions and a basic sketch to get you up and running with sending and receiving packets.
This library is very early, and being actively developed all the time. This means you should expect to find bugs. If you do, please report them here, so I can fix them! It also means I might have to make changes that will break code, and that you will have to rewrite your sketch. If you don't think that sounds good, wait a little while for a stable release of the library :)