The last several versions of Android have turned it into a powerhouse for processing Global Navigation Satellite System (GNSS) data from systems such as Global Positioning System (GPS) and Galileo. Device with Android 7.0 and higher support an official API for pseudorange measurements and navigation messages, which allows developers to calculate positions within apps. Previously, all apps were limited to using positions calculated by the GNSS hardware, which was a black box. The European Union GNSS Agency (GSA) has even produced a how-to manual describing the technical process of using raw measurement data. …
Android devices have longer lifespans than they used to. As the cost of new flagship devices has creeped over $1000 and cellular carriers in the U.S. stopped subsidizing device costs, users are keeping their Android devices longer than before. Devices also get passed down and re-sold from one user to another.
Most hardware on Android devices remains perfectly usable for a number of years. However, an event in mid 2019 caught some users of older Android devices by surprise when their Global Positioning System (GPS) technology suddenly stopped working.
To keep time, the U.S. Global Positioning System (GPS) uses a…
As software engineers, nothing bothers us more than duplicating code within a project. For every line of duplicate code, it potentially doubles the effort required for each bug fix, refactor, and enhancement later in the life of the project. You may have heard of the DRY principle — “don’t repeat yourself” — that most engineers try to follow.
It’s frustrating to encounter situations where code must be slightly different due to dependencies. The first place I encountered this was the Amazon Maps API. …
You’re rushing out the door, hoping you didn’t miss the 8am Route 5 to work.
Should you sprint to your stop? To find out, you ask OneBusAway for help, frantically yelling:
“Alexa, where’s my bus?”
Alexa responds with times for bunch of routes — but not Route 5. Argh 😠!! Your roommate has struck again. They changed the default stop for a night out on the town, and forgot to change it back.
Fear not, brave transit riders — this problem is soon to be one of the past!
The OneBusAway skill for Alexa now supports personalized voice profiles…
I’ve been interested in location services for mobile devices ever since I owned my first phone. I wrote my first location-aware apps on the HP iPAQ H555 (with an external Navman GPS antenna) and the Motorola i860, the first device to support the standardized Java Location API.
There have been many changes in the industry since these devices, but one consistent limitation of building apps for consumer-level phones has been the computation of location information in a “black box”. In other words, a mobile app can read the location calculated by the underlying hardware via an Application Programming Interface (API)…
How accurate is your location?
There are a lot of factors that go into choosing a new mobile phone. Typically, location accuracy isn’t the first thing that comes to mind. However, the accuracy of your device’s Global Navigation Satellite System (GNSS) receiver can have a huge impact on your mobile experience. Anyone who has tried to use real-time walking navigation or to find your Uber or Lyft ride in an urban environment can appreciate this as they’ve spun in circles chasing the blue dot on the map.
Let’s say you want to buy a phone that will give you a…
In early 2018 I wrote an article introducing the state of dual-frequency Global Navigation Satellite Systems (GNSS) support on Android:
I expected it to be relatively short-lived — but then things got complicated 🤔. Multiple devices have launched with bugs preventing carrier frequency information from showing up in the GPSTest app, and other devices have launched with L5-capable hardware but for some reason the device as a whole doesn’t include dual-frequency support (i.e., L5 doesn’t show up in GPSTest).
As a result, as of June 2019 we have yet to see a dual-frequency GNSS Android device launch in the U.S…
An open-source tool to help improve the quality of real-time transit data
Real-time transit information has been shown to have many benefits to transit riders, including shorter perceived wait time¹, shorter actual wait time¹, a lowered learning curve for new riders², and increased feeling of safety (e.g., at night)³ ⁴. Transit agencies who have deployed real-time information have also benefited from increased ridership⁵ ⁶, as well as a better perception of the agency and it’s transit service, even if it’s service hasn’t actually changed⁷.
The General Transit Feed Specification (GTFS) format⁸, which has become the dominant format for open schedule…
As the developer behind GPSTest, a popular open-source Global Navigation Satellite System (GNSS) testing app for Android, it’s been incredible to see the advances in both device and satellite technology over the last five years.
It’s also been exciting to hear directly from users as they experience these innovations first-hand. Many updates to the app have been driven by feature requests from these users. I added support for GLONASS, the Russian GNSS, in early 2014 based on user feedback. Support for the Japanese Quasi-Zenith Satellite System (QZSS) and Chinese Beidou GNSS came in October 2014 following user reports of seeing…
L1+L5 support for GPS is here! …or is it?
It’s an exciting time for Global Navigation Satellite Systems (GNSS) on Android. Android Nougat 7.0 brought official support for multiple GNSS constellations beyond U.S. GPS (including GLONASS, QZSS, BeiDou, and Galileo), as well as the ability to collect and process raw pseudorange measurements and navigation messages within an Android app. Android P is providing developer options for testing real-time kinematic (RTK), or carrier-phase measurements, for the first time using embedded GNSS. Galileo, the European Union GNSS, is now operational with 22 satellites in Initial Services and nearing completion, and is already…
Improving the world, one byte at a time. @sjbarbeau, https://github.com/barbeau, https://www.linkedin.com/in/seanbarbeau/. I work @CUTRUSF. Posts are my own.