Version 1.5.2

Twelve situations
and one file each.

A measuring instrument is not sold by its list of sources but by the question it answers. Each case below is a situation, what you do about it in the app, and what comes out at the end — because every one of them ends in a file or a number, not in an impression.

How the controls work is in the operating guide; what exactly goes into the file is in the data dictionary.

Coverage and networks

The complaint is always the same sentence — it does not work here — and it never says where, when or how badly. These four cases turn that sentence into a timeline.

A dead spot in the office

Colleagues say the internet is unusable in the meeting room. IT says the network is fine. Switch on Wi-Fi and throughput mapping, start the measurement from the tile in the quick settings shade and walk the floor with the phone in your pocket. At each room mark a point and say “meeting room, by the window” into the microphone; stop with the key on the home screen.

What comes out: download, upload and RTT second by second, the access point the phone was actually on, and a spoken note at every point. A room, an AP and numbers, instead of two departments disagreeing.

A drive test without the van

The operator has lit a new site and you want to know where the phone really switches over — and whether it drops from 5G to LTE anywhere along the road. Switch on the cell scan for both SIMs and GPS at one second, start from the shortcut under the app icon, lock the screen and put the phone on the dashboard. Then drive.

What comes out: a timeline with position, the serving cell for each SIM, and a SERVING_CELL_CHANGED event every time the technology, the Cell ID or the PCI changes. Handovers located to the metre, without a scanner that costs as much as a car.

Where the drivers lose their terminals

Drivers report that the dispatch app “freezes sometimes”. Nobody knows where or why. Turn Wi-Fi off, leave cellular with throughput mapping and the cell scan on, and hand the phone to the driver: one press on the home-screen key in the morning, one in the evening. Nothing else is asked of them.

What comes out: a whole shift second by second — where throughput was zero, which cell was serving there and how long it lasted. Dead stretches go into the route plan instead of into the complaints inbox.

Which of the two SIMs to keep

You have two operators and no idea which one deserves to be the primary card on the roads you actually drive. Cell scan for both SIMs, GPS at one second, and then simply carry the phone for a week: Start from the tile in the morning, Stop in the evening.

What comes out: after a week you know where each network held 5G, where it fell back to LTE and where it had nothing — along your routes, not on the operator's coverage map.

Inside buildings

Indoors GPS gives nothing, and that is exactly where most of the arguing happens. A marked point, a photo and a spoken note replace the coordinate the sky refuses to hand over.

A site survey in a warehouse

Before Wi-Fi goes into the hall you need to know how far the existing APs reach and where the racks will cast a shadow. Leave GPS off — it would only report a wall — and switch on Wi-Fi with RTT/FTM. Walk aisle by aisle and mark each one with a photo taken through the app's own viewfinder; a month later the photo is what tells the aisles apart.

What comes out: points with photographs, and at each one the list of APs, their strength, the MLO links and a measured distance over RTT. A coverage map before the first new access point is bought.

Proof for the landlord

You cannot make a call in the office you rent, and the landlord says the signal is fine everywhere. Start a measurement, walk the office, and mark a point with a photo by the windows and in the back rooms. Ten minutes.

What comes out: a file with a timestamp, a position, signal strength, the serving cell and photographs of the rooms. Attach it and “the signal is fine everywhere” becomes a claim that can be checked — or refuted.

An inventory of everything transmitting

An audit question: what is actually broadcasting in this building? Foreign APs, unknown BLE beacons, forgotten devices. Wi-Fi and Bluetooth on, BLE with the full advertising payload, and one marked point at the door of every room.

What comes out: a complete list of APs and BLE devices including the raw payload, each with a position and a room. A duplicate SSID or a beacon that is in no inventory stands out on its own.

Sensors that report without being asked

Dozens of BLE thermometers hang around the warehouse — Ruuvi, Xiaomi on ATC firmware, anything speaking BTHome. You want to know what they say and you have no intention of pairing with each one. Switch on Bluetooth and walk. Nothing is paired, nothing is connected.

