In my years providing technical support for SKG123 series GNSS modules, one of the most common requests is “accuracy won’t improve.” The opening is often similar: the module was replaced, the antenna was replaced, parameters were restored to default, and the number is still the same.

Replacing one hardware component after another often leads nowhere: positioning accuracy is determined jointly by satellite geometry and ranging error, positioning error ≈ DOP × ranging error; replacing any one link does not mean the entire error chain has changed. DOP is the factor by which satellite geometry amplifies ranging error; on the ranging-error side, the seven steps can address multipath, obstruction, and receiver noise. Ionospheric, tropospheric, and ephemeris/clock residual errors are not listed as separate troubleshooting steps: the customer side has no interface to adjust or read them individually, so they can only be judged indirectly from the overall state of the differential/dual-frequency link. The seven steps are organized as follows: Step 1 confirms the geometry factor; Steps 2 and 5 examine ranging error item by item; Steps 3 and 4 use configuration and log cross-checks to localize the problem to a layer; Steps 6 and 7 handle special links and firmware.
Try to avoid skipping steps; the conclusion from an earlier step determines whether later checks are needed. The only step that can be skipped entirely is Step 6, which pure positioning applications can skip directly.
Open the NMEA log and look at two quantities: the satellite count in GGA and HDOP (GSA also contains PDOP/VDOP).
These two quantities are often confused, but they mean different things:
The corresponding actions follow the criteria: for a single constellation with few visible satellites, first confirm whether multiple constellations (GPS/BDS/GLONASS/Galileo) are all enabled, then use the per-constellation PRN lists in GSA to verify which satellites are actually used in the solution; do not rely only on the status shown in the configuration interface. If multiple constellations are enabled but the satellite count is still low, check antenna gain, mounting location, and obstruction. If multiple constellations are fully enabled and the satellite count is sufficient but DOP is high, constellation switches offer no further gain; record this as environmental geometry and proceed to Step 2 to examine ranging error.
The criterion is the CN0 of each satellite in GSV. Do not apply an absolute threshold first; use relative comparison: within the same environment and the same module, compare differences among satellites and the fluctuation of each individual satellite.
Default configurations do not necessarily match the site, so “restore defaults” cannot be treated as a fallback action.
Error 1: The expected differential-positioning accuracy does not match the actual positioning state. The customer expects centimeter-level accuracy, but the GGA position quality field remains at 1 (single point) or 5 (RTK float). First determine where it is stuck: if it is stuck at 1, first check whether the differential data source and base-station link are connected; if the link is normal but it remains at 1, confirm whether this module supports differential positioning. If it does, continue checking the format, checksum, and age of the differential data; if it does not, this is a selection issue. If it is stuck at 5, differential data is already arriving, and the problem is failure to reach a fixed solution; focus on base-station link quality, baseline conditions, and fix rate. The two paths have different inspection targets, so first determine which path the customer’s expected metric should follow, and do not mix adjustments.
Error 2: Elevation mask. The satellite elevation mask can be set from 1° to 20°, with a default of 5° (read/write via PAIR072); there is also a minimum SNR threshold (Min SNR) from 9 to 37 dB, with a default of 9 dB (PAIR058). If set too low, low-elevation observations bring in multipath and atmospheric errors; if set too high, the number of usable satellites decreases, and even good mid-elevation satellites may be filtered out. The check is straightforward: read back the effective threshold with PAIR072 and compare it with the configuration, changing only one parameter per retest.
Without logs, there is little basis for adjusting configuration or replacing hardware. Export raw NMEA over a period and read five metrics sentence by sentence: satellite count (GGA), DOP (GGA/GSA), CN0 (GSV), position quality (GGA), and the list of satellites used in the solution (GSA). A single metric describes a state; when metrics do not agree, it becomes easier to localize the problem to a specific stage:
When more detailed satellite status is needed, the platform also provides extended PVT SV status / PVT SV in view output (PAIR120/PAIR124), which provides detailed status of satellites used in the solution and is suitable for satellite-by-satellite verification.
Our support process therefore requires that logs be accompanied by the firmware version and a configuration snapshot: only with the version and configuration can we determine whether the anomaly comes from parameters, firmware, environment, or hardware.
Step 2 identified contaminated observations; this step decides how to handle them. The positioning solution weights observations by quality. If all observations enter the solution with the same weight, a single pseudorange severely contaminated by multipath can bias the solution. Receiver-side quality control usually has two layers: stochastic-model weighting based on elevation/CN0, plus gross-error rejection based on residual testing.
This layer is built into the firmware in our modules; the customer side has no direct weight-adjustment interface. What the customer can do is tighten the thresholds in Step 3 or directly exclude a specific satellite. Three relevant interfaces are documented on the platform: the global minimum SNR threshold (PAIR058, default 9 dB), dual-threshold satellite selection based on “satellite count + CNR” in Drone mode (PAIR150, 0–78 satellites / 0–65 dB), and the SV blacklist (blacklisting by PRN/SV, PAIR130/PAIR131; for SBAS, PAIR418/PAIR419).
To determine whether the problem lies on the environment/differential side or the firmware side, follow these two paths: if the contaminated observations can be correctly suppressed by the built-in strategy, first return to Step 1 to review environmental geometry, then return to Step 3 to review the differential link; if the contaminated observations persistently break through the strategy — a satellite with abnormal CN0 fluctuation is always used in the solution and its residuals do not converge — the manufacturer needs to investigate according to the firmware quality strategy. When such a breakthrough occurs, retain the raw NMEA, firmware version, and configuration snapshot, and then contact the manufacturer for analysis.
Only products that use PPS/timing output need this step; pure positioning applications can skip it.
Timing metrics and positioning metrics should be counted separately: PPS intra-second jitter and time offset belong to timing accuracy, while position drift belongs to positioning accuracy. If the two are suspected of interfering with each other, perform an isolation test: keep the positioning configuration unchanged, first disable PPS output and re-measure positioning metrics, then restore output and repeat the measurement. If the two rounds agree, PPS output does not affect positioning; return to Step 4 to look for conflicting metrics. The positioning solution itself is not affected by the PPS output switch.
Version check: confirm whether the firmware is the latest released version and whether a version optimized for the scenario exists. During operation, PAIR020 can be used to query firmware version information directly.
If problems remain after the first six steps, contact the manufacturer with logs, firmware version, configuration snapshot, and reproduction steps. The manufacturer’s software team can verify the quality strategy at the firmware level and provide parameter adjustments for the specific scenario; this process starts with logs, and without new logs, continuing to replace hardware will not narrow the problem down.
| Contradictions Seen in Logs | Indicates | Corresponding Step |
| Many satellites, high DOP | Constellation geometry | Step 1 |
| Single constellation, few visible satellites | Not all constellations enabled | Step 1 |
| Individual satellite with low CN0 and fluctuation | Suspected multipath | Step 2 |
| Uniform CN0 drop | Obstruction or antenna chain | Step 2; return to Step 1 to check antenna/obstruction |
| Position quality persistently at 1 or 5 (centimeter-level expected) | Differential not established or fixed solution not reached | Step 3 |
| GSA/GSV metrics do not overlap | Quality rejection or incomplete sentences | Steps 4 and 5 |
| GSV “missing satellites” with short capture window and periodic changes | GSV configured for rotate output (rotate enable) | Step 4 |
| PPS intermittent, positioning itself normal | Output availability set to 3D fix only | Step 6 |
| No contradiction found; first six steps completed | Firmware version / out-of-scope issue | Step 7 / manufacturer |
The troubleshooting order narrows the range layer by layer: geometry, environment, configuration, data, and firmware. If you replace hardware before looking at logs, the logs reflect the post-replacement state, and you lose the baseline for comparison with the original fault state.
Prev:Anchor Self-Calibration: Zero-Survey UWB Deployment for Industrial and Warehouse Positioning
Next:No Next Page
Copyrights© Shenzhen Skylab Co.,LTD All Rights Reserved.