[Captivate Android Development] Da_G:
@TheSopranos16:

I haven't tested with the proper equipment yet to verify this, but in the debug output you can see that the TCXO (Temperature Controlled Crystal Oscillator) used as a clock source for the GPS chipset does not calibrate to the proper value (a normal TCXO will always kick back the same frequency, +/- a small variance) - our TCXO seems to be more sensitive than it should be, it's frequency output drifts over time. As GPS is an entirely time based function (your location is calculated by determining the time it takes for each signal to reach you, and doing some math to correlate that with with the location of each satellite)

For several of the frequency plans glgps can be initialized with, there is an added _UNSTABLE plan which tells the daemon to frequently re-calibrate the TCXO to compensate for this clock drift. I believe this is the main cause of satellites drifting in and out of view (TCXO drift causes the GPS to search for them in the wrong place temporarily) - I noted that in the Nexus S the _UNSTABLE frequency plan is not used, presumably they replaced the TCXO with a more reliable one. All TCXO's do not seem to be created equal, judging by data provided here by us, so it may well be that some devices can perform better without the _UNSTABLE frequency plan used in this jupiter.xml. Try changing it! :) You can also try the _EXT_LNA parameter which tells the daemon that the RF circuit has an External Low Noise Amplifier on it (i.e. the SNR should be higher than normal, thus reject less of the signal) - I haven't diassembled the unit to see if there actually is an LNA in the RF circuit (I doubt it, we'd be seeing higher signal strength)

The GPS Chip internally needs about -155dBm signal strength to use a satellite for a fix. This is reported in LbsTestMode as roughly 16 dBHz (not sure of the exact value) - when a satellite's reported signal strength drops below this value the GPS drops it from the current fix calculation.

To sum it up it's my opinion that the antenna is sub-par, but not bad enough to account for all our problems. Certainly providing a better antenna should result in a better positional calculation (I've not once seen it go sub-5m, but my BT GPS can do .3m) Again i'm only trusting the debug output of the daemon, I haven't gone into the phone with an oscilloscope to actually measure the TCXO output.

@aleadam:

Tracking should indeed be the major change here. If AGPS was functioning correctly in your previous setup, the TTFF, etc. should not be affected. Although more aiding data should be saved to /data/gps now for use with future locks :)

@calfman, @tiger4j:

Here's what the updater-script in the .zip does (you can open it in a text editor to read it yourself, also,) copies files into /system: /system/bin/gpsd/glgps_samsungJupiter, /system/etc/jupiter.xml, and copies files into /data: /data/gps/secgps.conf, then sets permissions on these files (chmod 0755 glgps_samsungJupiter, chmod 0644 jupiter.xml, chmod 0644 secgps.conf. It looks like the install failed copying files to /system, hard to say why without knowing more about the setup of that ROM/Kernel. You can do it manually from ADB easily enough :)

@crazililazn:

That's expected behavior with this supplied jupiter.xml. All interpolation algorithms i've found a switch for thus far have been disabled. The reason for that is that alot of the tracking issues are related to those algorithms. GPS Pedestrian Mode tells the GPS to report each fix, and not filter any out (because they don't match typical movements of a vehicle) if you do not desire this behavior, change CNoSmoothing="false" and DynMode="DYN_VEHICLE" (or DYN_AUTO)

@everyone:

I'd like to stress that this isn't intended to be a fix for everyone as-is. Rather to educate you on how you can use jupiter.xml to tailor the GPS output to YOUR needs. If you only ever use the GPS for navigation, and get better results with smoothing/vehicle mode on, by all means, turn it on :) Thats the purpose of all the detail i've put in the first post, so you can make your own decisions. The provided settings are only what works best FOR ME.