Data Quality from the Dual Frequency Xiaomi MI 8


31 July 2018

Within the last month an exciting firmware update (MIUI V9.5.11.0 OEACNFA) was released for the Xiaomi MI 8, the first Smartphone enabled with dual frequency GNSS. The Android raw measurements API is now enabled, allowing us to delve deeper into the new dual frequency GNSS chipset.

The Xiaomi Mi 8, embedded with a Broadcom BCM47755 chip, endeavours to revolutionise the GNSS mass-market world, providing access to the single frequency (L1) GPS, Galileo and GLONASS and Beidou, as well as a second frequency L5/E5a for GPS and Galileo respectively. The availability of this second frequency allows improved signal tracking and additional mitigation of errors, such as ionospheric effects which prevent the achievement of high accuracy with single-frequency receivers.

This sequel to our post of 6 July explores the quality of the raw measurements from the Xiaomi Mi-8, the first Smartphone enabled with dual frequency GNSS.  In our initial post we described the operational performance of the in-built positioning engine and, whilst it gave positions twice as good as its single frequency equivalent, we cannot compare to a dedicated survey grade receiver with results 3.5 times worse in terms of accuracy. 

art2 e 1smFigure 1 Satellites tracked by the Xiaomi Mi 8It is important to have realistic expectations on the quality of the measurements and positions.  A Smartphone is a mass market communications and entertainment device that, in some cases, also contains a GNSS receiver.  The receiver is contained within a plethora of electronics and will be subjected to continuous electrical and RF interferences.  Further confounding the situation is the mass market city environment in which we live and the way the devices are carried, as the human body absorbs, attenuates and reflects GNSS signals. A Smartphone is not an ideal host for a GNSS receiver.

