Alright, here is something that I think would be really cool. I don't anything about coding, but if someone is ambitious I think this could be kind of a cool thing. If anyone is a pilot and has heard of INS, it is basically a self contained navigation system on a plane, usually an airliner.
Basically the pilots set in the coordinates of the gate they are at, then a gyro or accelerometer measures speed in all directions to navigate itself. You can read about it here.
Why couldn't we use the accelerometers on our phones along with maps to do the same thing? Why? Well, it would help with battery life and would be great in really low GPS signal areas. Then you could have it get a location from the GPS every so often to make corrections for error and what not.
I don't know, just thought it would be kind of cool, maybe its lame maybe its not. If not, have fun I think it would be cool.
I think this takes a dive into calculus
When a person stops accelerating and moves at a constant speed, a g sensor (accelerometer) gives a zero reading back. It gets really screwy trying to track position with only one accelerometer. Think of it this way, the nintendo wii recently announced a wii controller add on for one to one motion... why? It takes more than one accelerometer to track exactly how a person moves in free space (and a butt load of mathematics).
Basic as can be said, position tracking cannot be done on this device without the aid of a gps or more accelerometers, i hope that helps
gobmonster said:
I think this takes a dive into calculus
When a person stops accelerating and moves at a constant speed, a g sensor (accelerometer) gives a zero reading back. It gets really screwy trying to track position with only one accelerometer. Think of it this way, the nintendo wii recently announced a wii controller add on for one to one motion... why? It takes more than one accelerometer to track exactly how a person moves in free space (and a butt load of mathematics).
Basic as can be said, position tracking cannot be done on this device without the aid of a gps or more accelerometers, i hope that helps
Click to expand...
Click to collapse
Oh well, I thought it would take quite a bit. Thanks!
Hi,
i need a Tool to calculate the distance of two devices with an accuracy of about 1 meter by a distance of 0-3 meter.
GPS doesn't suite this needs, but i guess bluetooth signal-strength does.
I was looking up the android bluetooth api but can't find anything to read signal strength. Anyone any tips how to get on the strength of the bluetooth signal?
thanks, exec
Cool idea
That is a pretty cool idea. I'm not a developer but I like it.
Another way is to use sound along with a tcp/ip or bluetooth connection
1) keep track of each phone's clock (or difference between)
2) make the second phone chirp/beep and record
a)the time the second phone started the beep
b)the time the first phone heard the beep.
3) calculate the distance using the amount of time it took to hear the beep.
note: the speed of sound may differ slightly but should be within your accuracy range
see http://www.sengpielaudio.com/calculator-soundpath.htm for an example.
nice idea, i'll keep this in mind. But for the moment it doens't fit my needs, cause it can be a loud enviorment with a lot of phones where i have to find the nearest one
exec87 said:
nice idea, i'll keep this in mind. But for the moment it doens't fit my needs, cause it can be a loud enviorment with a lot of phones where i have to find the nearest one
Click to expand...
Click to collapse
A pure tone at an agreed upon frequency will be hard to miss. If you have the service installed on all the phones you can query each one in turn and then figure out which one is nearest.
do you know any example how to analyse the frequenze of the current recorded tone?
exec87 said:
do you know any example how to analyse the frequenze of the current recorded tone?
Click to expand...
Click to collapse
This looks promising
http://code.google.com/p/moonblink/wiki/Audalyzer
sry but if you want to measure distances of up to 3 metres with the help of sound speed, that wont work
sonic speed is 343m/s, that means it takes 0,002.9sec for one meter to pass.
or otherwise, it would pass the 3 meters in 0,008.7 sec for 3m
to compare it, a nexus one would do a clock cycle every 0,000.000.01 seconds, and in that time, the sound weave moves 0,000.000.343 metres.
So if you're optimistic and it takes "only" 100.000 to 500.000 cycles to sample the sound AND compare it to the clock, your diffrence of that two cases would be 3cm to 15cm, so you got a standard "uncorrectness" of about 12cm.
but thats if it takes 100.000 to 500.000 cyles, and it would be worse if it takes more time or if the clock is not 100% correct (this example is with a 100% exact clock)
if the clock is only correct for 1ms, you must add another 30cm of "uncorrectness"
arthofer said:
So if you're optimistic and it takes "only" 100.000 to 500.000 cycles to sample the sound AND compare it to the clock, your diffrence of that two cases would be 3cm to 15cm, so you got a standard "uncorrectness" of about 12cm.
but thats if it takes 100.000 to 500.000 cyles, and it would be worse if it takes more time or if the clock is not 100% correct (this example is with a 100% exact clock)
if the clock is only correct for 1ms, you must add another 30cm of "uncorrectness"
Click to expand...
Click to collapse
Dont think sampling and processing cpu-time matters so much as to make this method unusable.
a)The sample time does not matter. It will be:
system time when the recording started + time within the sample where the frequency is found (comparison is part of post-processing). The sample window can be fixed at 0.5 seconds (or less) as 343/2= 171.5m is huge.
The phone emitting the frequency can be triggered over wifi/radio and that will be very very quick (speed of light+message processing time)
b)the time taken for the comparison will not matter as its done after the event has occurred. (post-processing)
The 1ms clock problem can possibly be overcome by using System.nanoTime()
exec87 said:
Hi,
i need a Tool to calculate the distance of two devices with an accuracy of about 1 meter by a distance of 0-3 meter.
GPS doesn't suite this needs, but i guess bluetooth signal-strength does.
I was looking up the android bluetooth api but can't find anything to read signal strength. Anyone any tips how to get on the strength of the bluetooth signal?
thanks, exec
Click to expand...
Click to collapse
Maybe use a ruler?
Sorry that I can't stop myself doing this after reading your question
ok, to a more serious side, if bluetooth don't work, then maybe use wi-fi. don't know if they have the api for wi-fi to measure signal strength neither.
What if you had one phone act as a Wi-fi hot spot, then the other connect to it. Then someone write an app that will use GPS to determine the distance between the two. IDK, just a shot in the dark. I really dont have a lot of knowledge about that stuff.
You could use a PRF (pulse repitition frequency) but I have no idea what these would be for bluetooth or even the radios. Honestly I think using the GPS coordinates and distance equation would be the easiest.
Unfortunately our consumer gps's rarely go down to 1m, and that the max... And it will likely not work indoors
britoso is right... i'll keep the hint with wlan strength in mind, but atm i'm working at the audio idea... it's a little bit hard, and first tests show that an accuracy of 1-2 meters is possible... i'll reply if i'm done.
however i'm thankful for EVERY input
edit: i think i will give up... the delay of analyzing the sound is between 150ms and 250ms... and i can't see in code where this 100ms difference come from... i think i need a kind of realtime system to build this...
exec87 said:
britoso is right... i'll keep the hint with wlan strength in mind, but atm i'm working at the audio idea... it's a little bit hard, and first tests show that an accuracy of 1-2 meters is possible... i'll reply if i'm done.
Click to expand...
Click to collapse
however i'm thankful for EVERY input
exec87 said:
edit: i think i will give up... the delay of analyzing the sound is between 150ms and 250ms... and i can't see in code where this 100ms difference come from... i think i need a kind of realtime system to build this...
Click to expand...
Click to collapse
If you can PM me the code I can take a look.
I didn't want to start coding this because
a) I only have one phone
b) havent used the bluetooth API.
I'm comfortable using tcp/ip though
i don't know if this is impossible.. but i think its worth the try.. i'm horrible at development nor i have taken any advanced math courses... so heres the concept:
how about getting two people hold a phone facing each other.... they both have to hold the phone upright and straight...(using Spirit Leveler)
with one of the phones... the app takes a picture of the other phone... and asks you to point out the phone's height in the picture...
and given the real height of the phone (this should be a dropdown box for known phone types.. and custom if you want to use a credit card... or anything else u find) it should tell you the height..
possible?
oh and one more thing.. u can have the phone's screen facing the camera with white background and black DOT... if that helps to do live tracking of the phone's size...??
britoso said:
If you can PM me the code I can take a look.
I didn't want to start coding this because
a) I only have one phone
b) havent used the bluetooth API.
I'm comfortable using tcp/ip though
Click to expand...
Click to collapse
This is what i first thought of when i saw this thread. Why not establish an ad-hoc network and send over a series of pings, each one send over one packet of info from phone A to phone B. have phone B process the information and show its good then send it back to A and have it verify it also. Then based of this data(and experiments to see hwo long it takes to process the information. you the time from a-b-a to calculate the distance.
This is all hoping that the speed of travel of the packet is not to fast to calculate the distance lol.
Any results?
This is the exact answer I'm looking for, which method produce better accuracy, is it the sound (measuring time difference) or the signal strength test (measuring the RSSI)
We all know that the GPS unit on our beloved SGS sucks badly. Firstly it takes ages and ages to find a good signal, and secondly it chews up bucketloads of battery to get there.
The other day I was talking to someone about GPS units within some handheld devices at work, and he told me something that completely blew me away - how GPS units ACTUALLY work as opposed to how most people think they work.
Firstly let me preface this by saying that he used (and I will use) the "Lies to Children" method of technical communication. If you are not a Terry Pratchett fan, it basically means that instead of explaining a subject to the Nth degree and getting the full detail across, you sum it up with what is essentially and technically a lie - but one that's a half-truth that will pave the way for future understanding.
Example? "The sun rises in the east and sets in the west". Comparatively speaking against the Earth, the Sun does NOT move. The actual truth is the sun moves within the galaxy and within the galaxy cluster and within the universe. The earth also moves in a similar manner and also rotates on its axis with a slight wobble that technically provide seasons. How does that relate to a 5 year old? "Yeah, uh, kid. The sun, you see, it rises in the east". A "lie" but one that works for everyone, and when their brain absorbs enough other information you can explain it properly (with another "lie", but one that's more truthful than the previous one)
Back to the topic:
I thought, like most of you probably think, that a phone's GPS works by having some kind of 2-way method of communication. When you enable the GPS unit and go into maps, the device starts broadcasting to the satellites to say "I'm here, now where is 'here'?" That's not the case.
It works a bit like this (and pardon the analogies)
Let's say there are 3 satellites are in geosynchronous orbit at fixed locations. For the sake of the description we'll call them FRED, GEORGE, and BILL. A lot of time and money was spent to make sure that they don't vary that location by a factor of a few cm before they re-correct their location. A bunch more time and money went into their internal time-keeping mechanisms so that they are also VERY accurate.
From their location they broadcast a signal outward. Fred says "HI I'M FRED LOCATED AT POSITION X AND THE TIME IS SUNDAY 18TH MARCH 2012 7:15PM AND 38.123456789 SECONDS"..."HI I'M FRED LOCATED AT POSITION X AND THE TIME IS SUNDAY 18TH MARCH 2012 7:15PM AND 38.123456790 SECONDS" and so on.
George says "HI I'M GEORGE LOCATED AT POSITION Y AND THE TIME IS SUNDAY 18TH MARCH 2012 7:15PM AND 38.123456789 SECONDS"..."HI I'M GEORGE LOCATED AT POSITION Y AND THE TIME IS SUNDAY 18TH MARCH 2012 7:15PM AND 38.123456790 SECONDS" and so on.
And Bill...I can't be stuffed writing it, let's just say Bill screams out his location and the current time, multiple times a second.
Now, while some satellites broadcast in higher or lower timings, the basics are the same: Current position, plus the current (accurate) time. (Some also send information regarding the other satellites it "knows" around it. Eg, "HI I'M BILL AT POSITION Z AND THE TIME IS BLAH AND I CAN SEE GEORGE AND FRED. THEY DON'T SAY MUCH, SO IT SURE IS LONELY UP HERE").
My point here is that the satellite neither knows nor cares who you are or where you are, it just pumps out that racket like a noisy teenager with a new stereo and what they THINK is the coolest music ever.
When the 3 signals are received on the ground by the GPS unit, it works out: "Bill thinks it's THIS TIME....George thinks it's THAT TIME...and Fred thinks it's this OTHER TIME....that means my distance from each one is actually THIS FAR and the real time is NOW". From that you can bang your location in LATITUDE and LONGITUDE on a map.
Sure, there are complications due to altitude and speed and direction, and you really need more than 3 satellites to work out where you are. But the reality is that, based on the lag in the signal from transmission to receiving (able to be calculated due to the speed of light), we can work out how long each signal took to get to the unit and therefore how far from the satellites we are. If you know where the satellite is supposed to be, you can work out where you are on the globe.
It really is that simple.
So when I found all of that out, I asked the question: If the satellite is really all that counts in this case, why does our GPS blow? In fact, why does any GPS work better than others?
Well, there are multiple factors:
Firstly, just like a good barman or psychologist, some "listen" better than others. The PASSIVE radio signal needs to be received by a unit that has a decent antenna and doesn't have other electrical crap affecting it. Anyone look inside their phone and see the antenna (and it's location)? Yup, it's in a pretty bad position and it's a pretty bad antenna.
Even if we were somehow to isolate the GPS unit and bring it out away from the interference, it's a pretty bad receiver. If you've ever listened to a transistor radio and compared it to a $4000 stereo unit, you know what I mean. Noise = bad data = bad location finding.
Secondly, the signal needs to be interpreted. When each broadcast hits the phone, the receiver accepts it and shunts it to the processor to work out. Slower phones can process less signals, especially when the OS may put a limit on how much processor time should be dedicated into working out the signals (there's no point using 100% of your processor when that means you can't display it properly on the map or let the user actually interact with the maps app)
Thirdly, we don't know all the positions of the satellites. When the signals first start getting processed, your phone communicates with the NTP servers it has located in your GPS.CONF. It asks which satellites are where and where that actually may be on the globe. Remember how I said each satellite tells you it's position? That was a "lie to children" moment. The damned thing is in the SKY after all. So, while we technically know where it is, the information means jack and sh*t to the GPS unit unless it has more information available.
What I mean here is: What part of the world can that satellite see/broadcast to? The satellite doesn't know or care, and it's not broadcasting that information at any case. There's more than a couple of satellites up there, so the phone needs to check back the NTP.ORG to work out some basics. As your phone uses the GPS function more and more, it stores up the addresses of the satellites that you know and love in your neck of the woods (including ones that are not geostationary) and will need to rely less on a data connection.
That's why when you use GPS the first time after a fresh flash it is just plain crap, but after a few more tries it works better. And that's why it's important to use FasterFix or a like app to nominate the closest/best NTP server for you - the closer servers respond quicker over the 'net and also have the list of "closest" stationary satellites stored at the front of the file. If you're in Australia you don't care about the 'merican or European sats, but they come afterward "in case you're overseas"
Lastly, when you take it all into account, if you have bad weather or tall buildings around you, then the signals blasted down from on high either get muted, muddled, or bounced around. The error correction in our phones is non-existent - it doesn't actually need to be due to the fact it's a PHONE and not a GPS unit, but some devices can and do filter out the known "dodgy" signals before processing. I'm pretty sure that when the techies run out of toys to add to or fix in our phones, they'll add altimeters and thermometers and they'll fix the GPS post-processing to get the signal down pat.
In case you're wondering, the whiz-bang GPS units that can get extra awesome resolution (down to beyond cm) have the list of every single satellite location up there stored internally, the on-board processor is dedicated to working out what the signals mean, and the GPS chip itself normally has a great big honking antenna on it and is extra receptive. Ours is a 2 dollar job from some bulk offload sale.
There you have it. Thanks for letting me brain dump. Hope this helps some people's understanding!
Interesting. I had always thought it was a simple two-way communication between the phone and a geostationary satellite. But in retrospect, that would be extremely inaccurate seeing as how the attenuation over such a long distance, as well as the interference with other phones (which might be using the same frequency because GPS is not network controlled, unlike calls) would make it difficult for the satellite to tell where the signal came from. This explanation makes much more sense. Thanks!
So, its still better to use an app like GPS Aids so the GPS would be "up" faster... Thanks for explanation, you sir, get a thanks.
Wow! Nice post, well written and very informative!
But I don't understand, how the help is GPS free when all this technology is so expensive!?
Sent from my GT-I9000 using XDA
Yes. Good post. Except the GPS satellites aren't geostationary. They orbit the earth twice a day at an altitude of approximately 20.000km. There are 6 different orbit planes and 4 satellites per orbit.
A geostationary satellite sits directly above the equator at an altitude of about 36.000km. One orbit lasts excactly one day and thus the satellite appears as if it's standing still in the sky.
You can google all that if you like.
GPS would be simple if all the satellites were geostationary, but that would make triangulation very difficult. Especially around the polar areas. Therefore they must be orbiting crisscross all over the globe. But that also makes geostationary orbits impossible (it is only possible directly above the equator).
Thanks given simply for the Terry Pratchett reference (I'm addicted to Discworld novels)
Here are my 2 cents about this whole "closer NTP server = better results"
1) NTP server is just a time server. It doesn't store any info regarding any satellite in your neighborhood. That's the role of A-GPS server - in our case it's supl.google.com that you see in every gps.conf.
2) We all get our current time from our mobile provider or manually setting it in settings. So we don't sync our clock to NTP server time. Our phone will just use NTP to figure out the offset - i.e. how accurate our clock really is. It can also take into account the delay factor caused by network latency since it's something relatively easy to measure. So in the end of the day it won't really matter what NTP server you use as long as it works and you don't have any network issues with it.
From my experience all these NTP games are one big placebo effect.
The only tips I got for better GPS are:
A) Clear GPS cache after not using it for a long period of time (or let android do that for you eventually).
B) Use mobile network data for faster fix (A-GPS).
C) Keep the antena free from any obstacles - In car place the phone directly under the front glass, don't expect it to work under the roof.
While running if you use armband, place the phone with its screen toward your arm since if placed otherwise your arm will blocks the gps signal completely.
Any one know why mine is fine and grabs lock within 10 seconds indoor with iGO and GPS test?
I didn't f*)Kin camp outside a electronic store JUST to get one on release date I got one from later batch which fixes hardware GPS reception issue
All GPS use one-way communication.. it would become too expensive n complicated to have two-way communication
1) The GPS receivers here on earth would require complicated and high power circuitry to send signals to satellites miles above the earth. It would suck a battery dry in minutes
2) The GPS satellites would require to handle communication with an exponentially increasing number of GPS units on the ground. That would require huge processing power, multiple channel support and communication management to avoid clashes between communicating units. Satellites are situated so high up that signals to and from satellites accrue a lot of noise n distortion.. For proper signals, satellites can only transmit data at very low data rates and have low bandwidth..
GPS requires exact timing, and I mean atomic clock exact. Its impossible to have atomic clocks in today's small devices. So satellites have a very accurate atomic clock on board.. Heck, some satellites have 3 on board to correct clock drift and error!! Even then, GPS devices were very expensive.
Then, some scientist found a way to find the exact location and time by using the really small timing variations in satellite signals. Coz of that, we can now afford GPS chips at $50..
Our phones don't have space for large ceramic antennas (one GPS unit I have has a 25x25x4 mm antenna on top!!) And the timing variation trick helps even low power units pick up satellite signals, but they are slightly less sensitive.. They won't be able to pick up weak signals, which your car nav unit will..
Also, processing GPS data doesn't take that much processing.. Almost all GPS units output their data in a standard format called NMEA format and the location data looks something like:
$GPGGA,<time>,<latitude>,<longitude>,<fix quality>,<no. of satellites>,<altitude>......
All the processor has to do is use this data.. A processor doesn't have to calculate anything at all with regards to actually locating the device. The GPS chip does it all..
Sorry for the really long post.. I hope it makes sense.. I'm doing a project which uses a GPS unit, so I've been studying on it..
First let me start by saying that I have a habit of drunk posting. So I logged into XDA today at work and went "huh? An extra bunch of 'Thanks'? What the hell have I done now?"
Which means that while the information in the OP does a decent job of summing up what I was told, some was a little off. Cheers for pointing out where I got things wrong.
Remember, last week "my mind = blown" by the fact that GPS isn't 2-way...which makes sense but is one of those things that I never considered...
Don MC said:
Yes. Good post. Except the GPS satellites aren't geostationary. They orbit the earth twice a day at an altitude of approximately 20.000km. There are 6 different orbit planes and 4 satellites per orbit.
Click to expand...
Click to collapse
You are quite right, there are a whole bunch of sats whizzing around up there in set orbits. Some of them "talk" to ground stations to get updates about the world in general, but a bunch just go screaming past blaring out their message.
I asked my mate at work who told me about how GPS works....his response? "Yeah, Lies to Children works like that." Apparently a combination of his half-explanation and my beer meant I got something wrong there. Sorry.
To give the full information about the different sats flying about, and how they get send the information....well, apparently it was easier to say "geostationary" !!
mike.sw said:
Here are my 2 cents about this whole "closer NTP server = better results"
1) NTP server is just a time server. It doesn't store any info regarding any satellite in your neighborhood. That's the role of A-GPS server - in our case it's supl.google.com that you see in every gps.conf.
2) We all get our current time from our mobile provider or manually setting it in settings. So we don't sync our clock to NTP server time. Our phone will just use NTP to figure out the offset - i.e. how accurate our clock really is. It can also take into account the delay factor caused by network latency since it's something relatively easy to measure. So in the end of the day it won't really matter what NTP server you use as long as it works and you don't have any network issues with it.
From my experience all these NTP games are one big placebo effect.
Click to expand...
Click to collapse
Again, you're right. But in the GPS.conf file there are both NTP and A-GPS servers. I was of the understanding the NTP address information also gave ...wait, disregard - just Googled that.
NTP only gives you time. And it won't matter which NTP server you get unless you have networking issues. I suppose the answer there lies in the fact that a "closer" NTP server will get you a quicker response to begin with, so your phone can start the process of working out the offset quicker....
Good tips, though I'm too much of a beer drinker to go running. Screen in or out.
ilabs said:
All GPS use one-way communication.. it would become too expensive n complicated to have two-way communication
1) The GPS receivers here on earth would require complicated and high power circuitry to send signals to satellites miles above the earth. It would suck a battery dry in minutes
2) The GPS satellites would require to handle communication with an exponentially increasing number of GPS units on the ground. That would require huge processing power, multiple channel support and communication management to avoid clashes between communicating units. Satellites are situated so high up that signals to and from satellites accrue a lot of noise n distortion.. For proper signals, satellites can only transmit data at very low data rates and have low bandwidth..
Click to expand...
Click to collapse
Correct...but kids these days also assume that steak literally grows on trees. Assumptions are the mother of all....
ilabs said:
Our phones don't have space for large ceramic antennas (one GPS unit I have has a 25x25x4 mm antenna on top!!) And the timing variation trick helps even low power units pick up satellite signals, but they are slightly less sensitive.. They won't be able to pick up weak signals, which your car nav unit will..
Click to expand...
Click to collapse
Correct, that was my point about the crappy GPS chip being like a crappy transistor radio. The combination of the quality of the chip plus the really really bad antenna (and it's position) means that people will not get car-gps like quality from their phone....and they shouldn't !!!
ilabs said:
Also, processing GPS data doesn't take that much processing.. Almost all GPS units output their data in a standard format called NMEA format and the location data looks something like:
$GPGGA,<time>,<latitude>,<longitude>,<fix quality>,<no. of satellites>,<altitude>......
All the processor has to do is use this data.. A processor doesn't have to calculate anything at all with regards to actually locating the device. The GPS chip does it all..
Click to expand...
Click to collapse
You're talking about the "final" output, but when I mentioned processing I meant the processing of the signal received.
I asked again about this. It was explained thusly: If you have interference in the form of tall buildings (for example) then the signal will actually bounce around a bit before being picked up. That "echo" can sometimes give a false reading if you took that one bit of information as a whole, as it's not a true representation of the time it took for the signal to get down from the sat.
So the device collects constantly and shunts that information to the processor to determine the length of time between when the sat spat it out and when the unit received it.
Now say every 10th "message" is a bounced/echo one. If the device is only able to process every 5th message, then it's potentially going to have up to half the messages be a dodgy echo job = bad location. It will catch up, eventually, but will take longer to know something weird is going on.
If, on the other hand, the more powerful processor was able to work out every 3rd message or more, then a more accurate fix comes quicker.
ilabs said:
Sorry for the really long post.. I hope it makes sense.. I'm doing a project which uses a GPS unit, so I've been studying on it..
Click to expand...
Click to collapse
Dude, the more people who post (sober) the better the information we have!!! Post away and make it long! Mine was!!
MrAndroid12 said:
Any one know why mine is fine and grabs lock within 10 seconds indoor with iGO and GPS test?
I didn't f*)Kin camp outside a electronic store JUST to get one on release date I got one from later batch which fixes hardware GPS reception issue
Click to expand...
Click to collapse
Luck....pure kiwi luck? lol.
I know my hardware blows. Takes anything from 30 seconds to 1 minute to get a dodgy half-lock.
I was thinking about packing it in for a new phone but a) still got a plan to pay off and b) ICS made the device more than useable in every other aspect.
wogfella said:
You're talking about the "final" output, but when I mentioned processing I meant the processing of the signal received.
I asked again about this. It was explained thusly: If you have interference in the form of tall buildings (for example) then the signal will actually bounce around a bit before being picked up. That "echo" can sometimes give a false reading if you took that one bit of information as a whole, as it's not a true representation of the time it took for the signal to get down from the sat.
So the device collects constantly and shunts that information to the processor to determine the length of time between when the sat spat it out and when the unit received it.
Now say every 10th "message" is a bounced/echo one. If the device is only able to process every 5th message, then it's potentially going to have up to half the messages be a dodgy echo job = bad location. It will catch up, eventually, but will take longer to know something weird is going on.
If, on the other hand, the more powerful processor was able to work out every 3rd message or more, then a more accurate fix comes quicker.
Dude, the more people who post (sober) the better the information we have!!! Post away and make it long! Mine was!!
Click to expand...
Click to collapse
Haha.. Yeah, the assumptions that you hear from time to time!! Makes even standard fiction seem possible!!
When I was talking about the processing, yeah, it was the final processing. But the processing of the GPS signal is only done by the GPS chip, not the processor to which the data is output. Generally GPS satellite signal frequencies are such that they die out very quickly when reflected off or passing through objects and buildings. That's why you get the best signal out under the open sky. The processing of the final received signals is done completely by the GPS chip. A standard GPS chip has only TX/RX serial pins apart from power pins. As soon as you power it up, it starts spitting out GPS data. Externally interfaced processors don't have to calculate anything at all.
Apart from this, everything is spot on!!
---------- Post added at 04:34 PM ---------- Previous post was at 04:27 PM ----------
MrAndroid12 said:
Any one know why mine is fine and grabs lock within 10 seconds indoor with iGO and GPS test?
I didn't f*)Kin camp outside a electronic store JUST to get one on release date I got one from later batch which fixes hardware GPS reception issue
Click to expand...
Click to collapse
Generally, when you first start up a GPS unit, its called a cold start coz it takes time. It will take time to scan for satellites and make a database of satellites around. Once it has at least 3 satellites in view, it has enough data to perform a proper triangulation to give your location. As the antennas on a phone are weaker, there's a certain error in a signal, which is why Google maps first shows your estimated location in a blue circle. As you begin to move, more data like heading and stuff is known and your position becomes accurate.
Sometimes even I get a lock in 10 seconds, sometimes not even in half an hour. That happens when there are no strong satellites above. If you always get a lock, I guess you're lucky to have a good number of satellites hovering over your phone like guiding angels..
wogfella said:
NTP only gives you time. And it won't matter which NTP server you get unless you have networking issues. I suppose the answer there lies in the fact that a "closer" NTP server will get you a quicker response to begin with, so your phone can start the process of working out the offset quicker....
Click to expand...
Click to collapse
The "quicker" result may be important if you query ntp servers every second (the default rate for GPS sample I think), however ntp is being queried once in a while - not sure the exact interval maybe one of the developers here can help with that.
If everyone of us would query the ntp servers every second they would be hammered to horrible death.
In "normal" NTP setups, client systems, like your desktop, query a small number (perhaps between 1--10) NTP servers every so often, e.g. once per minute (or 64 seconds in a common UNIX implementation). This can vary depending on response.
NTP is designed to get microsecond wall-clock time accuracy despite round-trips to NTP servers often taking tens, or even hundreds of milliseconds.
I believe most Android phone GPS chips update position once per second. There are apps that will confirm this.
I don't believe there's any need to repeatedly query NTP servers every second.
However, the hardware clocks in phones are terrible. Mine drifts up to one second per day, until the clocksync app uses an NTP query to drag it back to reality. Note this is different to how it's normally done on a PC: there, the OS clock is sped up or slowed, so that the time can gradually skew towards reality. For a large difference, the time has to be stepped, all in one go, which isn't ideal from an OS perspective (e.g. timed callbacks, etc).
So I can see that more frequent NTP checks might help a little, for GPS, but not a lot.
Note that consumer GPS units (e.g. automotive, handheld) do not use NTP at all, nor do they have expensive hardware clocks. So I'm not at all convinced why NTP is "required" on Android GPS, unless it's because most phones default to getting the time from the mobile network, which can be *minutes* off.
Finally, sadly, none of the above even remotely explains why our SGS phones have a reputation for (or in fact "are") worse at GPS than other similar phones...
Edit: meant to add: the latter is perhaps mostly likely explained by a combination of poor antenna design, and sub-optimal GPS implementation in the Broadcom chip (which I believe is the one involved).
I wanna kno why the x10 has such a bad camera
OMG. Counter Strike On Android! http://cs-portable.net/
I wanna kno why the sgs has such a bad camera
Very interesting
ilabs said:
Haha.. Yeah, the assumptions that you hear from time to time!! Makes even standard fiction seem possible!!
When I was talking about the processing, yeah, it was the final processing. But the processing of the GPS signal is only done by the GPS chip, not the processor to which the data is output. Generally GPS satellite signal frequencies are such that they die out very quickly when reflected off or passing through objects and buildings. That's why you get the best signal out under the open sky. The processing of the final received signals is done completely by the GPS chip. A standard GPS chip has only TX/RX serial pins apart from power pins. As soon as you power it up, it starts spitting out GPS data. Externally interfaced processors don't have to calculate anything at all.
Apart from this, everything is spot on!!
---------- Post added at 04:34 PM ---------- Previous post was at 04:27 PM ----------
Generally, when you first start up a GPS unit, its called a cold start coz it takes time. It will take time to scan for satellites and make a database of satellites around. Once it has at least 3 satellites in view, it has enough data to perform a proper triangulation to give your location. As the antennas on a phone are weaker, there's a certain error in a signal, which is why Google maps first shows your estimated location in a blue circle. As you begin to move, more data like heading and stuff is known and your position becomes accurate.
Sometimes even I get a lock in 10 seconds, sometimes not even in half an hour. That happens when there are no strong satellites above. If you always get a lock, I guess you're lucky to have a good number of satellites hovering over your phone like guiding angels..
Click to expand...
Click to collapse
My cold starts take no longer than 10 seconds for a 50-30 meter lock. After it is warmed up, GPS takes a matter of 2 seconds to grab lock @ 10 meters and 5 shortly after.
---------- Post added at 07:41 PM ---------- Previous post was at 07:40 PM ----------
MattyOnXperiaX10 said:
I wanna kno why the sgs has such a bad camera
Click to expand...
Click to collapse
It's not that bad, is it?
I wanted to shoot a video for my YouTube channel using my mums phone. Galaxy s and it wasn't focusing on the camera, video quality was bad (sorry for of topic)
Ask us any Android Related Question @FeraLabsDevs on Twitter or @HowToMen
MrAndroid12 said:
My cold starts take no longer than 10 seconds for a 50-30 meter lock. After it is warmed up, GPS takes a matter of 2 seconds to grab lock @ 10 meters and 5 shortly after.
---------- Post added at 07:41 PM ---------- Previous post was at 07:40 PM ----------
It's not that bad, is it?
Click to expand...
Click to collapse
I get the same start timings, provided there are satellites to lock onto.. Sometimes my cold start time is a little over a minute!! But with no satellite cover, I could be better guided by a rock than my phone..
Sent from my GT-I9000 using XDA