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
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
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
I have not yet seen this problem with other devices I have been using.
So stick with the Garmin Glo for the time being ...
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???