APRS Objects

APRS is a system used by the amateur radio community to send location and other data using radio. Your maps in CalTopo and SARTopo can be setup to display APRS objects in various scenarios.

General map setup

While there are various methods to get your APRS messages into the CalTopo/SARTopo system (covered below), tracking them on your map is the same.

All location objects require the map to be saved PRIOR to adding locator type objects (whether inReach, APRS, or others).

See the Integration with Garmin inReach article and follow the CalTopo Setup to create a map and add a locator object. With the "type" field set to APRS, you will put the FCC call-sign of your station (ex: N7ABC, WA7ABC) in the call-sign field.

After finishing the steps above, your map will have a Locator Group with the label you specified. As APRS messages are received from the call-sign you specified, a Locator will be added or updated on the map. It is possible to have multiple APRS objects using one call-sign by utilizing the SSID suffix (-7, -9, etc). In this case, your map will show one object for each unique call-sign + suffix identifier (ex: one Locator Group with call-sign "N7ABC" could result in two Locator objects on the map, N7ABC-7 and N7ABC-9).

CalTopo online, APRS messages heard by online gateway

In some areas, APRS internet gateways have been established. Sites such as https://aprs.fi allow anyone with a web browser to view position reports that have been heard by these gateways. The https://caltopo.com and https://sartopo.com web sites are connected to these gateways so that you can track objects on your map with no additional setup.

  1. Ensure your APRS messages are making it to a gateway by checking APRS.fi or similar site
  2. Add a Locator Group to CalTopo using the appropriate call-sign

Position updates at the gateway will now show up on your map. APRS objects on your map will also appear in Desktop or mobile offline versions of CalTopo that are actively syncing to the online server.

CalTopo Desktop connected to APRS radio

When you are running CalTopo Desktop, either with or without internet access, you can listen for APRS traffic using a radio and TNC connected to the computer (some radios have the TNC built in).

  1. Use a terminal program (such as PuTTY for Windows) to verify APRS traffic is present on the serial port (ex COM4 or COM7 on Windows, /dev/tty.something or /dev/cu.something on MacOS). Messages should be in plain text, CalTopo currently does not support devices in KISS mode.
  2. Edit your cal.properties or sar.properties file to add an entry for each serial port you want to monitor, and restart your Desktop server.
    
    sarsoft.location.aprs.local.enabled=true
    sarsoft.location.serial.COM8=1200,8,1,0
    

While setting up local APRS, or as a troubleshooting step, you can add the following line to your properties file to display messages received by CalTopo:

log4j.logger.org.sarsoft.location.service.APRSLocalEngine=INFO
log4j.logger.org.sarsoft.location.service.APRSSerialThread=DEBUG

If your CalTopo Desktop is actively syncing with the online server, then objects based on locally received APRS traffic will sync to the online website and other connected Desktop or Mobile clients.

Setting up a CalTopo APRS gateway

In the local scenario above, only maps on the Desktop server will be updated with locally heard APRS traffic. If someone on https://caltopo.com creates a new map and Locator with the same call-sign that is not synchronizing with the Desktop server, the Locator object will never be updated.

It is possible to have your Desktop server forward all APRS messages heard locally to an online server. Add a line like the following to your properties file:

sarsoft.location.sync.enabled=true
sarsoft.location.sync.dest=https://caltopo.com/rest/location/update/position

CalTopo Desktop listening to APRS gateways

It is possible to have CalTopo Desktop listen to the APRS gateways directly. You will need an amateur radio call-sign. Add the following lines to your properties file:

sarsoft.location.aprs.is.enabled=true
sarsoft.location.aprs.is.user=<your-call-sign, ex: N7ABC>