GPS accuracy after disable

CircuitPython on hardware including Adafruit's boards, and CircuitPython libraries using Blinka on host computers.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
tcornall
 
Posts: 17
Joined: Mon Mar 20, 2017 1:01 am

GPS accuracy after disable

Post by tcornall »

Hi All.
I am using an Adafruit Featherwing Ultimate GPS along with a FeatherM4 Express. I found that disabling the GPS to save power made the accuracy terrible when it was re-enabled.
I was using the /EN pin to disable it, which cuts the power to the GPS via a MOSFET. I also found that you can send a 'standby' command ( gps.send_command(b'PMTK161,0') ) that suspends the GPS until another command is sent to take it out of standby. Both methods reduced the power considerably but experiments showed that the first fixes after re-enabling or coming out of standby were pretty bad. However, I found that the accuracy improved with the more fixes I took after re-enabling. I made a little movie of it. You can see an 'X' which is where I should be, and you can see an 'A' as it closes in on the X for up to 20 fixes after coming out of a 60 second standby. This behaviour is quite consist. Unfortunately I can't post it here, but if you look at https://terrycornall.wixsite.com/websit ... ce-project down towards the end, you can see it. (It's a huge article. Feel free to browse it if you are interested.)

User avatar
tcornall
 
Posts: 17
Joined: Mon Mar 20, 2017 1:01 am

Re: GPS accuracy after disable

Post by tcornall »

I should add that I am NOT doing any filtering of the fixes. They appear just to be more accurate coming straight out of the GPS as the number of fixes since power-on or coming out of standby increases.. Clearly one should not accept the first offer!
What remains to be tested is how well this works when I am in motion, because I have seen in previous situations when moving and using standby/disable the accuracy was even worse than in a stationary situation.
This time I will have to rely on landmarks like road intersections on the map to measure accuracy.

User avatar
adafruit_support_mike
 
Posts: 67454
Joined: Thu Feb 11, 2010 2:51 pm

Re: GPS accuracy after disable

Post by adafruit_support_mike »

That's how GPS works: the module tries to predict when the next message from the satellites will arrive based on the timing of the ones it's seen so far. If its guess is too early, it increases the expected delay until the next message. If the guess is too late, the module reduces the expected delay until the next message.

The absolute timing of the satellite signals includes some noise, so the module tracks the average offset and works to minimize it.

That process improves the quality of the estimated offset over time.

Any break in the series of estimates-and-signals damages the quality of the estimate. The gap becomes an unknown value that has to be corrected over a series of new estimates. The module can correct them faster than starting over from a cold restart, but it does take time.

User avatar
tcornall
 
Posts: 17
Joined: Mon Mar 20, 2017 1:01 am

Re: GPS accuracy after disable

Post by tcornall »

I did some experiments whilst on the move and am pleased to report that using the method outlined in the first post for getting more accuracy when stationary seems to work OK for when moving too.

Locked
Please be positive and constructive with your questions and comments.

Return to “Adafruit CircuitPython”