Howto Test Your GPS with agpsui

From Openmoko

Jump to: navigation, search


How to test AGPS on the Neo FreeRunner


Some FreeRunner GPSs appear to be insensitive, taking a long time, or not obtaining a fix at all, even in ideal condtions.

There is an issue where the memory clock for the SD Card interferes with the internal GPS antenna GPS Problem. A software fix is well underway and first iterations of the it appear in releases of OM2007.2 on or after 2008-07-22. Either flash a version with the fixes or else please remove the SD Card while performing the test. Obtaining a fix took well under 1 minute with the card removed and also with the software fix.

There was a report of a bad solder joint between the GPS antenna connector and the FreeRunner main PCB but it is very unlikely that your FreeRunner has this situation.

Why do I need to test?

This guide outlines how to gather data to help fix this problem. It's important for both those with working GPS, and those with not-working GPS to perform this test.

There may be some with marginal GPSs that appear to work, but are drastically less sensitive than the norm.

This guide assumes that you've managed to configure your FreeRunner so that you can install opkg packages from, either directly through wifi or USB Networking, or by downloading them to a desktop and transferring them with scp command.


We need to find the average reported signal strength of phones in a similar condition.

This should be outside, with no obstructions too near the horizon. A location with nothing within 30 degrees of the horizon is adequate. The occasional sticking up building or tree is not a big issue.

The phone should be placed upright, with the screen upright in order to make the antenna (at the top of the phone) most sensitive - if placed flat on a table, it will have very poor sensitivity to half the satellites in the sky.

Could you report the following numbers.

  • Serial number, this number is printed on both the black box packaging and under the battery of your freerunner. It's 9 digits and begins 8A86<xxxxx>
  • Number of satelites your phone managed to detect and a estimate of the average signal strength in dBm for those satelites. (We don't need to know the average for each satelite, just the average for all satelites.)
  • How long time it took to get First Fix.


  • 1. Assuming you have a fresh-from-the-factory freerunner, first get some basic networking configured. this is beyond the scope of this howto.
  • 2. ssh to the freerunner:
ssh root@ 
  • 3a. If you have a working wifi or usb network:
opkg update 

( Ignore all warnings about missing signature files, the openmoko repository haven't got any at the moment.)

  • 3b. Or if your doing this the basic way, download openmoko-agpsui and then transfer to your freerunner:
scp openmoko-agpsui_*.opk root@ 
  • 4. Install the package openmoko-agpsui:
opkg install openmoko-agpsui


opkg install openmoko-agpsui_*.opk 
  • 5. After having completed all these steps sucessfully your ready to test your freerunner. Charge your battery to full capacity (can't hurt), wait for a clear weather and then check out places you can visit. The ideal place is in the middle of nowhere, but the next best thing is a area with clear view of the sky and no towering foliage or buildings nearby. Nice weather is a must have because you don't want your shiny freerunner to get soaked do you?
  • 6. Find a place where your freerunner can sit on a stable surface for at least 30 minutes without being molested, fondled or even touched. Ideally the FR it should sit inside a (empty) ceramic cup pointing upwards for maximum coverage. Second best is to leave the freerunner with the screen facing upwards, preferably with the top of the freerunner facing northish. (Not a requirement, just trying to be scientific. ;) )
  • 7. on the freerunner Graphical User Interface you should find a program

called "Openmoko AGPS UI". Run this program. The program has several interesting features. on the top left side of it's UI you can find the tabs: "Run" "SS" "AZ" "plot" "Log"

"Run" is the current picture, here you start and stop the GPS
testing software. Everything with the word "Reset" reset's the
sampling and/or the chipset. "Power on"/"Power off" powers up
(or down) the GPS chipset and starts logging. "One Fix" starts
the logging but powers automatically down after having managed
to get FFix from a single satelite.
"SS" gives you signalstrength, calculates average
signalstrength, identifies the differnt satelites by number and
of course lets you count the number of satelites _IF_ it can
manage to find at least 1 satelite.
"AZ" gives you the position of the different satelites _after_ it
get's a FFIX. Otherwise a satelite is "defaulted" to being
somewhere over the northpole. (on a _very_ thight polar orbital
indeed. ;) )
"Plot" gives a estimate on where the different satelites say _you_ are,
usually with a margin of +-5 meters. (10 meters in difference.)
"Log" gives you the NEMA output from the GPS chipset. Interesting for
those who can read NEMAish, not so interesting for the rest of
  • 8. Now press "Power on" and then "SS", then leave the FreeRunner in a vertical position for _at least 30 minutes without moving or touching it_. (a large mug works well as a stand) Do not stand over it either, your blocking those precious satelite signals! (GPS runs at ~ 1,2-1,5 Ghz, this is a weak signal with a wavelength of 20cm, now imagine godzilla (you) smashing them)
  • 9. After having spent twidling your thumbs or reading a good book for 30 minutes you get to press the "dBm" button to translate those nasty dB.Hz into goodness dBm signals. If you've gotten FFix some of the blue blue bars has a nice black thing on the bottom. And on top of screen above each bar there are two numbers, the top denoting the maximum signal you got from each satelite and the lower number the average signalstrength.
  • 10. If you haven't managed to get a FFIX your either doing something wrong or your one of those unlucky guys (gals) with a bad solder or something else that probably requires shipping the phone back to your supplier/openmoko.
If you got only 3-4 satelites and had a lousy reception (say -150 to -160 dBm) you might have a faulty freerunner but you should try again somewhere else at another time of the day just to make sure.
If you had a lousy reception but did get a FFix, then try again somewhere else to see if you can improve your record.
If you on the other hand found several satelites( +5) and had quite a good reception (maybe > -145 dBm ? ), then you probably have a working phone.
Now, I'm not a radio or wireless engineer, so any numbers in dBm should be taken with a grain of salt. But the main thing is that you followed the basic instruction and did a thorough scientific test! You did Science!
  • 11. Now report any anomalities to the apropriate mailinglists or the guys that told you to read this howto.

Recommended Reading

Personal tools