Update: 3/20/2023 - CalTopo now has KISS support, rendering the information below unnecessary.
SARTopo/Caltopo is a great tool for making maps as it has an option to generate printable PDFs with specific scales (1:24000) and either a UTM or USNG grid. These work well with a compass for land navigation. There is an offline version of their software that even supports APRS objects. I started exploring this option as I would like to be able to connect SARTopo offline to a local radio without needing any IGATE or internet access.
The SARTopo/Caltopo offline/desktop version requires input in the TNC2 format, used most often by IGATEs. The standard output from Direwolf comes close but includes some extra information about audio level/channel that causes problems for SARTopo.
Hardware
Yaesu FT-857d
Signalink USB
Laptop with Windows 10 Pro
Direwolf
Install Com0Com virtual port
Follow Direwolf instructions to setup virtual com port pair (COM3/COM4)
Make sure to test using Putty or Telnet
Install Cygwin and the packages mentioned in the Direwolf User Manual
Clone the git repo per instructions in User Manual
Checkout the DEV branch
Edit the source on direwolf.c and change lines of code in app_process_rec_packet to not print out [%d.%d%s] or [%d%s]
Follow the Direwolf User Manual steps to build new executables. Version 1.6 is slightly different than the manual. When you run "make", it will tell you the new process.
Now you have an executable that can send data to the Sartopo application.
Setup a batch script to launch Direwolf and dump the output to COM3.
C:\cygwin64\home\<username>\direwolf\build\src\direwolf.exe -l C:\Radio\Direwolf\logs -c C:\cygwin64\home\<username>\direwolf\build\src\direwolf.conf -q h>COM3
SARTopo/Caltopo
Old versions of Sartopo Offline
Edit the Sartopo config file:
C:\<path to caltopo>\caltopo-offline\caltopo\cal.properties
New versions of Caltopo-desktop
C:\Users\<username>\
Add these lines, per SARTopo documentation to the topo.properties file
sarsoft.location.aprs.local.enabled=true
sarsoft.location.serial.COM4=1200,8,1,0
log4j.logger.org.sarsoft.location.service.APRSLocalEngine=INFO
log4j.logger.org.sarsoft.location.service.APRSSerialThread=DEBUG
Launch SARTopo Offline/Caltopo-Desktop
Setup a new map and add a locator object.
Since you have debugging enabled, you should see the packet data appear in the commandline.
As APRS packets are received locally, you should start to see them appear on the map.
Future
Figure out how to avoid building a custom version of Direwolf. It may be possible to host an IGATE server or redirect the IGATE packets from Direwolf.