~/posts $ cat 19.md · 2026-09-22 · 5 min read

Cool dog tracker for traccar

For a few years now, I've been self-hosting Traccar to track my phone. There isn't a real reason for it: it's just fun to keep a history of where I've been. It's one of those services that I kinda forget about, but now I have a dog that I want to track.

The dog

I now have a dog. I often go hiking on trails with it, so I'm scared about it escaping or getting lost. To get some peace of mind, I decided to put a GPS tracker on its collar. Since I already run Traccar, whatever I bought would ideally report to it. Absolutely no proprietary app/cloud dependency. I just want things running on my servers with an open protocol.

My dog, Billy

The device

I ended up getting a Mictrack MT710. It's tiny, light, has an IP68 rating, supports LTE Cat-M1/NB-IoT (with 2G GSM fallback), and has an accelerometer. It does GPS, WiFi, and LBS positioning, and charges over a magnetic USB cable. The best part is that their protocol (tlt2h) is officially supported in Traccar. It's also easy to open (2 screws that don't mess with the IP68 rating), and the battery is just a run-of-the-mill 3.7 V 650 mAh LiPo battery that's easy to replace (JST plug). They also sell a nice silicone case to put on a dog collar.

Mictrack MT710

Configuration is done through a set of plain text commands that you can send over a USB config cable, SMS, or from the web config tool. Setting it up for Traccar is basically:

1ETS 2803,your.apn,, 3804,your.traccar.server,5030 4QTS

BTW, the SIM cards that Mictrac sells are cheap and have been working great for me. If getting the tracker, I recommend getting the SIM card and silicone case as well.

The configuration problem

So far so good, except for the part where you actually configure the thing. The official tool for the USB route is web based: it uses WebSerial, which means Chromium on a desktop, and it's served by the vendor. It works, but it's not something I want to depend on.

The manuals didn't help much either. The command list PDF is internally inconsistent in places (e.g. MODE,1's interval is 60–600 s in one table and 10–600 s everywhere else), some commands are missing from the USB command table, and the web tool accepts at least one network mode (NWM,0,0,2) that isn't documented at all.

Rolling my own config tool

Since the web tool is essentially client-side JavaScript talking to a serial port, I grabbed its source, the command list PDF, and the user manual, and threw all of it at an AI agent to build me a local alternative. The result is mt710-config, a terminal UI for configuring and monitoring the MT710 over the USB cable:

Screenshot of the TUI

Home Mode

Unfortunately, the official web config tool does not expose the most interesting working mode of this tracker: MODE 8 aka the "home mode". This is the pet tracking mode: the device sleeps while it's indoors near its home zone, and reports every 10–60 seconds once it's outdoors and moving. It also uses the accelerometer to wake up (instead of always scanning for WiFis or GPS location). We just have to configure the following:

My tool supports all the modes (the official tool just exposes 4 out of 11), including this one, and makes setting up the home zone pretty painless.

Configuring Home Mode

The tracker has two ways to know it's home: being near a known WiFi or its location being inside the geofence. With the tracker at home and connected over USB, the whole thing looks like this:

1ETS # open the config session 2SCAN # the device lists the WiFi MACs around it 3AP,,,6877248FA31A,, # home = up to 3 MACs (12 hex chars each) 4SEARCH # asks the device for its current position 5GEO,38.72232,-9.13934,50 # and a geofence around it: lat,lng,radius (radius 30-300 m) 6MODE,8,10 # home mode: report every 10 s while outdoors

Note that you can just use something like Google Maps to get your house's GPS coordinates and the cli to get your router's MAC address; no need to use the SCAN and SEARCH commands at home. Example one liner to get the MAC addresses (needs NetworkManager):

1# list: signal, MAC (MT710 format), SSID — strongest first 2nmcli -f BSSID,SIGNAL,SSID dev wifi list --rescan yes \ 3 | awk 'NR>1 {b=$1; s=$2; $1=$2=""; sub(/^ +/,""); mac=toupper(b); gsub(/:/,"",mac); print s, mac, $0}' \ 4 | sort -rn

A few quirks worth knowing:

After the reboot, RCONF confirms the stored home zone (AP:/GEO: lines), and the tracker goes back to napping whenever the dog does 🐕️.

I have configured the tracker to post location every 10 seconds while outdoors. This gives me a pretty detailed path of our walks/hiking trails. With at least 3 walks a day (>= 1 hour total), the tracker's battery lasts at least a week. I set up Traccar to send me a notification when the battery is low, but I've been charging it weekly just to make sure it's ok. I just lay down the collar on the magnetic charger overnight, whenever I remember to do so.

Conclusion

The dog now has a tracker on its collar, Traccar has a new device to draw maps with, and I don't have to trust anyone's cloud or browser support for any of it. If you have an MT710 (or a dog), give mt710-config a try.

The tracker on the collar

Stay safe :P