GPS receiver condition and noise of the GPS signal

Hi all,

evaluating GPS performance is more than looking at the P/H/DOP values and the number of satellites.

the UBX messages in the log file contains information such as:

  • jamInd
  • noiseperms
  • agcCnt

I would like to start a discussion about how to interpret these values - to be sure the GPS is healthy.

From the "u-blox M8 Receiver Description" we learn that:

  • the jamInd is the CW Jamming indicator and that it is scaled from 0 to 255 where 0= no CW jamming, 255 = strong CW jamming),
  • the noiseperms is the noise Level as measured by the GPS Core,
  • and that the agcCnt is the Automatic Gain Control (AGC) Monitor (counts SIGHI xor SIGLO) and ranges from 0 to 8191.
But: what is the healthy range and when do we have to think about changing our setups to reduce interference?
Looking forward to your logs, replies, suggestions, experiences, knowledge...
Thanks in advance and best regards,

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • The signal to noise ratio and jamming indicator could help you setting up your drone to make sure there isn't interference from something internally. Take a baseline measurement with the GPS antenna in open sky and away from everything, then place it where it will be mounted on the drone and compare the values. 

    Beyond doing this I don't think that the jamming indicator and signal to noise ratios will be very useful. You'll (probably) never be in real GPS jamming scenario. A lower signal to noise ratio on your GPS measurements doesn't necessarily mean worse accuracy.

    For knowing if the GPS is healthy the best indications are number of satellites, DOPs, and the estimated accuracy. When the number of satellites drop off and DOPs grow then view of the sky is becoming limited. Estimated accuracy would become worse from this, but it also would grow if there was multipath or partial sky blockage (like trees). 

  • T3

    Some notes from Craig Elder:

    We need to have the agcCnt value to properly interpret the NoisePerMS and jamInd values.
    For example if you are evaluating the placement of a GPS antenna on a vehicle and you move it closer to a noise source the increase in noise can cause the automatic gain control to back off and then the jamming indicator and the NoisePeMS will decrease because of the reduction in the receiver gain.  You have to track the AGC value to evaluate the other figures.
    Also the real and imaginary impedance values listed in UBX2 ofsl, magl, ofsQ, and magQ values are very useful for tuning an antenna and ground plane to correct antenna input impedance and the best signal to noise ratio.
  • T3

    This is from a recent log flown with master (similar to 3.3rc7) and with no multipathing problems. 

    I am flying with xbee telemetry S1 Pro (2.4GHz) and Immersion RC 5.8GHz 25mW Video transmitter. 

    The GPS is a small DroTek M8N.

    It seems the values could be better. 

    • noisePerMS = 110
    • jamInd = 30 (11.8%)
    • agcCnt = 2300

    However, EKF innovations look pretty good.

    Will be interesting to see how it compares to the larger versions with ground plane. 

    • Here is my graph, showing the same info as yours.  I don't know how to interpret the EKF data.  Other than take off and landing, I'm hovering in a single spot w/ clear sky.  ~19 satellites.


      I have a large ground plane on mine.  I don't have logs from before I added it, but I do know that after adding it, I always received about 2 more satellites than w/out it.   The log results I posted above are with the ground plane.3702578909?profile=original  I don't intend to leave it this large, but this is my setup w/ the results I posted above.

      The graph is with everything turned on..  GoPro, FPV security cam and 600mw 5.8ghz transmitter.  FrSky x8r.  915mhz telemetry.

      • T3

        There is some information in the wiki about all the EKF parameters and their ranges:

        IVN,IVE,IVD: Innovations for the North,East,Down GPS velocity measurements (m/s). These are an important measure of health for the navigation filter. If you have god quality IMU and GPS data they will be small and around zero.

        IPN,IPE: Innovations in the North, East GPS position measurements (m). Similarly to the velocity innovations, they should be small and centred on zero.

        EKF4 (these might be interesting as well)
        SV: ratio of the combined GPS velocity inconsistency to the limit set by the EKF_VEL_GATE parameter.

        SP: ratio of the GPS total position inconsistency to the limit set by the EKF_POS_GATE parameter.

        So from the ranges your values seem ok but IVN and IVE are not centered around zero. But I cannot tell you if this is problematic. 

        At least when comparing our values it is somewhat different to what I expected: Your GPS noise/interference level is a lower whereas my EKF innovations seem better. Hence, there is maybe no obvious relationship.

        • After looking at a few things in the logs, I think I need to redo my compass calibration.  I think that accounts for my IPN and IVN being below zero. 

  • I'd also like to know what is normal. 

    I have a ublox 8.
    I usually quickly receive 6 or 8 satellites, even inside.  In my back yard I get 10-12.  In the air, 15-19.
    HDOP is around 2 in my back yard and 1.2 in the air.

    When I have the copter sitting in my back yard (on the ground) near trees and the house, it drifts around in mission planner a lot, 10 or 20 meters, ~.5 meters per second.
    In the air above the trees and buildings, it holds its position very well.

    jamInd is between 16 and 18 (It was less w/ FPV gear off)

    noisePerMS bounces between 85 and 95

    agcCnt is ~1300 on the ground, and ~900 in the air.

    • T3

      Hi Scott.

      thanks for sharing!

      Maybe it is a good idea to differentiate between environments where multipathing effects occur and where not. This will help differentiating the effect of the UAV setup and other external effects.

  • MR60

    Hi Thorsten,

    On the general principles , with devices dealing with radio waves, the best situation is the one that maximizes the ratio of the useful signal divided by the noise signals. That is thus a relative measurement.

    -jamInd .I do not think absolute values of jamming (CW) would mean a lot without realtively comparing it to the measured useful signal (a high jamming is probably ok if you also have a strong useful signal)

    -Same logic I would guess with "noiseperms" Ias this measures a noise level.

    -agcCnt : a high value means a high gain, meaning the useful signal is measured low. Thus a low gain means a strong enough GPS signal is received, not requiring amplification. I think the lower the better in all cases. Because an amplifier will not only boost your signal but also the noise. (and we come back on the ratio between signal and noise that must be as high as possible)

    • T3

      Hi Hugues,

      What I have in mind is finding a healthy range of these values - or better the upper limit - similar to vibrations.

      So I think first we need to collect some data from different setups.

      Maybe the EKF GPS innovation (IVN,IVE,IVD,IPN,IPE) can be used to determine the effect of the strength of the interference seen in the UBX logs.