What comes out: temperature, humidity, pressure and battery voltage from every sensor as named quantities in SI units, with the time and the place you caught them. The sensors you had forgotten about announce themselves.

Measurement and evidence

Some measurements are not made to fix a complaint but to hold up later: in a report, in a thesis, in a regression suite, or in front of somebody who was not there.

Raw GNSS for a thesis

You need raw pseudorange measurements to compare receivers or to compute a position yourself. Switch on raw GNSS, navigation messages and NMEA, put the phone on a tripod or on a surveyed point, start it and leave it alone for ten minutes.

What comes out: raw GNSS rows, ephemerides and NMEA in a stable text format a script can read. Repeat on a second phone and you have a receiver comparison without a laboratory.

A regression run in the lab

After a firmware update or a new build you need to show that the sensors and radios still measure what they measured last time. Export the settings as one file, import it on every phone under test, and run the same measurement in the same place.

What comes out: the same sources, the same intervals, the same format. The technical description of the phone in the export header — sensors, cameras, battery — tells the units apart. The comparison is then a script's job, not a person's.

A festival, and where to put the repeater

Ten thousand people are coming to a field with two card terminals on it. Walk the site the day before with a measurement running and say the name of each planned stall into the phone. During the event, walk it again.

What comes out: two measurements against each other — an empty field and a full one, same points, same cells. You can see where the cell went under, and next year you know where the repeater goes.

A customer who will not have a cloud

You are measuring on the premises of a customer whose network topology is not going anywhere near somebody else's servers. Measure as usual and set the destination to your own S3, WebDAV or SFTP — or simply export a file and hand it over.

What comes out: nothing that went anywhere you did not send it. Photos and voice notes from the marked points never touch the phone gallery; they leave only in the export. The NDA stays signable.

Several phones at once

None of this needs a feature the app does not have. Every row carries a GPS-derived time, the settings travel as one file and the destination can be the same bucket for everybody — so the merge is a script over the exports, not a protocol between phones.

Because two phones see more than one twice

  • Base and rover. One phone rests on a surveyed point, the other walks. The difference between their raw GNSS is a differential correction — metres become decimetres, and RTKLIB does the arithmetic.
  • A different operator in each hand. Three phones, three SIMs, one route, one drive. A coverage comparison in a single pass instead of three.
  • The same SIM in different phones. A flagship, a mid-range and a cheap handset on one card: how much of “bad signal” is the network and how much is the antenna in the phone.
  • Sources split between phones. One does raw GNSS only — the expensive source — another Wi-Fi and BLE, a third throughput. Nobody runs flat by lunchtime.
  • A fan across a site. Five people leave one point in five directions; in an hour the whole site is measured, where one person would have walked all day.
  • One point, two heights. A phone at floor level and a phone overhead — or on the floors above one another. A vertical profile of the signal that nobody maps, with the barometer telling the storeys apart.
  • A fixed monitor and a walk. One phone sits on a charger by the window for a week, the other walks. That is what separates it is bad here from it is bad right now.
  • A control pair. Two identical phones side by side. If they disagree, the difference is the noise of the method, not a property of the network — basic hygiene for any report that will be argued with.
  • A phone as a known beacon. One phone advertises from a known spot; the others see it in their BLE scan. A coarse indoor position without installing anything.
  • Before and after, in two hands. The engineer installs the AP while the customer measures on their own phone. Both sides end up with the same file and therefore the same truth.
  • Ten phones at ten stalls. A cell going under shows up in all of them at once; a phone misbehaving shows up in one. The difference is the whole point.
  • A fleet as a crowd. Everybody carries a measurement and delivers to the company SFTP. After a month you have your own coverage map without a single dedicated drive.

