GPS Problems

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Capacitor also on 20080723)
 
(65 intermediate revisions by 29 users not shown)
Line 1: Line 1:
See [[GPS]] for details on how to evaluate the Freerunner GPS with command line utilities.
+
See GPS for details on how to evaluate the [[Neo FreeRunner GPS]] with command line utilities.
  
 +
=== Problem: it takes a long time (10min+) before the FreeRunner gets first GPS data ===
  
{|border="3"
+
It was found that the Openmoko FreeRunner GPS has a long Time To First Fix (TTFF) when there is an SD card in the phone. [http://lists.openmoko.org/pipermail/community/2008-July/021774.html This thread] indicates that there is interference from the SD card slot: TTFF is much shorter without an inserted SD card.
|+Problems I'm having with the GPS
+
!Username||Checked outside?||External antenna?||Note
+
|-
+
|Pthorin ||Yes|| No ||I tried for about 40 minutes outside, I'm running om-gta02 P1-Snapshot-20080622. Did get GPS time outside, but only got lines like:  
+
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
+
  
--[[User:Pthorin|Pthorin]] 05:11, 11 July 2008 (UTC) I tried it out once again after removing the front cover and got a fix quite fast, less than five minutes. Could there be an issue with the case blocking the signals? Could the snap/latch above the antenna be a problem?
+
::More specific: the GPS signal level drops by 20dB, i.e. a factor of 100. Signal strength of a GPS satellite above your head is around -127dBm. Needed strength for a first fix is -145dBm with a minimum of three satellites. Once the GPS chip has a fix, it can operate at signal levels of -157dBm, thus making it possible to operate while there is data transfer from/to the SD card.
|-
+
::''(From http://lists.openmoko.org/pipermail/community/2008-July/022202.html )''
|iandouglas ||Yes|| No ||Spent over a half hour outdoors, the NMEA port on my Samsung Blackjack 2 found my position just fine, but also got the same 99.99,99.99,99.99*30 line as Pthorin when powering on the GPS unit, starting gpsd, then running gpspipe at the command line
+
|-
+
| genki || Yes || Yes || Same here. Does not get a fix without external antenna. GPS output is 99.99,99.99,99.99*30 as well
+
|-
+
|Dummy ||?|| ? ||
+
|}
+
  
== Solved problems ==
+
=== Solutions ===
  
''Let's collect hints which could solve the above problems here. E.g.: How to get the best results with your internal antenna''
+
{{Note|It seems that in the newer version of the hardware, a compensating capacitor is now present. So this problem should be fixed with newer devices. First noticed on 20080724 and confirmed on 20080830. You can check if it has the fix by looking for the capacitor beneath the SD card, as shown in [[Media:Gta02 gps 10pf rework sop.pdf|this PDF file]].}}
 +
{{Note|The capacitor also appeared on a 20080723 purchased from Pulster vendor.}}
  
=== Basic GPS debugging ===
+
A [http://lists.openmoko.org/pipermail/openmoko-kernel/2008-July/003777.html software workaround] has been released as a kernel patch and may be acquired simply by doing an "opkg update" and "opkg upgrade" and then rebooting your FreeRunner. This workaround effectively turns off the SD card clock when the SD card is not being used. You can then use the SD card simultaneously with GPS, except for the first approximately 30 seconds.
  
It could be that your GPS device is functioning properly, but needs to be "coaxed" into getting an initial fix.
+
Openmoko is soliciting the assistance of the community to test the effectiveness of this software fix. The experiment consists of a series of measurements in different conditions, prior to applying the software fix and then after applying the software fix. Please visit [[FreeRunner GPS Software Fix TTFF Measurement Test]] for instructions to participate and to see the results so far of this test.
  
* Before reporting a problem here, please check that you've had the GPS out in the open air, preferably with the GPS antenna pointed up for over 15 mins. (the screen the right way up, with the top of the phone facing up, and the screen facing the horizon). This should get a lock in even the worst cases.
+
Openmoko has examined a hardware solution: soldering a 10 pf capacitor between SD card pin 5 (clk) and pin 6 (Vss) [[Image:Gta02 gps 10pf rework sop.pdf]] and more detailed [[Image:SOP_for_GPS_capacitor_rework.pdf|GPS issue SD clcok pin capacitor rework guide]]. This effectively restores GPS performance to the levels obtained without the SD card inside. The rework is not suggested to end users without hardware soldering technique and equipment. This rework is done on all the new fabricated Neo FreeRunners
  
* However, you might not obtain a lock if the orientation or position of your phone continuously changes.  It needs to be stationary long enough to download a frame of data from one of the satellites.  Frames are 1500 bits and take 30 seconds to broadcast. The first 6 seconds of the frame contains clock data; the remainder describes the satellite position.  Downloading this data can take a surprisingly long time for two reasons.
+
==== Hardware mod related ====
*# The GPS reception is sensitive to the orientation of the phone.  When you move the phone, it can corrupt part of the current frame.
+
*# GPS signals reflect off buildings, interfering with reception in seemingly random ways.  If local objects cause signal reflections between you and the satellites, the data may repeatedly fail to download; try facing a different direction (and then holding still) after a few minutes without a lock.
+
* Is your unit obtaining signal at all?  Check using the AGPS test program "Openmoko AGPS UI".  Click "Power On" to begin the test. 
+
** The "ss" button lists satellites and signal strengths; pressing the "dBm" or "C/N0" button at the bottom of the screen cycles through different scales; a signal between 130dBM and 150dBm should be adequate for a lock, assuming the Neo obtains a consistent signal (lower numbers / taller bars are better).
+
** It may take a few minutes for the first satellite to appear in this display.  You'll need multiple satellite signals to get a lock.
+
** Before getting a lock, the "UTC" field in the "run" tab should start displaying the current time.  This value is obtained via the GPS antenna; it may take a few minutes for this field to become populated.
+
  
Finally, there is probably room for improvement in the way GPS fixes are currently obtained.  GPS devices can obtain fixes at least three different ways.  The least sophisticated method downloads a set of current satellite orbits by downloading frames.  If part of a frame is corrupted, the GPS device must wait 30 seconds for it to be retransmitted.
+
See: 
 +
* [[Shop:Speedevil|Speedevil's Shop]] for a UK service to perform this operation on your freerunner, or globally shipped 10pF capacitor.  
  
A slightly more sophisticated approach uses an initial estimate of the current time and your position to obtain a lock more quickly. Finally, instead of downloading orbit and position data from the satellites, some modern GPS devices simply recalculate the information locally. Some (or all?) of these optimizations are supported by the Freerunner's GPS device, though the software installed at the factory does not seem to make use of them.
+
*  [http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=490-1278-1-ND Digikey] for the capacitor.
  
=== Information about faulty antennas ===
+
=== Discussion ===
  
* If you list your problems above, note if you've tried unplugging and replugging the internal GPS connector. (See [[Disassembling_Neo1973]] about 2/3 of the way down. (this may differ on freerunner, pictures appreciated)
+
The following is based on [http://lists.openmoko.org/pipermail/community/2008-July/022180.html Alasal's post] to the community mailing list.  
  
[[FreeRunner_GPS_antenna_repair_SOP]] Indicates that the problem may be bad soldering, and includes a guide to fix. This will presumably void your warranty.
+
;What is TTFF?
 +
:TTFF means Time To First Fix of the GPS. This is the time the GPS needs to get the first clue on where you are on planet earth. So you have to do this only once. After you have a FF (first fix), you can get more fixes without any problems with the SD card in the phone.
  
[[Category:GPS]]
+
 
 +
;So if we have a first fix, the SD card doesn't block the GPS anymore?
 +
:Yes, the SD card doesn't block the GPS if we have a first fix. (Some people even claim it's more stable)
 +
 
 +
 
 +
;Why do we need a first fix?
 +
: According to [http://lists.openmoko.org/pipermail/community/2008-July/020705.html Al Johnson], the Antares4 chip on the GTA02 doesn't have the memory needed to store almanac and ephemeris, last known position or time. This means that every start is a true cold start. It [http://lists.openmoko.org/pipermail/community/2008-July/020772.html is possible] to save location, almanac and ephemeris at GPS shut down, and restore these information at the next startup, but that does not seem implemented yet.
 +
 
 +
 
 +
;Does the lower signal also affect accuracy?
 +
:It is a good deal more jittery. However, if you drive around in a city you will get a lot more error from signal reflections than from the jitter.
 +
:''(From http://lists.openmoko.org/pipermail/community/2008-July/022209.html )''
 +
 
 +
 
 +
;Do they have a solution?
 +
:Yes. There is already a highly alpha software workaround. The software just turns off the SD card clock when the SD card is not being used. They are also examining a hardware solution.
 +
::The software fix is still in testing. Expect first results this noon (''Thursday, 17th July 2008'') (Taipeh time).
 +
::Also, the hardware fix needed is rather easy. No need to open the shielding or housing. We are working on a document which gives you detailed instructions.
 +
::''(From http://lists.openmoko.org/pipermail/community/2008-July/022242.html )''
 +
 
 +
 
 +
;Do we have to return our FreeRunners to Openmoko?
 +
:Probably not, because the software workaround should work too.
 +
 
 +
;But we can't read from the SD card when the GPS is on?
 +
:Wrong, you will be able to read the SD card when the GPS is on.  The clock for the SD card used to run constantly.  Now the kernel turns it off when the SD card is not in use.  As long as you are not constantly reading from the SD card, you should see much better first fix times.  Obtaining a GPS fix does not affect SD performance.
 +
 
 +
;Did Openmoko test the GPS with a SD card in it?
 +
:Yes.
 +
 
 +
;Why didn't they find it while testing the FreeRunner?
 +
:Because they have to do the tests with a fake GPS signal and with that signal it worked (In a fab you don't have a decent GPS signal). They have already modified the test, so it corresponds to the GPS signal better.
 +
 
 +
== Information about faulty antennas ==
 +
 
 +
* If removing the SD card doesn't help and you suspect your antenna, try unplugging and replugging the internal GPS connector. (See [[Disassembling_Neo1973]] about 2/3 of the way down.  (this also applies to the Freerunner, since it's the same case)
 +
 
 +
* Also note that there is a trac ticket for this issue: [http://docs.openmoko.org/trac/ticket/1542 #1542]
 +
 
 +
* [[FreeRunner GPS antenna repair SOP]] indicates that some (rare?) units may have bad soldering, and includes a guide to fix. This will presumably void your warranty.
 +
 
 +
[[Category:Neo FreeRunner solved GPS problems]]

Latest revision as of 13:31, 15 September 2009

See GPS for details on how to evaluate the Neo FreeRunner GPS with command line utilities.

Contents

[edit] Problem: it takes a long time (10min+) before the FreeRunner gets first GPS data

It was found that the Openmoko FreeRunner GPS has a long Time To First Fix (TTFF) when there is an SD card in the phone. This thread indicates that there is interference from the SD card slot: TTFF is much shorter without an inserted SD card.

More specific: the GPS signal level drops by 20dB, i.e. a factor of 100. Signal strength of a GPS satellite above your head is around -127dBm. Needed strength for a first fix is -145dBm with a minimum of three satellites. Once the GPS chip has a fix, it can operate at signal levels of -157dBm, thus making it possible to operate while there is data transfer from/to the SD card.
(From http://lists.openmoko.org/pipermail/community/2008-July/022202.html )

[edit] Solutions

NOTE: It seems that in the newer version of the hardware, a compensating capacitor is now present. So this problem should be fixed with newer devices. First noticed on 20080724 and confirmed on 20080830. You can check if it has the fix by looking for the capacitor beneath the SD card, as shown in this PDF file.


NOTE: The capacitor also appeared on a 20080723 purchased from Pulster vendor.


A software workaround has been released as a kernel patch and may be acquired simply by doing an "opkg update" and "opkg upgrade" and then rebooting your FreeRunner. This workaround effectively turns off the SD card clock when the SD card is not being used. You can then use the SD card simultaneously with GPS, except for the first approximately 30 seconds.

Openmoko is soliciting the assistance of the community to test the effectiveness of this software fix. The experiment consists of a series of measurements in different conditions, prior to applying the software fix and then after applying the software fix. Please visit FreeRunner GPS Software Fix TTFF Measurement Test for instructions to participate and to see the results so far of this test.

Openmoko has examined a hardware solution: soldering a 10 pf capacitor between SD card pin 5 (clk) and pin 6 (Vss) File:Gta02 gps 10pf rework sop.pdf and more detailed File:SOP for GPS capacitor rework.pdf. This effectively restores GPS performance to the levels obtained without the SD card inside. The rework is not suggested to end users without hardware soldering technique and equipment. This rework is done on all the new fabricated Neo FreeRunners

[edit] Hardware mod related

See:

  • Speedevil's Shop for a UK service to perform this operation on your freerunner, or globally shipped 10pF capacitor.

[edit] Discussion

The following is based on Alasal's post to the community mailing list.

What is TTFF?
TTFF means Time To First Fix of the GPS. This is the time the GPS needs to get the first clue on where you are on planet earth. So you have to do this only once. After you have a FF (first fix), you can get more fixes without any problems with the SD card in the phone.


So if we have a first fix, the SD card doesn't block the GPS anymore?
Yes, the SD card doesn't block the GPS if we have a first fix. (Some people even claim it's more stable)


Why do we need a first fix?
According to Al Johnson, the Antares4 chip on the GTA02 doesn't have the memory needed to store almanac and ephemeris, last known position or time. This means that every start is a true cold start. It is possible to save location, almanac and ephemeris at GPS shut down, and restore these information at the next startup, but that does not seem implemented yet.


Does the lower signal also affect accuracy?
It is a good deal more jittery. However, if you drive around in a city you will get a lot more error from signal reflections than from the jitter.
(From http://lists.openmoko.org/pipermail/community/2008-July/022209.html )


Do they have a solution?
Yes. There is already a highly alpha software workaround. The software just turns off the SD card clock when the SD card is not being used. They are also examining a hardware solution.
The software fix is still in testing. Expect first results this noon (Thursday, 17th July 2008) (Taipeh time).
Also, the hardware fix needed is rather easy. No need to open the shielding or housing. We are working on a document which gives you detailed instructions.
(From http://lists.openmoko.org/pipermail/community/2008-July/022242.html )


Do we have to return our FreeRunners to Openmoko?
Probably not, because the software workaround should work too.
But we can't read from the SD card when the GPS is on?
Wrong, you will be able to read the SD card when the GPS is on. The clock for the SD card used to run constantly. Now the kernel turns it off when the SD card is not in use. As long as you are not constantly reading from the SD card, you should see much better first fix times. Obtaining a GPS fix does not affect SD performance.
Did Openmoko test the GPS with a SD card in it?
Yes.
Why didn't they find it while testing the FreeRunner?
Because they have to do the tests with a fake GPS signal and with that signal it worked (In a fab you don't have a decent GPS signal). They have already modified the test, so it corresponds to the GPS signal better.

[edit] Information about faulty antennas

  • If removing the SD card doesn't help and you suspect your antenna, try unplugging and replugging the internal GPS connector. (See Disassembling_Neo1973 about 2/3 of the way down. (this also applies to the Freerunner, since it's the same case)
  • Also note that there is a trac ticket for this issue: #1542
Personal tools

See GPS for details on how to evaluate the Freerunner GPS with command line utilities.


Problems I'm having with the GPS
Username Checked outside? External antenna? Note
Pthorin Yes No I tried for about 40 minutes outside, I'm running om-gta02 P1-Snapshot-20080622. Did get GPS time outside, but only got lines like:

$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30

--Pthorin 05:11, 11 July 2008 (UTC) I tried it out once again after removing the front cover and got a fix quite fast, less than five minutes. Could there be an issue with the case blocking the signals? Could the snap/latch above the antenna be a problem?

iandouglas Yes No Spent over a half hour outdoors, the NMEA port on my Samsung Blackjack 2 found my position just fine, but also got the same 99.99,99.99,99.99*30 line as Pthorin when powering on the GPS unit, starting gpsd, then running gpspipe at the command line
genki Yes Yes Same here. Does not get a fix without external antenna. GPS output is 99.99,99.99,99.99*30 as well
Dummy ?  ?

Solved problems

Let's collect hints which could solve the above problems here. E.g.: How to get the best results with your internal antenna

Basic GPS debugging

It could be that your GPS device is functioning properly, but needs to be "coaxed" into getting an initial fix.

  • Before reporting a problem here, please check that you've had the GPS out in the open air, preferably with the GPS antenna pointed up for over 15 mins. (the screen the right way up, with the top of the phone facing up, and the screen facing the horizon). This should get a lock in even the worst cases.
  • However, you might not obtain a lock if the orientation or position of your phone continuously changes. It needs to be stationary long enough to download a frame of data from one of the satellites. Frames are 1500 bits and take 30 seconds to broadcast. The first 6 seconds of the frame contains clock data; the remainder describes the satellite position. Downloading this data can take a surprisingly long time for two reasons.
    1. The GPS reception is sensitive to the orientation of the phone. When you move the phone, it can corrupt part of the current frame.
    2. GPS signals reflect off buildings, interfering with reception in seemingly random ways. If local objects cause signal reflections between you and the satellites, the data may repeatedly fail to download; try facing a different direction (and then holding still) after a few minutes without a lock.
  • Is your unit obtaining signal at all? Check using the AGPS test program "Openmoko AGPS UI". Click "Power On" to begin the test.
    • The "ss" button lists satellites and signal strengths; pressing the "dBm" or "C/N0" button at the bottom of the screen cycles through different scales; a signal between 130dBM and 150dBm should be adequate for a lock, assuming the Neo obtains a consistent signal (lower numbers / taller bars are better).
    • It may take a few minutes for the first satellite to appear in this display. You'll need multiple satellite signals to get a lock.
    • Before getting a lock, the "UTC" field in the "run" tab should start displaying the current time. This value is obtained via the GPS antenna; it may take a few minutes for this field to become populated.

Finally, there is probably room for improvement in the way GPS fixes are currently obtained. GPS devices can obtain fixes at least three different ways. The least sophisticated method downloads a set of current satellite orbits by downloading frames. If part of a frame is corrupted, the GPS device must wait 30 seconds for it to be retransmitted.

A slightly more sophisticated approach uses an initial estimate of the current time and your position to obtain a lock more quickly. Finally, instead of downloading orbit and position data from the satellites, some modern GPS devices simply recalculate the information locally. Some (or all?) of these optimizations are supported by the Freerunner's GPS device, though the software installed at the factory does not seem to make use of them.

Information about faulty antennas

  • If you list your problems above, note if you've tried unplugging and replugging the internal GPS connector. (See Disassembling_Neo1973 about 2/3 of the way down. (this may differ on freerunner, pictures appreciated)

FreeRunner_GPS_antenna_repair_SOP Indicates that the problem may be bad soldering, and includes a guide to fix. This will presumably void your warranty.