Challenges with GPS Data collection

In a recent scale up, one of our partners bought their CHWs TECNO POP 2F (TECNO B1G) phones which meets all the recommended phone specifications, however all the CHWs with this new phones are not able to collect any GPS data yet the older phones seem to be submitting data.
Other CHWs are using Tecno POP 2+ and others are using Huawei Y9 2017. They are running on CHT version 3.10.3

Hello @mourice

Have the users granted location permissions to the Android app?
What is stored in the geolocation property of reports? Is sharing an excerpt possible?
This is how it looks when I deny geolocation permissions, for example:


Apologies for delayed response. This is the error code showing up on the report

Thanks for sharing.
This looks like it’s an issue with the browser’s geolocation service failing to get GPS (registered here: cht-core/webapp/src/js/services/geolocation.js at 3.10.x · medic/cht-core · GitHub)

Is Location enabled in these devices?

Location on the phones has been enabled and Google map works well, though as we were troubleshooting with the team there was a bit of delay getting it to show the phone’s location.

Currently, the timeout to get location in webapp is set at 30 seconds.

there was a bit of delay getting it to show the phone’s location

Can we get an approximation about what “a bit” means?

It could be that the time taken to lock to GPS satellites is longer than some set threshold.

1 Like

Mourice is asking:

@eljhkrr could we do something on the geolocation timeout as mentioned

The timeout is hardcoded in the core code, there’s no way to configure it.
Might I suggest some troubleshooting at device level?

Thanks Diana, we’ll work on it

Any new insights @elijah ?

We got confirmation that the affected phone is running Android 10.

A test exercise has been completed by PIH in Neno district with a TECNO B1g device and it was able to pick GPS co-ordinates. The next phase of testing will involve a site supervisor visiting the affected district with a different device model to check if it can pick GPS.

A site troubleshooting exercise was conducted in the week of 23rd May and these were the main challenges discovered to be hindering the collection of GPS data by CHWs:

Location setting

Some CHWs were discovered to navigate to GPS data collection forms and attempt to obtain GPS coordinates while the device location setting was off. This is despite a message on the first page of the form instructing the CHW to “ensure GPS is enabled on your phone before proceeding” and having to confirm this is done by activating a checkbox. See the screenshot below:


Mitigation measures:

  • Improve instruction design - Devices normally have a location setting not a GPS setting. Using more specific language would help users create a direct association between the form and the specific device setting that needs to be activated to collect location data.
  • CHT should prompt the user when attempting to get a location fix while the location setting is not enabled. For scenarios where the user proceeds without location activated, the location request will time out. CHT should be able to display this feedback to the user so they can find out why it’s happening. This has been captured in a feature request in issue cht-core#6657.

Location mode setting

Devices running android 4.4 to 8.1 have a location mode setting in addition to the location setting. Location mode has 3 available settings:

  1. High accuracy
  2. Battery saving
  3. Device only

While troubleshooting on-site, only high accuracy mode produced a GPS location fix with a good level of accuracy (~10m). Some devices got an initial fix with poor accuracy of ~500m but this improved after resetting all radios by turning airplane mode on & off (see middle device before and after)

Initial location fix

After resetting

Device GPS hardware

The device models tested were:

  • Tecno pop 2F
  • Tecno pop 3
  • Tecno pop 2 plus

These devices are equipped with A-GPS (assisted GPS) hardware which is a Global Navigation Satellite System (GNSS) augmentation technology that relies on GPS data provided by the network operator via an A-GPS server that downloads and caches orbital information from GNSS satellites. An A-GPS capable device can connect to these servers and download GPS information using the GSM mobile network. This is usually categorized as data access and charged accordingly.

A-GPS system design:

Some A-GPS devices also include an autonomous GPS chipset for areas with low connectivity. We observed no GPS coordinates being collected on the Tecno models in the absence of a GSM connection. This means that the Tecno devices don’t have an autonomous GPS chipset installed and rely entirely on the service provider’s A-GPS implementation.

Autonomous GPS

GPS is one of the components of the satellite-based radionavigation system that comprises the Global Navigation Satellite Systems (GNSS). A complete list of GNSS deployments is:

  • GPS - operated by the United States of America
  • Galileo - operated by the European Union
  • GLONASS - operated by the Russian Federation
  • BeiDou - operated by the People’s Republic of China
  • QZSS - operated by Japan

A few devices in some locations were able to get a location fix with very low accuracy which didn’t improve even after allowing up to 15 minutes for an improved fix:

Mitigation measures

  • Sharing location data needs with the GSM service providers and government to highlight areas of improvement to the A-GPS infrastructure and possibly kickstart deployment of a ground-based GPS augmentation system for areas with low GSM connectivity.
  • Replacing CHW devices with autonomous GPS in addition to A-GPS. Autonomous GPS support is labeled in the device specification in form of the supported GNSS system i.e. Galileo, GLONASS, BDS (BeiDou) or QZSS. The higher the number of supported GNSS systems, the better chances that a device has to get a location fix.

This is a wonderfully deep dive into the specifics of GPS and how to improve accuracy. Thanks for sharing @elijah !