Three things would make this smoother and are not in the app yet: a shared campaign name written into the export header, point numbers agreed across phones, and a synchronised Start over QR or NFC. Until then a name in a voice note and an agreed time do the same job. If you run measurements in a team, tell us which of the three you would use — that is what decides the order.

Where to take the data

The export is stable text — TXT, GZIP, or a tar.gz when photos and voice notes travel with it — so anything that reads text will take it. What follows is not an integration list; it is where people put this kind of data.

Maps and GIS

  • QGIS — coverage maps, an RSRP heatmap, marked points with their photographs. Free, and it imports delimited text with a latitude and a longitude directly.
  • Google Earth — a quick, convincing picture of a route for somebody who will never open a GIS.
  • kepler.gl — large tracks explored interactively in a browser, locally.
  • PostGIS — a company archive with spatial questions: where did the signal fall below −110 dBm in the last year.
  • GPSBabel — the conversion into GPX or KML for whatever else needs a track.
  • Ekahau, Hamina, NetSpot — professional Wi-Fi survey tools. They will not import a foreign format; what a phone log gives you is an independent check of their output.

GNSS

  • RTKLIB — PPP and differential processing from raw GNSS, and the comparison of two receivers.
  • Google GnssAnalysis — the quality of the raw measurements themselves: C/N0, pseudorange residuals.
  • RINEX converters — the gateway to everything academic.
  • gpsd and the NMEA tool family — replaying a track into software that speaks nothing but NMEA.

Analysis and spreadsheets

  • Python with pandas — merging several phones, statistics, plots. This is where most of the work ends up.
  • DuckDB — SQL straight over a gigabyte of gzipped text, with no database to set up first.
  • Excel, LibreOffice, Google Sheets — one chart for the report, a pivot by cell.
  • R — statistics and the spatial packages.
  • Observable or Vega-Lite — an interactive report to share rather than a PNG to email.

Dashboards and time series

  • Grafana over InfluxDB, TimescaleDB or Prometheus — throughput and serving cell as what they are: a time series, with alerting.
  • Kibana or OpenSearch — full-text across many measurements; find every appearance of one SSID or one Cell ID.
  • Splunk — the same, in companies that already have it.

IoT and buildings

  • Home Assistant — it already speaks BTHome and Ruuvi; the export serves as the inventory of which sensor is where and what it broadcasts.
  • Ruuvi Station — a cross-check against the manufacturer's own record.
  • Node-RED — replaying the values into an automation of your own.
  • Wireshark — the raw advertising bytes, for a sensor whose format nobody has decoded yet.

Network diagnostics

  • Wireshark or tcpdump on the server side — pairing the throughput seen by the phone with what the server saw in the same second.
  • iperf3 logs — an independent number to hold the one-off test against.
  • Zabbix, PRTG, LibreNMS — a field measurement attached to a ticket that monitoring insists is fine.
  • Wi-Fi controllers — UniFi, Aruba, Cisco, Omada — the controller's list of APs and clients against what a phone saw from outside.

Community databases

These take contributions of exactly the kind of data a measurement produces. The app never uploads anything by itself; this is a deliberate step, in the format each service asks for.

  • CellMapper and OpenCelliD — LTE and 5G cells, PCI and bands.
  • WiGLE — Wi-Fi access points with positions.
  • BeaconDB — the open successor to the retired Mozilla Location Service: Wi-Fi, cells and BLE.

Keeping and sharing it

  • Git with LFS — versioned measurements on a long project, the tar.gz as the artefact.
  • Nextcloud or plain WebDAV, S3, SFTP — delivered straight from the app, no computer in between.
  • Confluence, Notion, Obsidian — the report itself: a chart from the spreadsheet and the photographs from the marked points.
  • LaTeX or Typst — where raw GNSS work usually ends up.

Nothing here needs an integration on our side, and none is planned: a stable format outlives any connector. What would help are small converters — text into CSV per source, into KML, and raw GNSS into RINEX. If one of them would save you an afternoon, say which.