MAPMINTER

How it works

Drive. Map. Mint.

Four steps turn a radio in your car into a hexagon on a public map. Everything after that is bookkeeping, and this page is the bookkeeping, including the parts that are less flattering than a marketing page would admit.

  1. Get a MeshCore device Any LoRa board running MeshCore firmware in a companion role, on the same radio preset as the network you want to map. We do not sell hardware and we do not recommend a specific shop. Buy the board your local mesh already uses, because a measurement is only comparable to others taken on the same frequency, bandwidth and spreading factor.
  2. Install the app and pair over Bluetooth The MapMinter app connects to the device over Bluetooth LE and subscribes to its packet push. From then on, every packet the radio receives is handed to the phone as it arrives. Get started has the download and the pairing steps.
  3. Drive or walk The app keeps collecting with the screen off, so a normal commute is a mapping run. Each received packet is stored with the signal measurement the radio reported and the phone's position at that instant, then uploaded in batches.
  4. Cells light up The server folds measurements into H3 hexagonal cells and the map redraws. A cell's colour is the strongest signal ever heard inside it: cold for weak, hot for strong, on the scale printed in the map's legend.

Measured, not predicted

There is no propagation model anywhere in MapMinter. Nothing is interpolated between two measured cells and nothing is extrapolated over a hill. This is the single most important thing to understand about the map:

An empty area means nobody has been there

It does not mean there is no coverage. The Unexplored layer exists for exactly this reason: it outlines cells around the middle of your view that have no measurement at all, so "not measured" is visibly different from "measured and weak".

Last hop only

A MeshCore packet can travel several hops. The RSSI and SNR your radio reports describe only the final hop, the transmission from whichever node last repeated the packet to you. They are not a measurement of the original sender, however far away it was.

MapMinter therefore attributes a measurement to the transmitter of that last hop, and the map's transmitter filter lets you look at one transmitter at a time. Filtering by a repeater shows you where that repeater is audible. It does not show you where the person who wrote the message was standing.

Freshness

Coverage is not a permanent fact. A repeater gets moved, an antenna corrodes, a tree grows, a building goes up. Every cell therefore carries the time it was last heard, and the map shows it when you hover a cell.

Old measurements are not deleted. They are history, and deleting them would quietly rewrite that history, but they should be read as history. Driving a route again is what makes a cell current, and freshness is the thing the reward design deliberately pays for: see $MESHR.

Per-transmitter view

The picker in the map header narrows the field to one transmitter. Two kinds of entry live in that list and the map keeps them apart on purpose:

When a per-node view is hiding samples that only the hash view contains, the map says so in a badge rather than showing you a thinner map without explanation.

Reading the map honestly