blog · git · desktop · images · contact

GPS and the Android device database


At the end of 2020, I bought a very cheap Android phone. This was in the first winter of Covid and the German Covid Tracing App was launched just prior to that – and that was also the sole reason why I bought that thing. I didn’t really care which model it was or what it could do, as long as it supported Bluetooth, WiFi, and ran a somewhat recent version of Android. Those were the requirements of said app.

Some time later, I realized that this device had a GPS chip. This allowed me to do what I’ve wanted to do for a long time: Record GPS tracks of my walks. This worked surprisingly well, even though it was just a cheap no-name phone. As I learned later on, it really supported “only” the American Navstar GPS and none of the other systems like the EU’s Galileo. Still, the tracks were good and quite accurate.

For the actual tracking, I use a lightweight Android app which can save GPX files. That’s great because I can then view and archive the tracks on my desktop computer. I can also easily do some simple statistics, like the distance I walked each month, and so on.

A few weeks ago, the battery of that phone died.

The Covid Tracing App is no longer in use these days. I looked for standalone GPS devices – which I would have preferred –, but there are virtually none left. Smartphones have killed this market. So, I had to buy another phone.

The new phone I got was not bad overall, but GPS was “not good”. I’m fairly certain that it really was this device’s fault, because I double checked with some other receivers and they were fine in the same situations. I suspect that A-GNSS was “broken” on my new phone, but I can’t be certain. This is really hard to debug, since it’s mostly a blackbox.

While debugging, I found this:

The author has started an initiative to crowdsource GNSS features of Android devices. The result is this database:

(This link redirects to a Google sheet.)

That is so helpful. Through this database I found a different phone model in my preferred price range, bought it, and it works just fine. Without the database, I would have had to blindly buy some other phone and hope that it does have a different GPS chip and a good one.

I’d like to encourage Android users to contribute to this database (you can do that via the aforementioned Android app).

Ideally, manufacturers should publish this information directly. And not just GPS, all of it. Please tell me which hardware I’m buying.

(In the long run, I might build a custom Arduino-based GPS tracker. That sounds like a fun project, avoids all the potential privacy issues associated with smartphones, and might even be a little bit cheaper.)

While trying to debug all this, I also learned a (tiny) little bit about GPS / GNSS itself from these great resources:

I love systems like GPS. They’re available to the public and they’re “passive”: You can use them to get your location, but there’s no back-channel, neither the satellites nor anyone else can track what you are doing. This is in stark contrast to most of our modern systems on the internet where the communication is pretty much always bi-directional. (I am aware that A-GNSS somewhat undermines this.)

It’s like radio controlled clocks. DCF77 here in Germany transmits a time signal that you can just pick up. Boom, time.