This work is part of the FLAMINGO ( initiative, which aims to facilitate smartphones and IoT devices to achieve accuracies below 50 cm by using Android raw GNSS measurements and advances in GNSS hardware.

 As a first part of our analysis into the capabilities of this new smartphone generation, we evaluate the performance and availability of the receiver’s GNSS observations. The analyses are performed with 30 minutes of data collected in a static scenario on 13 July 2018.  The single most important feature for enabling high accuracy positioning techniques in a mass-market environment is the availability of satellites and therefore the use of multiple GNSS constellations. We first consider the number of GPS, GLONASS and Galileo satellites that provide at least a single frequency (~L1) measurement through the raw measurements API. These results are presented in Figure 1 and show, at times, 26 satellites being tracked (and there has since been a launch of a further 4 Galileo satellites on 25th of July 2018).

art2 e 2smFigures 2,3,4 Analysis of GNSS signals (enlarge)art2 e 3smart2 e 4sm An interesting analysis regards the comparison between the number of satellites tracked from the location API reported in the NMEA file and the one decoded from the GNSS raw measurements API. Since the number of satellites tracked is based on the internal viewing mask and on the almanac, not all of them are used to compute the solution. For the comparison with the number of satellites tracked and decoded by the GNSS raw measurements API has to be carried out with the number of satellites used to compute the internal position-velocity-time (PVT) solution. We have split the constellations into different plots with Figures 2, 3 and 4 showing this analysis for GPS, GLONASS and Galileo respectively.


This analysis shows that the number of satellites used to compute the internal PVT solution is mostly higher or equal to the number of satellites available from the API for Galileo and GLONASS. On the other hand, the satellites used internally from the phone are less numerous than those decoded through the GNSS raw measurements API. The difference is always limited to one or two satellites.

Considering the availability of the second frequency L5/E5a observations, Figure 5 shows that the GNSS chipset is not able to provide the observations for all satellites for which these should be available, the GPS Block IIF and Galileo satellites. The availability of dual frequency observations is limited between 5 and 8 satellites per epoch (Figure 5).

art2 e 5smFigure 5 Availability of the 2nd Frequency

art2 e 2smFigures 6,7 GPS/Galileo SNRart2 e 7sm The signal-to-noise ratio (SNR), or the signal strength, provides an indication to the reliability of GNSS observations from a smartphone (Figures 6 and 7). The SNR is lower in the smartphone compared to both low cost and geodetic class receivers. This is due to the poor GNSS Antenna on these devices which is the main impediment to high accuracy positioning. With a geodetic receiver and antenna, we expect the L5/E5a to be approximately 5 and 3 dBHz than the L1/E1 measurements. For the Smartphone we are seeing that L1 and E1 are considerably stronger than L5/E5a, almost certainly due to the antenna.  GPS L1 is an average 1.6 dBHz stronger than L5 and Galileo E1 3.12 dBHz stronger than E5a. 


The SNR also indicates the level of noise present in the measurement, but alone the value is not meaningful. For this reason, an SNR threshold in combination with an appropriate cut-off angle should be used to avoid poor observations.


Figures 6 and 7 shows that with a reasonable value for the SNR threshold, e.g. 30 dbHz, a significant number of satellites will not be removed. This reduces the already low availability of dual frequency observations and prevents the possibility of obtaining high accuracy positioning. Thankfully, the recent launch of four Galileo satellites on the 25th of July 2018 will reduce this concern, increasing the number of possible dual-frequency observations.

art2 e 2smFigure 8 Azimuth and elevation of the satellites used in this analysis Focusing on the available observations, we now consider the pseudorange and carrier-phase raw measurements. Satellites G02, G25, G26, G29, E03, E12, R13 and R05 (G=GPS, E=Galileo, R=GLONASS), as in Figure 8, are chosen to consider observations at a spread of azimuth and elevations. The pseudorange noise is defined as the Root Mean Square Error (RMSE) between the measured and interpolated code observations. The interpolated value is calculated using a mobile average of the pseudorange within a time window of 20 seconds.

The RMSE obtained for pseudoranges on the L1/E1 frequency are shown in Figure 9. These results vary according to the satellite’s elevation, where the higher the satellite, the lower the noise. Furthermore, comparing satellites E03 and G02, Galileo signals appear to have a lower noise. GLONASS satellites, instead, shows a significant higher noise with respect to the other constellations.

art2 e 2smFigures 9,10 RMSE for pseudorangesart2 e 7sm

The benefit of using the L5/E5a frequency is evident from considering the RMSE of the pseudoranges, as in Figure 10. The higher values observed in the Galileo satellites reflects, once again, the effects of elevation and the SNR, as illustrated in Figures 11 and 12.

Considering now the carrier-phase observations, the results are also encouraging. Figure 13 and  14 illustrate the carrier-phase RMSE evaluated as in the case of the pseudorange, and, as expected, is lower.

art2 e 2smFigures 11,12 SNR vs Elevationart2 e 7sm art2 e 2smFigures 13,14 RMSE for carrier-phaseart2 e 7sm


As demonstrated by this analysis, the Xiaomi Mi 8 presents an exciting milestone to achieving higher accuracy positioning in mobile devices. However, considering the issues associated with the high SNR, still some challenges lie ahead.

Devices that produce the raw GNSS measurements will spawn new applications if the features become utilised by developers.  NSL have already mentored Android application developers within major hackathons and outlined the concept of FLAMINGO with the potential for improved performance of the Smartphone's location engine. Important to these 250+ non-GNSS savvy users is the improved applied accuracy (ie related to other Smartphone sensors, captured and mapped features rather than an "absolute" accuracy) so long as there is no deterioration in availability.  They expect higher accuracy positions as quick (actually quicker!) as they get positions now and this itself is a major challenge to PPP and RTK position algorithms.

A third post will follow that will examine the performance of positioning that can be achieved using PPP and RTK with Smartphone data and the improvements (or otherwise) from using the second frequency afforded by the Xiaomi Mi-8. 


Update 03/08/2018: Further analysis executed on the carrier phase observations collected from Xiaomi Mi 8 has led to an update of the article's initial conclusions. The carrier phase is not affected by duty cycles, and so the article has been amended.