I’ve recently purchased ThL W200, an Android 4.2 smartphone powered by Mediatek MT6589T quad core processor, and I’m trying to test a few things including GPS. I’ve enabled access to my location, GPS, and Google’s location service using Wi-Fi and mobile network.
In Google Maps, I could get a somewhat accurate position thanks to mobile network location, but it was clear it could not lock GPS. I’ve also tried Nike+ Running, an application that keeps track of your running sessions with GPS, gives you some audio feedback as you run (distance, time and speed), and compares your performance to the average, and your social network friends. When I wanted to start running, the app complained about weak GPS signal, and tried to lock GPS for about 10 minutes, until I decided to give up.
So I tried to find a solution, and Google pointed me to an article on Gizchina explaining how to fix poor GPS in Mediatek phones. I followed the instructions, and amazingly Nike+ Running can now find my position with GPS within 5 to 10 seconds. Here’s what you have to do.
- Install Mobileuncle MTK Tools from the Google Play Store
- Launch the app, go to “Engineer Mode“, then “Engineer Mode (MTK)”, horizontally scroll to Location, and tap Location Based Service.
- Select “EPO” as shown in the left screenshot below, make sure “Enable EPO” is ticked, and click on “EPO (IDLE)” to download the data via Wi-Fi or mobile networks. It’s probably a good idea to enable “Auto Download” to make sure the data is always up-to-date and your phone locks the GPS satellites quickly. The download frequency can be set in “Update Period Setting” in the same window.
- Now go back to the previous menu, tap on “YGPS”, and you should see GPS satellites’ locations in red as shown in the right screenshot above, followed by the overlay message “SI Request Received for UP session” (this will happen to all apps using GPS), and after a few seconds, you will see most or all satellites turn green as the smartphone locks on them.
- Done!
When I tried in Nike+ Running, first the GPS slider in the application was red, the system GPS icon blinked at top left corner, and within a few seconds, GPS was properly locked, and I could start my run. At the end of the run, it showed a map with my run, and I could see it followed the roads and paths where I ran accurately.
I always thought A-GPS would do what EPO just did here, so let’s have a closer look at what both are supposed to do.
What is A-GPS?
Assisted GPS (A-GPS) is a system that can, under certain conditions, improve the startup performance or time-to-first-fix (TTFF) of a GPS satellite-based positioning system by downloading positioning data from the network. There are two modes of operation:
- Mobile Station Based (MSB) – The A-GPS device receives acquisition assistance, reference time and other optional assistance data from a mobile service provider. The mobile service provider continuously logs GPS information (mainly the almanac) from the GPS satellites using a A-GPS server in its system. With the help of the above data (the data received from the mobile device and the data already present in A-GPS server) the A-GPS server calculates the position and sends it back to the A-GPS device.
- Mobile Station Assisted (MSA) – The A-GPS device receives ephemeris, reference location, reference time and other optional assistance data from the A-GPS server. With the help of the above data, the A-GPS device receives signals from the visible satellites and calculates the position.
Source: Wikipedia
Mobileuncle MTK Tools reports A-GPS is enabled in my phone and uses MSB. There are also quite a few others options for A-GPS such as Control Plane and User Plane switching, SLP (SUPL Location Platform) settings, and more things that currently do not make much sense to me.
What is EPO?
EPO (Extended Prediction Orbit) provides file downloaded by the GPS device to help it locate GPS satellites more quickly and reduce the Time To First Fix. I can find very little information about EPO, but it seems it’s a solution developed by Mediatek, and just another A-GPS type of solution. It appears some phones have access to EPO directly within the Android Settings, which was not the case for my phone.
So A-GPS and EPO appear to be very similar, and EPO may just be another A-GPS technique, but for some reasons A-GPS provides poor results in Mediatek phones, whereas if EPO is enabled, GPS will lock within a few seconds.
If GPS specialists among my readers could give some more extra information, it would be very nice. Thanks!
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
This usually happens on chinese hacked crap that was force locked to chinese market and GPS expects to see chinese sky = it will take a VERY long time before it finally gives up looking for chinese sky and tries other regions.
Other fix I saw somewhere was switching region you are in with Fasterfix or GPSfix + syncing your time. GPS uses Time to predict signals it looks for.
actually you dont need to install mobileuncle to enable epo and agps, in location settings (first screen of your post) if you push “GPS satellites” (the name, no the blue toggle) you’ll open epo/agps settings page so these settings are standard, its not clear why they are disabled by default and placed in such an awkward manner.
btw if you want an even slightly better fix time change ntp settings to a server nearer to your place, with stock firmware they defaults to a chinese ntp server so high latency from everywere than china.
a few other tidbits: from what I gather, agps predict your position by doing a cell-tower lockup and then a ntp lockup, epo downloads a pre-calculated almanac and ephemeris data, thus basically the phone knows allready more or less where it is and where to look for satellites shortening calculations.
note than it needs both working, agps wont work if the phone is connected to wifi so even if you have enabled everything correctly you’ll still get extra long fix time if you are still in your wifi range.
@nixzero
Thanks! It does work the way you explained. That’s very strange they disabled it, and basically hid the settings that way. Now Mediatek is well-know for having poor GPS, but once you set the correct settings everything works as expected. The only reason I can imagine it’s disabled by default is to avoid overloading Mediatek “EPO servers”.
Damn Android! It seems you need to root your device, then edit a file with root explorer just to change the NTP server.
http://forum.xda-developers.com/showthread.php?t=1200089
The only problem is that there’s no gps.conf file in /system/etc. Should I just create it?
@cnxsoft
just let it do to fasterfix or gpsfix app, as @rasz_pl suggested, it will create every needed file.
Hi!
I do not recomment to use EPO. The ammount of precalculated ephemerides data requires a big file transfer. Unfortunately the MTK EPO Servers often break up transfers, are unreachable or load this data while you’re out in the fields via slow GSM.
I recomment to properly set up AGPS with correct time and data servers. The ammount of data to get AGPS going is very little, the time-to-fix is usable but this way it is far more reliable.
The maior problem of MTK is not the GPS but that they base all calculations on the GPS only. They would do a better job to integrate inertial sensor information for position prediction. Neither EPO nor AGPS can keep you on track if no or bad GPS signals are available only. You need to use g-sensor, compass and gyro data, there is no other way.
In the latest firmwares they use GPS, Baidu and GLONASS, tracking up to 32 satellites in parallel. But if you turn left on a crossing, the nav still goes straight forward. After 500m it jumps or fades back to your real position, but the nav already tracked you on the wrong road and now tries to naviagte you back to the right way.
Using gyro sensor to detect the left-turn would not have led to this misbehaviour.
After trying three smartphone with MTK chipset I gave up and swith to a chinese smartphone with a Snapdragon.
Works like a charm, no need to root it and mess up with 3rd party applications.
Which version of MobileUncle did you use?
Current version dont have EPO enable option
I bought a zopo zp998 and experienced the same problem.
@thinkthing
now 2014011v2.9.9.
I’m now accessing the EPO menu directly in the Android menu, as explained in the comments above
Here is a nice fix without rooting the phoneand when EPO can not be downloaded. It worked for me. Now my Kingzone K1Turbo is a 100% perfect. 🙂
use this: http://fix-my-gps.blogspot.nl/
Hello, I have a MTK6572 based phone, model G18, and I even can’t find the GPS button. In Location access, there is not that button, so I think that the problem is from another origin. Do you have any idea?
@Ricardo Viesca
I’ve had a quick look, and it looks like G18 (MT6572) does not support GPS at all. That’s why you don’t have a GPS button.
The GPS on my Acer Liquid E2 V370 worked fine but the initial fix could take ages. The solution for me was in downloading the EPO file (in location settings push “GPS satellites”, i.e. the name not the blue toggle) manually.
Note 1: This file seem onlys to be valid for one day, so you will have to repeat this if the automatic download doesn’t work.
Note 2: I always receive and error that download failed. Despite this error message, normally the download is successfull.
You can check if a new EPO file is required (and if the file download has been downloaded successfully) using https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2 or a similar app. Check the total number of visible satellites (see fix/sats, second number must >12). You always should have at least 12 satellites in sight
User guide GPS Status app: http://mobiwia.com/gpsstatus/userguide .
Note 3: >12 refers to the number of available sats, not the number of sats used for the actual position fix. The number of satellites used for a proper fix can be as low as 4.
@cnxsoft
Oops! Thank you for your time anyway!
@debar
In the end downloading the EPO file as described above did not work well for me 🙁 That triggered me to root the phone and download FasterGPS ( https://play.google.com/store/apps/d…=org.fastergps ). This allowd me to change the ntp server to the correct region.
And then I used MT GPS ( https://play.google.com/store/apps/details?id=com.chxdev.mtgps ) to download the EPO file which is valid for a month.
I did not update or change anything for A-GPS. Not sure if there is still some A-GPS used in the background, I just switched the auto update off.
Finally to check GPS performance I use GPS Test ( https://play.google.com/store/apps/details?id=com.chartcross.gpstest ). For me this works best. Initial GPSfix within 2 minutes after switching on the ‘use GPS’ option.
i have try it on tablet lenovo a5500 and all the time i open a gps program i get the message :
sl request received for up session
how to stop this?
I have finally found the solution for the prblem with the GPS jumping around and not staying on the road all the time. The GPS Locker seems to help me at least. Just turn it on and when it locks on minimize and open the navigation app of choice. I have ZP998
The app GPS Locker can be downloaded from Play Store.
@Ragee
I had this problem too with another phone, and disabling WiFi fixed the issue -> http://www.cnx-software.com/2015/04/26/improve-mediatek-mt6752-gps-accuracy-by-turning-wifi-off/
@nixzero
Wow, that was really handy – thanks so much for point out the EPO settings under GPS! You are right, it is totally unobvious