GPS on the Bangle.js really doesn't work indoors. You might get clock sync near a window but that's about it. See how it behaves when you have GPS synced outside. Once locked, I've found the GPS extremely accurate.
...0.1 ...1.2MPH caused by reception of different reflection from 'outside'...?
To add one more thing: AFAIK GPS (at least common commercial units like the uBlox in the Bangle) is not really good at measuring stationary position.
Thank you for all the comments. I took the watch with me to grab coffee this morning and suddenly things became clear. At first I thought, wow, I must have a bad GPS sensor or something, because this is showing 20MPH higher than my actual speed! And then I realized it's measuring in km/h and I'm a dummy 😏 So I downloaded the highest rated speedometer app I could find for my Android and compared the output to the watch. The results were nearly identical for the entire ride. Also, when outside, the watch only fluctuated between 0.1-0.4 when sitting still. The phone app only shows rounded whole numbers, so I couldn't tell if it has the same fluctuation. I think overall the watch sensor is extremely accurate, as mentioned by Conor. I do wonder if there's any way to calibrate it.. or whether I just do that in my software, asking the user to stand still and checking the low/high values of the sensor during that time.. kind of like calibrating a digital scale.
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-rawevent) 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.
@user71255 were you wearing the watch on your wrist or did you hold up to the open sky for a bit? Not trolling, wondering if the gps receiver works under a jacket sleeve or does it need line clear line of sight. I held it against the train-window for a couple of minutes just now and it did find a fix. Will try the 'jacket sleeve' experiment tonight when cycling back home.
Having tried to build a Pi+Adafruit GPS module in the past and given up realising it needs line of sight to work (or external antenna), I am very stoked at what Bangle can do :-)
Success! Bangle JS managed to get satellite fixes from under my jacket sleeve as I cycled home today! Exciting!
'build a Pi+Adafruit GPS module in the past and given up realising it needs line of sight to work (or external antenna)'
FYI - non-Bangle - I used the inexpensive Ublox NEO-6M GPS Module and was able to get a minimum of five, usually eight satellite fixes in under a minute, when indoors fifteen feet from sliding patio door. No line of sight. Used their antenna - see images at page bottom
@Robin, how fast you get enough fixes to reliably determine the geo location depends on a lot of things... One and the same tech setup gives quite various results when operating in various places in and around the house. In one particular room, I have to put the device on the (North) window sill to get something, but I can be in the 'middle' of the house - 1st floor w/ a floor above - but with windows to the South - and I get results quicker. Some GPS keep the last fixes and go from there. A totally cold start always takes a while... up to 6 minutes for me... even the specs say less... but I was surprised how the GPS hardware that bangle.js uses has improved over my initial experiences with M6 models... not just in size.
Cool... I wonder how much difference the Antenna makes... I still have the Adafruit GPS unit around... need to get myself an antenna.
In the meantime, totally enjoying Bangle's GPS capabilities.
This is very true, I had let my Bangle JS' battery die out, and when it came back it took a bit to get fix the first time. It's been happily chugging along since then.
I've noticed that, when using the Speedo app, it says I'm traveling between 0.1 and 1.2MPH while the watch is sitting on my table. Is this normal? I thought it might be able to be used for an accurate measurement of speed in my car, but haven't tested that far yet. Just wondering what others are experiencing?