1. What is the issue? Please be detailed.
I'm currently facing an issue with GPS accuracy while collecting data using ODK.
I have configured the form to automatically capture location points only when the accuracy is below 5 meters. This works well on some devices, but on certain devices—specifically the A07—the GPS accuracy does not improve to the required threshold.
Device: A07
Required accuracy: < 5 meters
Behavior: Accuracy remains above 5m and does not stabilize/improve, even after waiting for some time
Result: The location is not captured automatically as expected Questions:
Is this a known limitation with certain devices like the A07?
Are there recommended settings or workarounds to improve GPS accuracy on such devices?3.Could this be related to hardware (GPS chip quality) or Android settings (e.g., location mode, permissions)?
2. What have you tried to fix the issue?
Ensured high-accuracy mode is enabled
Stayed in open areas with clear sky view
Waited longer for GPS stabilization
Still, the issue persists on these devices. Any guidance or suggestions would be highly appreciated.
Inbuilt GPS receivers in modern smartphones and consumer devices generally offer horizontal accuracy within 2 to 15 meters (5-16 feet) under open sky. While ideal conditions can provide 3–5 meter accuracy (rare), performance often degrades in environments due to signal interference from buildings or trees.
Satellite availability, ionospheric conditions, and obstacles significantly affect accuracy. Field device should be able to catch signals from atleast 3 or 4 navigation satellites of navigation system being used. If there are not enough satellites above the sky, your device will be slow and inaccurate in locating the position.
You can check with an app like GPS Test - how many satellites are in view and how many in use at that same location, at same time of day and at some other times also.
You can also try disabling GNSS duty cycling in Android device after activating developer menu in your Android device. Go to phone settings, find build number, tap on it multiple times and you will unlock developer menu in settings. Then open developer menu and scroll down, almost at the bottom you will find option to “Force full GNSS measurements”, toggle it ON.
Force full GNSS measurements" in Android developer options disables GNSS duty cycling, forcing the chipset to continuously track all constellations and frequencies while an app listens for location. This increases power consumption but provides raw, high-accuracy measurements.