Qstarz GPS problem with heading

edited June 2018 in General
After a few years of use of the Qstarz GPS products (4x BT-Q818XT and 2x BT-Q1000eX) for race track analysis I found a problem. For years I'm trying to convince the Qstarz tech departement of the error in their heading algorithm, but they are not resolving this in a proper way.
I hope more complaints from other users will help resolving this issue, as I like this cheap GPS solution and normally very accurate low filtered output.

When translating the values in the NMEA messages into speed, acceleration and lateral acceleration in e.g. RaceChrono I have found some strange numbers and graphs.

When turning right and going through the north at 360 degrees the heading drops from 359 to just over 0 degrees; see track layout on the upper part of the graph.
The algoritm in the Qstarz products that is calculating speed and heading seems to have a problem around this 360 degrees point.

The red/yellow/green racing line is correctly plotted: a fluent line through the corner.
The lines plotted for
• Heading/bearing
• Speed
• Longitudinal acceleration/deceleration
are also plotted correctly.

But the line for Lateral force (green) has 2 strange spikes (in the area that is marked red):
First it spikes up from -0,9 G to -0,2 G and then a big negative spike up to 2,0 G

This caused by the algorithm that is calculating the heading.

Take a look at a part of a BT-Q1000eX export file:
$GPGGA,080249.400,4803.241798,N,1733.639496,E,2,11,,161.852,M,,,,*17
$GPRMC,080249.400,A,4803.241798,N,1733.639496,E,59.550,350.34,110616,,,D*5B
$GPGGA,080249.600,4803.245110,N,1733.638766,E,2,11,,161.893,M,,,,*17
$GPRMC,080249.600,A,4803.245110,N,1733.638766,E,59.914,352.31,110616,,,D*5D
$GPGGA,080249.800,4803.248452,N,1733.638218,E,2,11,,161.941,M,,,,*15
$GPRMC,080249.800,A,4803.248452,N,1733.638218,E,60.612,354.43,110616,,,D*51
$GPGGA,080250.000,4803.251818,N,1733.637809,E,2,11,,161.939,M,,,,*15
$GPRMC,080250.000,A,4803.251818,N,1733.637809,E,60.581,356.71,110616,,,D*54
$GPGGA,080250.200,4803.255224,N,1733.637606,E,2,11,,161.896,M,,,,*13
$GPRMC,080250.200,A,4803.255224,N,1733.637606,E,60.886,358.91,110616,,,D*5C
$GPGGA,080250.400,4803.258677,N,1733.637631,E,2,11,,161.870,M,,,,*16
$GPRMC,080250.400,A,4803.258677,N,1733.637631,E,61.343,358.91,110616,,,D*52
$GPGGA,080250.600,4803.262135,N,1733.637814,E,2,11,,161.881,M,,,,*1B
$GPRMC,080250.600,A,4803.262135,N,1733.637814,E,61.972,358.91,110616,,,D*59
$GPGGA,080250.800,4803.265626,N,1733.638225,E,2,11,,161.921,M,,,,*1B
$GPRMC,080250.800,A,4803.265626,N,1733.638225,E,62.326,358.91,110616,,,D*5A
$GPGGA,080251.000,4803.269131,N,1733.638792,E,2,11,,161.955,M,,,,*15
$GPRMC,080251.000,A,4803.269131,N,1733.638792,E,62.955,358.91,110616,,,D*59
$GPGGA,080251.200,4803.272654,N,1733.639561,E,2,11,,161.985,M,,,,*1B
$GPRMC,080251.200,A,4803.272654,N,1733.639561,E,63.476,10.15,110616,,,D*64
$GPGGA,080251.400,4803.276205,N,1733.640618,E,2,11,,162.020,M,,,,*1F
$GPRMC,080251.400,A,4803.276205,N,1733.640618,E,63.948,12.37,110616,,,D*67

You see the heading is stuck to 358.91 for 4 lines (4/10 of a second) , and then jumps to 10.15

As RaceChrono is using these values (and not recalculating the heading and speed using the locations),
the values for the lateral acceleration at those points are very starnge...

I can reproduce this problem in most Qstarz devices when looking at exports.


How can I add graphs to this post, as this would really make this problem easier to understand?

