Skip to content

Triangulation

Luke Switzer edited this page Oct 26, 2026 · 2 revisions

Experimental. The estimate depends on signal strength, which is noisy. Treat the position as an area, not a point.

Several nodes listen for the same device and record its signal strength and their own GPS position. With three or more nodes that have a GPS fix, the mesh estimates where the device is.

Triangulation results

How it works

Signal strength falls off with distance. Each node that hears the target reports how strong the signal was and where the node was standing. From several of those readings, the mesh works out the most likely position of the target and how uncertain that estimate is.

Start

Send the hunt to one node, which runs it with every other node on the mesh:

  • @AH01 TRIANGULATE_START:AA:BB:CC:DD:EE:FF:60 hunts the given MAC for 60 seconds. You can use a tracer ID (T-xxxx) instead of a MAC.
  • @AH01 TRIANGULATE_RESULTS returns the coordinates, the estimated error in meters, and a map link.

RF environment

Add an environment number after the duration, such as TRIANGULATE_START:AA:BB:CC:DD:EE:FF:60:3. It sets how fast the signal is expected to fade with distance.

Value Environment Use for
0 Open sky Clear line of sight
1 Suburban Light foliage, scattered buildings
2 Indoor (default) Typical rooms, some walls
3 Indoor dense Offices, many partitions
4 Industrial Heavy obstruction, machinery

Calibration

For a better estimate, calibrate each node. Put a Wi-Fi access point or Bluetooth device a measured distance away, then send @AH01 CALIBRATE:AA:BB:CC:DD:EE:FF:5 for 5 meters. The node listens for 30 seconds and keeps the result. Send @AH01 CALIBRATE_RESET after you move the node.

If the estimate is far off

You need three or more nodes with a GPS fix, spread around the target rather than in a line. Pick the environment that matches the site. Calibrate each node at a known distance. A target that only transmits now and then gives few readings; run the hunt longer.

Clone this wiki locally