This reply was deleted.


DIY Robocars via Twitter
RT @Heavy02011: #VirtualRaceLeague: @DIYRobocars Race #14 - #ParkingLotNerds join us January 15th for #AutonomousRacing #RoboRace ⁦@DAVGtec…
DIY Robocars via Twitter
RT @chr1sa: And after that came our races, 50 in all. This battle between these two Russians was the best we've ever seen -- incredible fig…
DIY Robocars via Twitter
RT @chr1sa: Before our @DIYRobocars virtual race this weekend, we had a presentation from the team that won the Indy Autonomous Challenge i…
DIY Drones via Twitter
Dec 12, 2021
DIY Robocars via Twitter
Dec 12, 2021
DIY Robocars via Twitter
RT @chr1sa: Just a week to go before our next @DIYRobocars race at @circuitlaunch, complete with famous Brazilian BBQ. It's free, fun for k…
Dec 4, 2021
DIY Robocars via Twitter
How to use the new @donkey_car graphical UI to edit driving data for better training https://www.youtube.com/watch?v=J5-zHNeNebQ
Nov 28, 2021
DIY Robocars via Twitter
RT @SmallpixelCar: Wrote a program to find the light positions at @circuitlaunch. Here is the hypothesis of the light locations updating ba…
Nov 26, 2021
DIY Robocars via Twitter
RT @SmallpixelCar: Broke my @HokuyoUsa Lidar today. Luckily the non-cone localization, based on @a1k0n LightSLAM idea, works. It will help…
Nov 25, 2021
DIY Robocars via Twitter
@gclue_akira CC @NVIDIAEmbedded
Nov 23, 2021
DIY Robocars via Twitter
RT @luxonis: OAK-D PoE Autonomous Vehicle (Courtesy of zonyl in our Discord: https://discord.gg/EPsZHkg9Nx) https://t.co/PNDewvJdrb
Nov 23, 2021
DIY Robocars via Twitter
RT @f1tenth: It is getting dark and rainy on the F1TENTH racetrack in the @LGSVLSimulator. Testing out the new flood lights for the racetra…
Nov 23, 2021
DIY Robocars via Twitter
RT @JoeSpeeds: Live Now! Alex of @IndyAChallenge winning @TU_Muenchen team talking about their racing strategy and open source @OpenRobotic…
Nov 20, 2021
DIY Robocars via Twitter
RT @DAVGtech: Live NOW! Alexander Wischnewski of Indy Autonomous Challenge winning TUM team talking racing @diyrobocars @Heavy02011 @Ottawa…
Nov 20, 2021
DIY Robocars via Twitter
Incredible training performance with Donkeycar https://www.youtube.com/watch?v=9yy7ASttw04
Nov 9, 2021
DIY Robocars via Twitter
RT @JoeSpeeds: Sat Nov 6 Virtual DonkeyCar (and other cars, too) Race. So bring any car? @diyrobocars @IndyAChallenge https://t.co/nZQTff5…
Oct 31, 2021