Speed
A radial dial with the value repeated as a large numeral in the centre. Past the top of the scale the needle pins, but the numeral keeps showing the true figure — the dial never caps the number.
Home/Free Tools/SpeedGps
A single-screen GPS readout for Android, meant to be glanced at while moving. Speed, track, position, altitude and barometric pressure — and nothing else.
The one rule
A GPS receiver will happily report a speed while you sit parked in a garage. It is solving off reflected signal, its position is wandering, and wandering position is velocity as far as the solver is concerned. Trust it and your app shows 13 km/h to someone who isn't moving.
SpeedGps is built on the opposite instinct. Where a reading is missing, stale or untrustworthy, it shows an em dash — not a zero, and not the last value it happened to have. Almost everything unusual about the app follows from that one commitment.
It is an instrument, not a navigation app: no maps, no route guidance, no trip logging, no settings screen and no account.
How it decides. Rather than invent a rule about which speeds look believable, the app asks the receiver how well it knows its own answer. Android publishes an uncertainty beside each figure, and the good and bad cases are an order of magnitude apart.
| Condition | Speed unc. | Bearing unc. | H accuracy |
|---|---|---|---|
| Outdoors, driving | 0.09 m/s | 0.5° | 3.8 m |
| Indoors, stationary | 1.50 m/s | 45° | 57.4 m |
Speed is shown when its uncertainty is within 1 m/s, track when its bearing uncertainty is within 25°. A bearing uncertain to 45° is wider than the gaps between the points of the compass — the needle would be pointing at the wrong one.
What's on the screen
Dark throughout, high contrast, no title bar and no navigation bar. It is meant to be readable in a car in daylight.
A radial dial with the value repeated as a large numeral in the centre. Past the top of the scale the needle pins, but the numeral keeps showing the true figure — the dial never caps the number.
Course over ground — the direction you are actually travelling, which is all GPS can know. A boat crabbing across a tide points somewhere other than where it is going. Below 1 km/h it blanks rather than jitters.
Signed decimal degrees to six places, with height above mean sea level or above the WGS84 ellipsoid. The label always says which, so the two are never confused.
On devices with a barometer: the air the phone is sitting in, or the same air reduced to sea level. Close enough to sanity-check an official QNH, not to stand in for one.
The receiver's own estimate of its horizontal and vertical error, on screen rather than hidden. Plus the clock and the timestamp of the fix itself, so a stale fix is obvious.
Boat, car, light aircraft and jet set how far the scale goes — 50, 160, 200 and 500 respectively. Nothing else changes: the readings, the rules and the units are unaffected.
On the device
Landscape is not the same layout turned sideways. It drops the compass rose — too small to read beside a column of text — and states the track as a row instead. The layout switches automatically.
Everything is a tap. There is no settings screen. The mode, the units, the altitude datum and the north that track is measured from are all changed by tapping the thing itself, and every choice is remembered between sessions. The reference documents all seven tap regions.
Download & install
SpeedGps isn't on Google Play. It is distributed as an APK you install yourself, which means Android will ask you to confirm that you meant to — a reasonable question, given you are installing software from a website.
SpeedGps.apk to the phone, using the button opposite.Verify it if you want to. The SHA-256 checksum of the file we publish
is listed opposite. On Windows, certutil -hashfile SpeedGps.apk SHA256 should
print the same string. If it doesn't, don't install it.
Free. No ads, no tracking, no account, no internet permission.
Download the APKSHA-256
551bd9f2fd933c1cc6e308658dfe8b5d88abd3f226cdac97dfbf561850496de7
Privacy
That isn't a promise about intent, it's a property of the build. SpeedGps holds two Android
permissions in total, both location, both foreground-only. It does not hold the
INTERNET permission, so it has
no way to transmit anything off the device.
Platform support
| Android 7.0 | The floor. Below this it will not install at all |
|---|---|
| Android 8.0 | Per-figure uncertainties — speed, bearing and vertical accuracy |
| Android 14 | Height above mean sea level, and therefore QNH |
| Android 15 | What it is compiled against — this does not limit what can run it |
On an older phone the app loses features rather than accuracy: where the platform cannot supply something, it says so instead of inventing it. A barometer is a question of what the handset has fitted, not which Android version it runs.
Why it's here
The same habits we bring to paid work, on something small.
SpeedGps is free because it costs us nothing to give away, and because it is a fair sample of how we work: measure before deciding, refuse to display a number you cannot stand behind, and write down why.
The reference document is unusually candid for a piece of software marketing — it records what was measured, which approaches were tried and abandoned, and what the app deliberately will not do. If that is the kind of engineering you want on a business system, that is the same service we sell.
Either is worth hearing about. SpeedGps is given away as-is and without warranty, but we do read the mail — and a good bug report is a gift.