Google launched version 22.214.171.124 of the GnssLogger in the Play Store with several new features.
The Android Framework provides access to raw GNSS measurements on several Android devices.
You can find the tools in the GPS Measurement Tools repo on GitHub, which includes the source code of a preliminary version of GnssLogger and executables for the desktop GNSS Analysis app for Linux, Windows, and macOS. Installation and User Manual.
Google Smartphone Decimeter Challenge (SDC)
Google and the Institute of Navigation are organizing the 2nd Smartphone Decimeter Challenge, starting on May 2 2022. The competition is hosted by Kaggle. Final results and winning solutions will be presented at the ION GNSS+ 2022 conference.
The Smartphone Decimeter Challenge is designed to advance research in smartphone GNSS positioning accuracy using state of the art algorithms and technologies such as advanced machine learning models and precision GNSS algorithms.
Teams will use about 200 datasets collected using GPS and inertial measurement units (IMUs) of Android smartphones to compute location down to accuracy of decimeters. Mobile users will benefit from lane-level-accuracy based services, enhanced experience in location-based gaming, and greater specificity in location of road safety issues.
To be eligible for following prizes, competitors must provide a technical paper, register for the ION GNSS+ 2022 conference and present their paper.
- First Prize: $5,000, plus other benefits*.
- Second Prize: $3,000, plus other benefits*.
- Third Prize: $2,000, plus other benefits*.
- Other benefits* include a guaranteed speaking slot at ION GNSS+ 2022 conference, complimentary registration to attend ION GNSS+ 2022 in Denver for the presenting author, and up to 4-nights hotel accommodations at the conference hotel and flight ticket for presenting author (restrictions apply)
Researches utilizing SDC data are encouraged to publish in ION GNSS+ conferences, Sensors Special Issue - Precise Positioning with Smartphone, and other relevant places.
Android devices that support raw GNSS measurements
Raw GNSS measurements support is mandatory on devices that run Android 10 (API level 29) or higher. On Android 9 (API level 28) and lower, raw GNSS measurements support is mandatory in all Android devices that contain hardware year 2016 or newer. Currently, 84% of existing Android phones have raw measurements.
The support for some of the raw GNSS measurement fields is optional and can vary based on GNSS chipset used. Examples of these fields include the following:
- Pseudorange and pseudorange rate.
- Navigation message.
- Automatic Gain Controller (AGC) value.
- Accumulated delta range (ADR) or carrier phase.
The table below lists a few examples of Android-powered devices and shows their support level of raw GNSS measurements:
|Model||Android version||AGC||ADR (carrier phase)||L5||Global systems|
|Google Pixel 4/5/6||12||yes||yes||yes||GPS
|Xiaomi Mi 9||9||yes||no||yes||GPS
|Xiaomi Mi 8||8.1||no||yes||yes||GPS
|Huawei P30 Pro||9||no||yes||yes||GPS
|Huawei Mate 20||9||no||yes||yes||GPS
|One Plus 7 Pro||9||yes||no||yes||GPS
|One Plus 7||9||yes||no||yes||GPS
|Samsung Galaxy S20/S21 Ultra (Exynos)*||12||yes||yes||yes||GPS
|Samsung Galaxy S9 (Exynos)*||8.0||no||yes||no||GPS
|Samsung Galaxy S9+||8.0||no||no||no||GPS
* Samsung Galaxy Exynos version provides ADR in recent years. Samsung Snapdragon version does not provide ADR yet.
For more information about the definitions of raw measurements fields provided by Android devices, see Global Navigation Satellite Systems.
Original equipment manufacturers (OEMs), developers, and researchers can make use of the tools in this page to test new phone designs, validate functionality, develop new algorithms, evaluate improvements to the GNSS system implementation as well as building value added apps.
SUPL Client Sample Code
Suplclient is sample code that accesses supl.google.com to obtain real time ephemeris. The
SuplTester class provides an example on how to use the SUPL Client Project. The
SuplTester sets up the SUPL TCP connection specifications, then at a given latitude and longitude sends an LPP SUPL request and prints the SUPL server response.
Antenna calibration information
Starting in Android 11 (API level 30), you can use the
GnssAntennaInfo class to access
antenna characteristics, such as: phase center offset (PCO) coordinates, phase
center variation (PCV) corrections, and signal gain corrections. These
corrections can be applied to the raw measurements to improve accuracy.
GnssAntennaInfo, keep the following system behaviors in mind. They
are designed to enhance user privacy.
- The characteristics supplied by this API are only specific to the device model, not an individual device.
- Use of the
GnssAntennaInfoclass requires the
Logging raw measurements
You can use Android Studio to build an app that captures raw GNSS measurements and other location data and logs them to a file. For example source code of such an app, see GPS Measurement Tools.
Google GNSSLogger is a sample app that is developed with this functionality. To get GNSS output with the sample app, your device must support raw GNSS measurements.
Once you have captured the GNSS log using the GNSS Logger, you can copy the log files from the device to your computer for further analysis. From within the GNSS Logger you can send the files to yourself via email or save them to Google Drive. Alternatively, you can save the files using the file management app on the device, or you can use the Android Debug Bridge (ADB) as explained in Copy files to/from a device.
Analyzing raw measurements
The GNSS Analysis app reads the GPS/GNSS raw measurements collected by the GNSS Logger and uses them to analyze the GNSS receiver behavior, as shown in figure 1.
The GNSS Analysis app is built on MATLAB, but you don't need to have MATLAB to run it. The app is compiled into an executable that installs a copy of the MATLAB Runtime.
GNSS Analysis Control Panel
The GNSS Analysis control panel, shown in figure 2, lets you manage app features, such as:
- Select which satellites are displayed.
- Control the reference position, velocity, and time (PVT) used for calculating measurement errors.
- Generate analysis reports.
- Define a window in the data between start and end times.
GNSS Analysis interactive plots
The GNSS Analysis app provides interactive plots organized in radio frequency (RF), clocks, and measurements columns, as shown in figure 3.
The RF column shows the following data:
- For each constellation, the four satellites with the strongest signals.
- For each satellite, the time plot of carrier to noise density (C/No).
- The skyplot of satellite positions.
The clock column shows the following data:
- The pseudoranges.
The offset frequency of the receiver clock, which is computed using one of the following reference positions:
- Automatically computed mean position.
- Latitude, longitude, and altitude entered by the user.
- National Marine Electronics Association (NMEA) file with truth reference PVT.
The offset of the standby clock that keeps time when the receiver resets the duty cycle of the primary oscillator.
The measurements column shows the following data:
- The weighted least squares position results obtained from the raw pseudoranges. The weighting is done using the reported uncertainty of each measurement, which is part of the raw measurement API spec.
- The errors of each pseudorange for each measurement.
The errors of each pseudorange rate for each measurement.
GNSS Analysis test report
GNSS Analysis can generate a test report, as shown in figure 4, that evaluates the API implementation, received signal, clock behavior, and measurement accuracy. For each case, the app reports whether the receiver passed or failed the test based on the performance measured against known benchmarks. The test report is useful for device manufacturers, who can use it as they iterate through the design and implementation of new devices. To generate the test report, click Make Report.
The Compare tab provides a side-by-side comparison, shown in figure 5, of C/No from several GNSS log files, which is useful when comparing the RF performance of several devices.
- Read data captured with the GNSS Logger sample app.
- Compute and visualize pseudoranges.
- Compute weighted least squares position and velocity.
- View and analyze carrier phase.
GNSS Analysis app v126.96.36.199 release notes
GNSS Analysis app version 188.8.131.52 includes the following updates:
- Changed BKG ephemeris ftp site to match recent changes made by BKG (German Federal Agency for Cartography and Geodesy)
- Fallback to NASA CDDIS ephemeris source for GPS and GLO, when BKG is not working
- Fixes some known bugs
We want to improve the support for GNSS on Android. Let us know about any issues with GNSS support on Android by using the GNSS issue tracker. Please check if your issue has already been addressed in the FAQ before posting it.
You can find answers to frequently asked questions in the GNSS Analysis Tools FAQs.