Bangle 2 GPS - time for first fix, quite variable

Posted on
  • Just wondering what others have experienced with the Bangle 2 GPS.

    I live in a terraced street and Bangle 1 can usually get a fix fairly quickly when out in the street.
    With Bangle 2 I have not been sucessful getting a fix in the street - especially if I move about.
    If I leave it on top of the wheely bin in the back yard I can get a fix
    And it gets a fix within 50 seconds if I put it next to the window in our attic bedroom.

    The receiver seems more susceptable to buildings etc.

  • I suspect the antenna and its gain is different, antenna is differently placed, and the casing is definitively different: metal. This has all a great impact on how much signal is received. And of course, sensitivity of the GPS receiver matters too... In addition to that, a house side may shield greatly the number of 'visible' satellites... GPS receivers can use (ever changing) signal reflections but try to eliminate them for actual calculations.

  • IMO the Bangle.js 2 GPS isn't as good at getting fixes. I guess maybe it gets more confused if it can't see satellites it thinks it should be able to.

    It does support AGPS though and that'll help a lot with a fix (as might setting the time on it), however the AGPS data is in a different format to UBlox, so that's something else that'll need implementing.

  • I've not been able to get a GPS fix at all on my Bangle.js 2 yet - left by a window for 15 minutes, taken on a ~40 min walk - nothing.

  • Yes, it can take an extremely long time for the very first fix. I believe giving the GPS chip the current time would help a lot, but that isn't implemented right now.

    Once you do get a fix, subsequent fixes should be much faster though.

  • I've still been unable to get a fix.
    Has anyone managed to? If so how long did it take?

  • I used GPS on my Bangle.js 2 today for the first time. First fix happened sometime during a 20 minute bike ride (travelling at about 10mph) but I'm afraid I don't know how long it took. Subsequent fixes today have been very quick - something like 30 seconds.

  • I did some testing today and the accuracy seems pretty good. Gonna compare to a Garmin bike computer later.

    The first fix took about 5-10 minutes.

  • If the GPS is starting from fresh, it needs to download the almanac and ephemeris data. This takes a minimum 12.5 minutes, assuming no errors. If there are errors, then depending on what data is missing it could be another 12.5 minutes before that data is re-sent. It's quite likely the first fix will take two goes, or 25 minutes. It's down to a bit of luck, really.

  • I believe giving the GPS chip the current
    time would help a lot, but that isn't
    implemented right now.

    @Gordon what would be needed to do this?

  • It's just a matter of sending the right data down Serial, much like is done to configure the GPS on the Bangle.js 1

    The receiver is the AT6558 - There should be a datasheet somewhere detailing the commands, but the closest I have found so far is this one in Chinese (https://m5stack.oss-cn-shenzhen.aliyuncs­.com/resource/docs/datasheet/unit/Multim­ode_satellite_navigation_receiver_cn.pdf­)

    It's possible that given some digging I could also find something in the original SMA firmware too.

  • My GPS loaded after about 15-20 minutes while I was driving (I have a 1.5 hour commute one way).

    Once loaded it worked fine (did the GPS time setting too).

  • @Gordon does the GPS not remember the time after it has the first fix?

    I got a fix yesterday and switching the gps on from GPS touch just now I can see it has the time set. Other times I have seen this set to 00:00:00 maybe because I let the bangle battery run out.

  • If the GPS is starting from fresh, it needs to download the almanac and ephemeris data. This takes a minimum 12.5 minutes, assuming no errors

    AT6558 has 56 channels.
    TTFF is possible with 45s +
    (=cold start without time and data)

  • Sadly, Navstar satellites are synchronised, so the number of channels are irrelevant for downloading ephemeris and almanac data.

  • Sadly, Navstar satellites are synchronised, so the number of channels are irrelevant for downloading ephemeris and almanac data.

    Yes and no. The data is the same, but the TTFB of the data can be massivly reduced. Multi channel is used as a method for shortening the time to 30 s to 3 min. The mathematicians at the chip designers do the rest of the improvement.

  • The GPS should remember the time after first fix, but maybe there's some issue where the very first NMEA sentence doesn't have it set?

  • The GNSS receiver on my Bangle.js 2 was able to get a fix fairly quickly. However it only finds 5-8 satellites at a time (I've occasionally had up to 10, briefly). Looking at the output NMEA sentences:
    $GNGSA,A,3,01,07,08,17,21,30,,,,,,,3.4,1­.7,2.9,1*33
    $GNGSA,A,3,,,,,,,,,,,,,3.4,1.7,2.9,4*3E
    $GPGSV,3,1,10,01,49,149,28,07,52,194,20,­08,39,058,14,10,05,035,,0*6A
    $GPGSV,3,2,10,13,17,304,,14,43,298,25,17­,26,242,36,21,57,097,29,0*67
    $GPGSV,3,3,10,27,08,060,,30,61,255,27,0*­6C
    $BDGSV,1,1,00,0*74
    $GPTXT,01,01,01,ANTENNA OPEN*25

    It's found 10 GPS satellites ($GPGSV) but only 6 are used for the fix ($GNGSA; sats 01,07,08,17,21,30). It doesn't look like it's even trying to find GLONASS satellites; there's a line for Beidou ($BDGSV) but no satellites are listed. Galileo satellites are also missing. uBlox receivers allow the choice of frequencies; the inexpensive ones allow the choice of two (e.g. GPS and GLONASS or GPS and Beidou). There must be a way to turn on at least the GLONASS frequency.

    The last line worries me a bit:
    $GPTXT,01,01,01,ANTENNA OPEN*25

    From the datasheet Gordon linked in, the choices are:
    示例 $GPTXT,01,01,01,ANTENNA OPEN*25
    表示天线状态(开路)
    $GPTXT,01,01,01,ANTENNA OK*35
    表示天线状态(良好)
    $GPTXT,01,01,01,ANTENNA SHORT*63
    表示天线状态(短路)

    This implies that part of our problem is that the antenna is not connected, or that there is no antenna (open circuit). If anyone has done a teardown of the production units, this could be verified.

  • There must be a way to turn on at least the GLONASS frequency.

    Yes, there is
    https://gist.github.com/fanoush/505a6f44­532e4fdaadef4da5777d7777#file-b5-demo-js­-L280

    so send $PCAS04,5*1C for gps,glonass or $PCAS04,7*1E to turn them all on

  • @fanoush did you have a reference for those commands (or perhaps other useful ones?). Sorry, I think you may have sent me one before and I lost it.

    Just did a quick google and found this which is pretty interesting - specifically about decreasing time to fix: https://github.com/geary/AnyTone-D868UV/­issues/61 - they even have a translated manual at https://docs.google.com/document/d/e/2PA­CX-1vQaEH6gbVeQds5AOQ7c2dJoNef1o6vCL4SeD­RDB9YNtRzI1MKUYzDqS9clEdwL_RdI9TpjErreM-­wiM/pub

    edit: It even mentions getting fix time down from 17s to 1.5s - although I wonder how much of that is that it already downloaded all the data it needs.

  • Attached is the Chinese datasheet automatically translated to English with most formatting there, but sometimes it is good to check the original it was generated from http://www.icofchina.com/d/file/xiazai/2­017-05-02/ea0cdd3d81eeebcc657b5dbca80925­ee.pdf
    All those CASxx commands are there.

    interesting conversation, I think they mostly turn off Beidou to make it faster?

    I also downloaded stuff from http://www.icofchina.com/xiazai/# and build the agps demo source and it did download some binary agps data that is supposed to be pushed to the device but did not try that yet. At least in B5 firmware there is code that uses second GPS uart atached to different pins at 230400 speed so maybe that is the way to upload it (or maybe that is to update GPS firmware)


    1 Attachment

  • BTW if anyone from EU is interested I can send few of these B5 fitness trackers with this GPS for $15 a piece plus shipping ($5-$10). There is local distributor of https://eshop.evolveo.com/evolveo-fitban­d-b5-gps--fitness-band-with-a-heart-rate­-monitor--also-suitable-for-swimmers/ here who is dumping them on local auction site periodically, got few of them and they look new and working perfectly, most of them still with sticker on display and old updatable firmware so never used/paired with phone. As bangle 2 they have SWD on usb connector (same manufacturer) so no problem repurposing them (e.g. as BLE GPS running Espruino). Just checked the site and they are selling 5 pieces again.

  • Great - thanks! Yes, if we can load AGPS data that's got to help massively! Interesting about the second UART - I don't remember seeing the Q3 firmware do that but I guess we'll just have to give it a try and see.

    But yes, it sounds like they just turn off Beidou. Possibly with that off the extra receivers are all used for GPS so it can get a lock quicker?

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Bangle 2 GPS - time for first fix, quite variable

Posted by Avatar for HughB @HughB

Actions