This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

GPS hot start

Looking at the GPS driver source code, it seems there is no GPS hot start mode. In order to get the hot start working, do I have to modify the driver myself, or is there some config parameters I can set in my prj.conf file or elsewhere in order to get the GPS in hot start mode?

Parents
  • Hi.

    Our GPS will automatically do a cold, warm, or hot start depending on the conditions when it is started. With bsdlib v0.4.0 and newer (available on the master branch) it is possible to delete the stored data, thereby forcing a cold start.

    Typically when GPS is started immediately after power-on, it has no prior knowledge of what time it is, or where it is, nor any knowledge of the satellite orbits. It will then have to do a cold start.

    If it has some coarse knowledge of all of the above, it will do a warm start. This would happen if the device has already made a GPS fix and stayed power on, and after 2 hours or more has to make a new fix (whereby the time accuracy is no longer accurate, the device may have moved, and the satellite orbits (ephemeris) are no longer valid).

    If it has accurate knowledge of all of the prerequisites, it will do a hot start. This will automatically happen if a new fix is requested within half an hour from the last successful fix.

    Best regards,

    Didrik

  • Hi Didrik,

    Can you give greater clarity on the difference between warm start and hot start?

    With bsdlib v0.4.0 and newer (available on the master branch) it is possible to delete the stored data, thereby forcing a cold start.

    Is this as simple as setting the gps_data structure (in Asset Tracker) to NULL to force a cold start?

    If I get a fix, do a power cycle of the board, and then attempt another fix immediately, would that count as a cold, warm, or hot fix?

    Regards,

    Akash Patel

  • Hi , and sorry for not seeing your question earlier.

    You can read more about the differences in this Wikipedia article: https://en.wikipedia.org/wiki/Time_to_first_fix

    Our GPS will be able to do a hot start if the time between fixes is less than 30min. If it is less than 1.5 hours, it will need to correct the time, so it will take a few seconds longer to get a fix. If it has been more than 1.5 hours, the ephemerides are no longer valid, which increases the time to fix 10s of seconds.

     

    Akash Patel said:
    Is this as simple as setting the gps_data structure (in Asset Tracker) to NULL to force a cold start?

     No, the gps_data struct is where the GPS fix is stored. I.e. it is the way the application get data from the GPS. The data used by the GPS to enable hot starts (and warm) are stored in the modem. However, on the socket level, you can instruct the modem to delete the data by setting the nrf_gnss_delete_mask.

     

    Akash Patel said:
    If I get a fix, do a power cycle of the board, and then attempt another fix immediately, would that count as a cold, warm, or hot fix?

     If you run AT+CFUN=0 first, the ephemerides should be stored to flash. Therefore, after a power cycle, while you might have to get new time data, you should get a hot-ish start.

    Best regards,

    Didrik

Reply
  • Hi , and sorry for not seeing your question earlier.

    You can read more about the differences in this Wikipedia article: https://en.wikipedia.org/wiki/Time_to_first_fix

    Our GPS will be able to do a hot start if the time between fixes is less than 30min. If it is less than 1.5 hours, it will need to correct the time, so it will take a few seconds longer to get a fix. If it has been more than 1.5 hours, the ephemerides are no longer valid, which increases the time to fix 10s of seconds.

     

    Akash Patel said:
    Is this as simple as setting the gps_data structure (in Asset Tracker) to NULL to force a cold start?

     No, the gps_data struct is where the GPS fix is stored. I.e. it is the way the application get data from the GPS. The data used by the GPS to enable hot starts (and warm) are stored in the modem. However, on the socket level, you can instruct the modem to delete the data by setting the nrf_gnss_delete_mask.

     

    Akash Patel said:
    If I get a fix, do a power cycle of the board, and then attempt another fix immediately, would that count as a cold, warm, or hot fix?

     If you run AT+CFUN=0 first, the ephemerides should be stored to flash. Therefore, after a power cycle, while you might have to get new time data, you should get a hot-ish start.

    Best regards,

    Didrik

Children
No Data
Related