Great! I'm not sure there's really a sensible way to calibrate it, however I believe it might be possible to get a 'fix quality' measure from the GPS data (GPS-raw event) which you could use to sanity check things.
Each reading will be very slightly different to the last just because of randomness, and so the GPS looks at that difference and then gives you a speed based on that.
However, you could look at the GPS event, then store the last few lat/lon coordinates. If you compared the most recent lat/lon with the lat/lon from 10 seconds ago, then divided the difference by 10, you'd end up with a 10x more accurate speed reading (it'd just be the average of the last 10 seconds).
Getting speed from lat/lon differences requires a bit of geometry. Maybe if someone finds a good reference they can post it online, but otherwise I think it's something it might be worth me adding a tutorial for.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Great! I'm not sure there's really a sensible way to calibrate it, however I believe it might be possible to get a 'fix quality' measure from the GPS data (
GPS-raw
event) which you could use to sanity check things.Each reading will be very slightly different to the last just because of randomness, and so the GPS looks at that difference and then gives you a speed based on that.
However, you could look at the GPS event, then store the last few lat/lon coordinates. If you compared the most recent lat/lon with the lat/lon from 10 seconds ago, then divided the difference by 10, you'd end up with a 10x more accurate speed reading (it'd just be the average of the last 10 seconds).
Getting speed from lat/lon differences requires a bit of geometry. Maybe if someone finds a good reference they can post it online, but otherwise I think it's something it might be worth me adding a tutorial for.