Comments

  • edited June 2018
    Hi @Mischa, that's interesting. Can you share the session to tracks(at)racechrono.com (as .RCZ), so I can see the effect.
  • edited June 2018
    Done.

    A picture that shows the problem
    http://www.emmerx.dds.nl/TwGfx/20180618_QstarzHeadingBugRaceChrono.jpg

    In blue the speed that is ok
    In pink the heading; at the 359 to 0 degree jump the problem arises.
    In green the lateral acceleration that spikes twice

    first at the bearing/ heading is 'frozen' for 4 messages: 0.8s at 5Hz
    second when the heading jumps to the real value again; 12 degrees in 0.2 seconds
  • 2 more examples of the bug, both in a left and a right turn.
    I hope this is Qstarz related, the firmware of the MTK chipset could also be the source....

    http://www.emmerx.dds.nl/TwGfx/20180620_RaceChronoCPZrenault.jpg
    Qstarz BT-Q818XT @10Hz
    Right turn (Zandvoort, Renault)
    The bearing (pink/purple) stays 358,0 for 4 NMEA messages (=0.4s).
    This is why the red arrow is still turning left (west) form north, while the movement is already to the right (east)...
    The next message the heading is correct again: 10 degrees
    This bug gives the strange spikes in the lateral acceleration (green).

    http://www.emmerx.dds.nl/TwGfx/20180620_RaceChronoCPZvoda.jpg
    Qstarz BT-Q818XT @10Hz
    Left turn (Zandvoort, Voda/MSL)
    The bearing stays 1,8 for 4 NMEA messages (=0.4s).
    This is why the red arrow is still turning right form north, while the movement is already to the left...
    The next message the heading is correct again: 354 degrees
  • Yep, I see the problem... Definitely a source for false lateral G readings. Not sure what can and what should be done about it at the moment.
  • edited June 2018
    Let's see what Qstarz will propose!

    I have not yet seen this problem with other devices I have been using.
    So stick with the Garmin Glo for the time being ...
  • edited July 2020
    After updating my Qstarz GPS (818XT and 1000eX) with the new NWRO firmware solution I checked this problem again.

    Now I find this problem is not caused only by the Qstarz GPS output.
    Because when i do a correction on the import file generated by the 1000eX logger, the problem in RaceChrono remains!

    Original Qstarz output file:
    $GPGGA,135424.400,5223.127854,N,00432.329234,E,2,9,,44.733,M,,,,*2E
    $GPRMC,135424.400,A,5223.127854,N,00432.329234,E,73.029,352.79,260620,,,D*6C
    $GPGGA,135424.600,5223.131957,N,00432.328698,E,2,9,,44.652,M,,,,*2C
    $GPRMC,135424.600,A,5223.131957,N,00432.328698,E,73.339,355.96,260620,,,D*6C
    $GPGGA,135424.800,5223.136084,N,00432.328561,E,2,9,,44.603,M,,,,*23
    $GPRMC,135424.800,A,5223.136084,N,00432.328561,E,73.965,358.89,260620,,,D*67
    $GPGGA,135425.000,5223.140274,N,00432.328832,E,2,9,,44.627,M,,,,*2B
    $GPRMC,135425.000,A,5223.140274,N,00432.328832,E,74.464,358.89,260620,,,D*62
    $GPGGA,135425.200,5223.144502,N,00432.329438,E,2,9,,44.637,M,,,,*2D
    $GPRMC,135425.200,A,5223.144502,N,00432.329438,E,75.026,358.89,260620,,,D*66
    $GPGGA,135425.400,5223.148745,N,00432.330434,E,2,9,,44.635,M,,,,*20
    $GPRMC,135425.400,A,5223.148745,N,00432.330434,E,75.953,358.89,260620,,,D*62
    $GPGGA,135425.600,5223.153017,N,00432.331724,E,2,9,,44.685,M,,,,*20
    $GPRMC,135425.600,A,5223.153017,N,00432.331724,E,76.695,10.59,260620,,,D*5D
    $GPGGA,135425.800,5223.157281,N,00432.333254,E,2,9,,44.812,M,,,,*27
    $GPRMC,135425.800,A,5223.157281,N,00432.333254,E,77.256,13.34,260620,,,D*58
    $GPGGA,135426.000,5223.161548,N,00432.335085,E,2,9,,44.885,M,,,,*2D
    $GPRMC,135426.000,A,5223.161548,N,00432.335085,E,78.284,15.66,260620,,,D*5D

    The heading hangs at 358.89 for 4 message lines when the racing line changes from western to eastern from north.
    The starnge thing is that this is the only place on this track (Zandvoort) where this happens. On 2 other North crossings the problem does not appear.

    In RaceChrono this data gives 2 spikes in the lateral acceleration.


    When importing a corrected version of this Qstarz data, I still get the same problem???
    $GPGGA,135424.400,5223.127854,N,00432.329234,E,2,9,,44.733,M,,,,*2E
    $GPRMC,135424.400,A,5223.127854,N,00432.329234,E,73.029,352.79,260620,,,D*6C
    $GPGGA,135424.600,5223.131957,N,00432.328698,E,2,9,,44.652,M,,,,*2C
    $GPRMC,135424.600,A,5223.131957,N,00432.328698,E,73.339,355.96,260620,,,D*6C
    $GPGGA,135424.800,5223.136084,N,00432.328561,E,2,9,,44.603,M,,,,*23
    $GPRMC,135424.800,A,5223.136084,N,00432.328561,E,73.965,358.89,260620,,,D*67
    $GPGGA,135425.000,5223.140274,N,00432.328832,E,2,9,,44.627,M,,,,*2B
    $GPRMC,135425.000,A,5223.140274,N,00432.328832,E,74.464,1.89,260620,,,D*62
    $GPGGA,135425.200,5223.144502,N,00432.329438,E,2,9,,44.637,M,,,,*2D
    $GPRMC,135425.200,A,5223.144502,N,00432.329438,E,75.026,4.89,260620,,,D*66
    $GPGGA,135425.400,5223.148745,N,00432.330434,E,2,9,,44.635,M,,,,*20
    $GPRMC,135425.400,A,5223.148745,N,00432.330434,E,100.953,7.89,260620,,,D*62
    $GPGGA,135425.600,5223.153017,N,00432.331724,E,2,9,,44.685,M,,,,*20
    $GPRMC,135425.600,A,5223.153017,N,00432.331724,E,76.695,10.59,260620,,,D*5D
    $GPGGA,135425.800,5223.157281,N,00432.333254,E,2,9,,44.812,M,,,,*27
    $GPRMC,135425.800,A,5223.157281,N,00432.333254,E,77.256,13.34,260620,,,D*58
    $GPGGA,135426.000,5223.161548,N,00432.335085,E,2,9,,44.885,M,,,,*2D
    $GPRMC,135426.000,A,5223.161548,N,00432.335085,E,78.284,15.66,260620,,,D*5D

    Same LAT acc spikes appear at that part of the track (the new F1 banked exit turn to the straight: Arie Luyendijk bocht).


    Export that part of the RaceChrono file in CSV shows irregularities in both Speed and bearing:

    Lap # Timestamp (s) Distance (m) Distance (km) Locked satellites Latitude (deg) Longitude (deg) Speed (m/s) Speed (kph) Speed (mph) Altitude (m) Bearing (deg) Longitudinal Acceleration (G) Lateral Acceleration (G) X-position (m) Y-position (m)
    3 50064.400 16121.514 16.121514 9 52.3854642 4.5388205 37.57 135.25 84.04 44.73 352.79 0.09 -1.03 -102.63 -303.02
    3 50064.600 16129.154 16.129154 9 52.3855327 4.5388117 37.73 135.82 84.40 44.65 355.96 0.11 -0.95 -103.23 -295.41
    3 50064.800 16136.791 16.136791 9 52.3856013 4.5388093 38.05 136.98 85.12 44.60 358.89 0.09 -0.69 -103.39 -287.77
    3 50065.000 16144.562 16.144562 9 52.3856712 4.5388138 38.05 136.98 85.12 44.63 358.89 0.05 -0.37 -103.09 -280.01
    3 50065.200 16152.432 16.152432 9 52.3857417 4.5388240 38.05 136.98 85.12 44.64 358.89 0.07 -0.39 -102.40 -272.17
    3 50065.400 16160.369 16.160369 9 52.3858123 4.5388405 38.05 136.98 85.12 44.64 358.89 0.19 -1.07 -101.28 -264.31
    3 50065.600 16168.434 16.168434 9 52.3858837 4.5388620 39.46 142.04 88.26 44.68 10.59 0.31 -1.76 -99.82 -256.38
    3 50065.800 16176.516 16.176516 9 52.3859547 4.5388875 39.74 143.08 88.90 44.81 13.34 0.31 -1.59 -98.09 -248.48
    3 50065.921 16181.451 16.181451 9 52.3859976 4.5389060 40.06 144.23 89.62 44.86 15.66 0.28 -1.27 -96.83 -243.71
    3 50066.000 16184.699 16.184699 9 52.3860258 4.5389182 40.27 144.98 90.09 44.88 15.66 0.27 -1.07 -96.01 -240.57


    So it seems not only Qstarz, but also RaceChrono has a problem with interpreting this specific data???
  • @Micha I'm not seeing this when using other GPS, so I don't think it's a RaceChrono problem.
Sign In or Register to comment.