GPS Troubleshooting
Table of Contents
For detailed GPS troubleshooting, Extra GPS debug messages can be enabled on OEM Server. Generally the issue to debug is that the device is not getting a fix/updating it's location. To do this, more detailed logging can be set on the device.
Steps to enable debug logging
- Login to www.oemserver.com
- Select the device(s) - explained here
- Set the debug level - explained here
- To enable debugging, be sure to set the GPS module to Info - others can be set to Severe.Check the Debug Expiry (when the extra logging will end) is set far enough in the future so that you can receive enough logs.
- Wait for the device to connect and receive the logging change instruction
- After this change instruction, on the next fix attempt/upload extra debug information will be uploaded to the server.
Viewing Debug Logs
Follow the steps here
Reading the Logs
When the debug level is set to Info, all GPS debug messages will appear in the log. In addition to individual fix times, signal level diagnostics whenever a fix takes longer than 36 seconds, or the GPS decides to stay awake after a fix to collect more satellite information. Please note that while debug messages are enabled, uploads will use extra data.
Uploaded debug messages will look look like this:
-
Debug[GPS][Warn]: GPS manager - Fix timeout:
This indicates the GPS module has failed to get a fix in the allocated time. The device may sleep or try again. -
Debug[GPS][Info]: TTFF=133s PDOP(x10)=33 3Dfix=1
This states that the device obtained a fix in 133 seconds with a PDOP of 3.3 -
Debug[GPS][Info]: Valid=135s PDOP(x10)=19 3Dfix=1:
The device obtained a valid fix in 135 seconds with a PDPO of 1.9. This is after the fix has met the minimum requirements for a good fix. These are usually set-able in System Parameters. -
Debug[GPS][Info]: SAT4 42322,38000,35322,29322:
Signal strengths reported by the module.
The number immediately after the "SAT" is the number of satellites the receiver is tracking - in this example 4.
The first 2 digits of the numbers represent the "Carrier To Noise" ratio (C/No) in dBHz and is an indicator of the received GNSS signal strength. The higher the C/No value is, the better is the strength, and therefore the quality of the received signal.
In our testing we consider values above 40 as excellent, but chances are that you will only get above 40 when conditions are near perfect - so don't stress over these numbers.
The main reason we have surfaced these values via the debug messages is that values at extremes indicate something is wrong with the GNSS / antenna subsystem, and any values between those extremes are OK.
These messages are logged every 60 seconds when in debug mode. This example message suggests it is tracking 4 satellites. In this example the highest signal strength is 42, which is considered strong.
The other numbers are displayed for internal debugging purposes.
Issue: device is not getting a GPS fix
Debug Output:
Debug[GPS][Info]: SAT0
Debug[GPS][Info]: SAT1
If no numbers are reported after SATX, for repeated logs - this means that the value was too low to report and has been omitted.
In this example, the device may be completely shielded by GPS, or the LNA (low noise amplifier) on the device is potentially faulty. In this case the GPS module is working, so no errors are detected, but the weak signals are not being amplified such that the device can use them.
Solution:
If a device is away from any equipment and has a clear view of the sky, yet still reports these logs, it is likely there is an LNA fault and the device needs to be replaced. So to resolve - trigger a GPS fix attempt with the device in the open. If there is no change in the GPS Debug logs, contact DM for warranty procedure.
Issue - No GPS Fix
Debug Output:
Debug[GPS][Crit]: Error - Turning off
Debug[GPS][Crit]: Error Count = 3 on cfg port -> Error Off
If repeated logs of this type are shown, the device likely has a fault with the GPS module and will need to be replaced.
These logs will appear even without following the above steps to turn on extra logging, as they are of log level Critical meaning they are always logged by default.
Other Actions to take to improve GPS performance:
- Check mounting location of device. GPS signal can be poor or decreased if device is mounted either inside metal containers or near large buildings, metal structures, large reflective surfaces.
- Remove the device from it's current location and test out in the open - if the strengths significantly improve - we know the mounting location was the issue.
- Relax GPS accuracy requirement timeout settings.
These settings are generally of more impact on a battery powered rather than powered device. A battery powered device will wake to acquire a fix on it's set interval (as determined in system parameters) and attempt to acquire a fix that meets the accuracy requirement, within the GPS Timeout. I.e. if the position accuracy requirement is 50m, as soon as a fix with better accuracy than this is achieved, it will be marked as valid and the device will return to sleep. I.e if a +/- 40m fix is acquired within 5 seconds, it will then sleep. If the requirement is too great, the device might be acquiring a fix but it will not be accepted.
E.g. setting a Position accuracy of 10m, but the device can only achieve one within 15m after the default timeout of 60 seconds, the fix will fail, and no new position will be uploaded.
- Consider an alternative mode of tracking with WiFi or Celltower fallback
- Falcon 4G with WiFi and Cellular Tower Fallback
- Yabby WiFi
Notes on Dilution of Precision (DOP) And Specifically PDOP
DOP is a description of the purely geometrical contribution to the uncertainty in a position fix and has a number of specific applications. Some examples are PDOP, GDOP, HDOP, VDOP, TDOP and RDOP. DOP is a function expressing the mathematical quality of solutions based on the geometry of the satellites. Position Dilution of Precision (PDOP) is the most common and we use it as a useful indication of the uncertainty of the 3 dimensional position (3 coordinates) - i.e. how accurate do we expect the position to be? PDOP has a best case value of 1, with higher numbers being less accurate. A low number of PDOP (2) is good, a high number (typically > 10) is considered to be bad. The best PDOP would occur with one satellite directly overhead and three others evenly spaced about the horizon.
PDOP could theoretically be infinite, if all the satellites were in the same plane. Most Digital Matter devices have a parameter for the maximum PDOP value to consider for a valid fix. This is generally a high value as default and you can 'tighten' up this parameter if needed. Note that this might mean that position fixes take longer resulting in higher consumption of energy which might impact on battery-powered devices, so it is a trade-off between accuracy and battery usage.
Ublox GPS Performance
For more info on the details of GPS performance see this article by UBlox