GPS_START_ERROR after GPS Sleep XM0110


Hi All

I have noticed a problem in the new version location plug-in (1.2.0) and XM0110. The following sequence occurs:

  1. Power up GPS as normal, attempt hot start using previously download ephemeris (gps_start(GPS_HOT_START):wink:
  2. Get GPS 3D lock
  3. Put GPS to sleep (gps_sleep(GPS_IDLE_MODE):wink:
  4. Attempt GPS Hot Start (gps_start(GPS_HOT_START):wink:
  6. Stop GPS (gps_stop():wink:
  7. Attempt GPS Hot Start again (gps_start(GPS_HOT_START):wink:
  8. GPS starts OK.

Has anyone else had this problem and could find the cause?



During the transition from SLEEP state / GPS_IDLE_MODE to RUNNING state, the GPS core library is not started, therefore by default the used mode is GPS_START_MODE using gps_start() API. The other modes GPS_WARM_START, GPS_COLD_START, GPS_FACTCOLD_START are not available while starting from SLEEP State. So make sure that the gps_start() API is called after the reception of GPS_IDLE_MODE.


What I didn’t say was that after sending the GPS_IDLE_MODE sleep command I wait for the GPS_SLEEP_EVENT to show that the module is sleeping. After this, I call gps_start(). gps_start MUST have a start parameter, and GPS_HOT_START is a valid starting mode from sleep (see below from Location Plug-in development guide).

Anyway, I have contacted Sierra Wireless, and they have confirmed a bug and have passed it through to SiRF. At this point they are advising a change in use case to reduce the impact of the bug, and are suggesting using GPS_HIBERNATE_MODE instead of GPS_IDLE_MODE when sleeping. When I hear anything more I will post here.