You don’t need custom code. In addition to the mobile device, mac application, and web based config of nodes, meshtastic offers a command line based config option. You can follow this guide to install the command line tools: Meshtastic Python CLI installation | Meshtastic
I have almost no experience with command line applications. But I decided as a last ditch I better try to get the Python command line tool working and then post the code verbatim listed on the page which explains meshtastic-CalTopo integration found here: CalTopo / SARTopo | Meshtastic
The command line code I copy and pasted exactly is: meshtastic --set serial.enabled true --set serial.baud BAUD_9600 --set serial.mode CALTOPO --set serial.override_console_serial_port true
Once I followed both sets of instructions (the installation of the Python command line tool, and following the instructions in the link above) it started working. I’m not sure why I wasn’t able to get it working before, because as far as I can tell the other graphical node management options (cell phone applications, mac app, web browser) offer configuration of the same settings as the command line, but maybe not. Or I simply didn’t have the correct values in.
Just to be clear, the last leg is to make sure you “turn on” CalTopo listening for APRS devices in CalTopo’s “topo.properties” file that is found in the folder CalTopo Desktop installs on your device. (aside: as far as I’m aware, this functionality only works if you have access to CalTopo Desktop, which is the offline computer based version of CalTopo. You have to have a paid CalTopo account for this. If you’re part of a SAR team, and your team has a paid CalTopo account, you should have access to the offline CalTopo Desktop). You just paste the code I have in my last post into the file and save (if you’re on mac that is. The CalTopo instruction page lists the code you’d need to paste into that file if you’re on Windows here under “APRS Integration”: Live Tracking and Locators | CalTopo Training). You will need to change the device identification in these pasted codes. To find the device (node) and what it’s called on a mac, you post the following command into the mac Terminal application (mac’s built in command line application): ls /dev/tty.*
Once you have the usb connected node’s device number, you’d copy and paste that number where the XXXXX’s are in the code below. To be clear, paste this code into the “topo.properties” file in the CalTopo folder and save it; I used the TextEdit application on my mac to open/edit/save this file. This is the code for a Mac, Windows is slightly different, and the format for that can be found on the CalTopo APRS integration instruction page I linked to above.
sarsoft.location.aprs.local.enabled=true
sarsoft.location.serial./dev/tty.usbserial-XXXXXXXXX=9600,8,1,0
And yes, it seems as though CalTopo will not see the position data of nodes on the mesh network unless the local node also has its own GPS lock and is transmitting that data. Once the local node (to be clear, you must connect one of the nodes directly to the computer using a data micro usb/usb-c cable, this functionality will not work over bluetooth) has a GPS position of it’s own, it’ll tell that to CalTopo and relay the other nodes’ positions as well.