diff --git a/nodist/data/btnmea_GST.nmea b/nodist/data/btnmea_GST.nmea
new file mode 100644
index 000000000..d8834caab
--- /dev/null
+++ b/nodist/data/btnmea_GST.nmea
@@ -0,0 +1,305 @@
+$GNRMC,094358.60,A,4741.0296044,N,00245.8808349,W,6.478,170.28,090824,,,R,V*06
+$GNGGA,094358.60,4741.0296044,N,00245.8808349,W,4,12,0.52,43.294,M,49.023,M,1.6,0000*47
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.94,0.52,0.78,1*0C
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.94,0.52,0.78,2*08
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.94,0.52,0.78,3*09
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.94,0.52,0.78,4*0C
+$GNGSA,A,3,,,,,,,,,,,,,0.94,0.52,0.78,5*00
+$GPGSV,3,1,11,02,79,062,46,03,56,231,45,08,24,159,46,14,24,267,30,1*6F
+$GPGSV,3,2,11,17,32,310,47,19,07,317,36,21,63,091,48,22,25,293,44,1*61
+$GPGSV,3,3,11,32,24,047,39,36,30,146,45,49,35,170,45,1*52
+$GPGSV,2,1,07,03,56,231,44,04,07,178,24,08,24,159,41,14,24,267,26,6*6E
+$GPGSV,2,2,07,17,32,310,42,28,00,085,14,32,24,047,40,6*55
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,2,1,08,67,42,041,47,68,68,138,50,69,25,189,36,74,11,282,34,1*7C
+$GLGSV,2,2,08,75,13,334,44,82,29,112,47,83,68,072,37,84,34,314,39,1*77
+$GLGSV,2,1,07,67,42,041,45,68,68,138,43,69,25,189,36,75,13,334,39,3*73
+$GLGSV,2,2,07,82,29,112,42,83,68,072,42,84,34,314,35,3*45
+$GAGSV,3,1,10,03,22,044,40,07,25,162,45,08,45,101,43,13,67,070,47,2*7F
+$GAGSV,3,2,10,14,33,159,46,15,16,095,33,21,15,222,26,26,51,294,48,2*71
+$GAGSV,3,3,10,31,13,325,37,33,04,282,28,2*71
+$GAGSV,3,1,09,03,22,044,41,07,25,162,43,08,45,101,44,13,67,070,45,7*70
+$GAGSV,3,2,09,14,33,159,47,15,16,095,32,21,15,222,34,26,51,294,44,7*73
+$GAGSV,3,3,09,31,13,325,35,7*48
+$GBGSV,2,1,08,06,12,062,27,14,33,049,46,16,13,059,30,27,65,299,47,1*7E
+$GBGSV,2,2,08,28,64,132,47,30,15,306,32,33,57,068,46,41,56,182,47,1*76
+$GBGSV,1,1,03,06,12,062,30,14,33,049,48,16,13,059,28,B*33
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094358.60,17,0.015,0.012,27,0.010,0.010,0.010*49
+$GNRMC,094359.60,A,4741.0278355,N,00245.8803866,W,6.430,170.66,090824,,,R,V*0F
+$GNGGA,094359.60,4741.0278355,N,00245.8803866,W,4,12,0.52,43.292,M,49.023,M,1.6,0000*4E
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.94,0.52,0.78,1*0C
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.94,0.52,0.78,2*08
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.94,0.52,0.78,3*09
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.94,0.52,0.78,4*0C
+$GNGSA,A,3,,,,,,,,,,,,,0.94,0.52,0.78,5*00
+$GPGSV,3,1,11,02,79,062,47,03,57,232,46,08,24,159,45,14,24,267,26,1*6B
+$GPGSV,3,2,11,17,32,310,45,19,07,317,40,21,63,091,48,22,25,293,31,1*60
+$GPGSV,3,3,11,32,24,047,39,36,30,146,45,49,35,170,45,1*52
+$GPGSV,2,1,07,03,57,232,44,04,07,178,22,08,24,159,43,14,24,267,31,6*6E
+$GPGSV,2,2,07,17,32,310,43,28,00,085,13,32,24,047,34,6*50
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,2,1,08,67,42,041,48,68,68,138,50,69,25,189,38,74,11,282,29,1*71
+$GLGSV,2,2,08,75,13,334,45,82,29,112,46,83,68,072,37,84,34,314,37,1*79
+$GLGSV,2,1,07,67,42,041,44,68,68,138,44,69,25,189,27,75,13,334,41,3*7A
+$GLGSV,2,2,07,82,29,112,43,83,68,072,42,84,34,314,37,3*46
+$GAGSV,3,1,10,03,22,044,35,07,25,162,46,08,45,101,43,13,67,070,47,2*7E
+$GAGSV,3,2,10,14,33,159,46,15,16,095,34,21,15,222,26,26,51,294,48,2*76
+$GAGSV,3,3,10,31,13,325,39,33,04,282,28,2*7F
+$GAGSV,3,1,09,03,22,044,33,07,25,162,43,08,45,101,43,13,67,070,44,7*73
+$GAGSV,3,2,09,14,33,159,47,15,16,095,32,21,15,222,29,26,51,294,43,7*78
+$GAGSV,3,3,09,31,13,325,37,7*4A
+$GBGSV,2,1,08,06,12,062,27,14,33,049,46,16,13,059,30,27,65,299,47,1*7E
+$GBGSV,2,2,08,28,64,132,47,30,15,306,42,33,57,068,47,41,56,182,46,1*71
+$GBGSV,1,1,03,06,12,062,30,14,33,049,47,16,13,059,28,B*3C
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094359.60,20,0.018,0.014,33,0.010,0.010,0.012*40
+$GNRMC,094359.60,A,4741.0278355,N,00245.8803866,W,6.430,170.66,090824,,,R,V*0F
+$GNGGA,094359.60,4741.0278355,N,00245.8803866,W,4,12,0.52,43.292,M,49.023,M,1.6,0000*4E
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.94,0.52,0.78,1*0C
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.94,0.52,0.78,2*08
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.94,0.52,0.78,3*09
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.94,0.52,0.78,4*0C
+$GNGSA,A,3,,,,,,,,,,,,,0.94,0.52,0.78,5*00
+$GPGSV,3,1,11,02,79,062,47,03,57,232,46,08,24,159,45,14,24,267,26,1*6B
+$GPGSV,3,2,11,17,32,310,45,19,07,317,40,21,63,091,48,22,25,293,31,1*60
+$GPGSV,3,3,11,32,24,047,39,36,30,146,45,49,35,170,45,1*52
+$GPGSV,2,1,07,03,57,232,44,04,07,178,22,08,24,159,43,14,24,267,31,6*6E
+$GPGSV,2,2,07,17,32,310,43,28,00,085,13,32,24,047,34,6*50
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,2,1,08,67,42,041,48,68,68,138,50,69,25,189,38,74,11,282,29,1*71
+$GLGSV,2,2,08,75,13,334,45,82,29,112,46,83,68,072,37,84,34,314,37,1*79
+$GLGSV,2,1,07,67,42,041,44,68,68,138,44,69,25,189,27,75,13,334,41,3*7A
+$GLGSV,2,2,07,82,29,112,43,83,68,072,42,84,34,314,37,3*46
+$GAGSV,3,1,10,03,22,044,35,07,25,162,46,08,45,101,43,13,67,070,47,2*7E
+$GAGSV,3,2,10,14,33,159,46,15,16,095,34,21,15,222,26,26,51,294,48,2*76
+$GAGSV,3,3,10,31,13,325,39,33,04,282,28,2*7F
+$GAGSV,3,1,09,03,22,044,33,07,25,162,43,08,45,101,43,13,67,070,44,7*73
+$GAGSV,3,2,09,14,33,159,47,15,16,095,32,21,15,222,29,26,51,294,43,7*78
+$GAGSV,3,3,09,31,13,325,37,7*4A
+$GBGSV,2,1,08,06,12,062,27,14,33,049,46,16,13,059,30,27,65,299,47,1*7E
+$GBGSV,2,2,08,28,64,132,47,30,15,306,42,33,57,068,47,41,56,182,46,1*71
+$GBGSV,1,1,03,06,12,062,30,14,33,049,47,16,13,059,28,B*3C
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094359.60,20,0.018,0.014,33,0.010,0.010,0.012*40
+$GNRMC,094400.60,A,4741.0262091,N,00245.8799730,W,5.629,170.54,090824,,,R,V*0C
+$GNGGA,094400.60,4741.0262091,N,00245.8799730,W,4,12,0.57,43.293,M,49.023,M,1.6,0000*41
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,1.00,0.57,0.83,1*01
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,1.00,0.57,0.83,2*05
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,1.00,0.57,0.83,3*04
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,1.00,0.57,0.83,4*01
+$GNGSA,A,3,,,,,,,,,,,,,1.00,0.57,0.83,5*0D
+$GPGSV,3,1,11,02,79,062,46,03,57,232,45,08,24,159,44,14,24,267,35,1*6A
+$GPGSV,3,2,11,17,32,310,45,19,07,317,44,21,63,091,47,22,25,293,32,1*68
+$GPGSV,3,3,11,32,24,047,39,36,30,146,44,49,35,170,45,1*53
+$GPGSV,2,1,07,03,57,232,44,04,08,178,21,08,24,159,43,14,24,267,35,6*66
+$GPGSV,2,2,07,17,32,310,44,28,00,085,12,32,24,047,37,6*55
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,2,1,08,67,42,041,50,68,68,138,50,69,25,189,36,74,11,282,28,1*77
+$GLGSV,2,2,08,75,13,334,46,82,29,112,47,83,68,072,36,84,34,314,36,1*7B
+$GLGSV,2,1,07,67,42,041,45,68,68,138,44,69,25,189,38,75,13,334,42,3*76
+$GLGSV,2,2,07,82,29,112,42,83,68,072,42,84,34,314,37,3*47
+$GAGSV,3,1,10,03,22,044,41,07,25,162,46,08,45,101,43,13,67,070,47,2*7D
+$GAGSV,3,2,10,14,33,159,47,15,16,095,40,21,15,222,27,26,51,294,49,2*74
+$GAGSV,3,3,10,31,13,325,41,33,04,282,28,2*70
+$GAGSV,3,1,09,03,22,044,35,07,25,162,45,08,45,101,41,13,67,070,45,7*70
+$GAGSV,3,2,09,14,33,159,45,15,16,095,35,21,15,222,31,26,51,294,43,7*74
+$GAGSV,3,3,09,31,13,325,39,7*44
+$GBGSV,2,1,08,06,12,062,26,14,33,049,47,16,13,059,28,27,65,299,46,1*76
+$GBGSV,2,2,08,28,64,132,47,30,15,306,34,33,57,068,47,41,56,182,46,1*70
+$GBGSV,1,1,03,06,12,062,30,14,33,049,48,16,13,059,35,B*3F
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094400.60,7.2,0.015,0.012,35,0.010,0.010,0.011*6C
+$GNRMC,094401.60,A,4741.0248356,N,00245.8796464,W,4.742,171.25,090824,,,R,V*0A
+$GNGGA,094401.60,4741.0248356,N,00245.8796464,W,4,12,0.55,43.273,M,49.023,M,1.6,0000*41
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.98,0.55,0.81,1*01
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.98,0.55,0.81,2*05
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.98,0.55,0.81,3*04
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.98,0.55,0.81,4*01
+$GNGSA,A,3,,,,,,,,,,,,,0.98,0.55,0.81,5*0D
+$GPGSV,3,1,11,02,79,062,46,03,57,232,45,08,24,159,46,14,24,267,38,1*65
+$GPGSV,3,2,11,17,32,310,37,19,07,317,42,21,63,091,48,22,25,293,27,1*60
+$GPGSV,3,3,11,32,24,047,38,36,30,146,37,49,35,170,44,1*57
+$GPGSV,2,1,07,03,57,232,43,04,08,178,21,08,24,159,42,14,24,267,35,6*60
+$GPGSV,2,2,07,17,32,310,38,28,00,085,13,32,24,047,37,6*5F
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,2,1,08,67,42,041,49,68,68,138,50,69,25,189,30,74,11,282,27,1*76
+$GLGSV,2,2,08,75,13,334,48,82,29,112,46,83,68,072,36,84,34,314,36,1*74
+$GLGSV,2,1,07,67,42,041,44,68,68,138,44,69,25,189,34,75,13,334,41,3*78
+$GLGSV,2,2,07,82,29,112,40,83,68,072,42,84,34,314,35,3*47
+$GAGSV,3,1,10,03,22,044,41,07,25,162,46,08,45,101,43,13,67,070,47,2*7D
+$GAGSV,3,2,10,14,33,159,47,15,16,095,31,21,15,222,26,26,51,294,48,2*72
+$GAGSV,3,3,10,31,13,325,38,33,04,282,27,2*71
+$GAGSV,3,1,09,03,22,044,31,07,25,162,43,08,45,101,42,13,67,070,46,7*72
+$GAGSV,3,2,09,14,33,159,46,15,16,095,28,21,15,222,31,26,51,294,45,7*7D
+$GAGSV,3,3,09,31,13,325,39,7*44
+$GBGSV,2,1,08,06,12,062,32,14,33,049,48,16,13,059,36,27,65,299,46,1*73
+$GBGSV,2,2,08,28,64,132,48,30,15,306,25,33,57,068,46,41,56,182,46,1*7E
+$GBGSV,1,1,03,06,12,062,33,14,33,049,49,16,13,059,35,B*3D
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094401.60,16,0.013,0.010,36,0.010,0.010,0.010*47
+$GNRMC,094402.60,A,4741.0236410,N,00245.8793386,W,4.374,171.80,090824,,,R,V*05
+$GNGGA,094402.60,4741.0236410,N,00245.8793386,W,4,12,0.55,43.255,M,49.023,M,0.6,0000*45
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.98,0.55,0.81,1*01
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.98,0.55,0.81,2*05
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.98,0.55,0.81,3*04
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.98,0.55,0.81,4*01
+$GNGSA,A,3,,,,,,,,,,,,,0.98,0.55,0.81,5*0D
+$GPGSV,3,1,11,02,79,062,46,03,57,232,33,08,24,159,45,14,24,267,36,1*69
+$GPGSV,3,2,11,17,32,310,36,19,07,317,34,21,63,091,48,22,25,293,36,1*60
+$GPGSV,3,3,11,32,24,047,37,36,30,146,40,49,35,170,45,1*59
+$GPGSV,2,1,07,03,57,232,32,04,08,178,22,08,24,159,43,14,24,267,40,6*66
+$GPGSV,2,2,07,17,32,310,37,28,00,085,13,32,24,047,35,6*52
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,3,1,09,67,42,041,47,68,68,138,50,69,25,189,43,74,11,282,27,1*7C
+$GLGSV,3,2,09,75,13,334,47,77,,,20,82,29,112,46,83,68,072,36,1*41
+$GLGSV,3,3,09,84,34,314,33,1*4C
+$GLGSV,2,1,07,67,42,041,43,68,68,138,45,69,25,189,24,75,13,334,40,3*7E
+$GLGSV,2,2,07,82,29,112,43,83,68,072,42,84,34,314,31,3*40
+$GAGSV,3,1,10,03,22,044,40,07,25,162,44,08,45,101,45,13,67,070,47,2*78
+$GAGSV,3,2,10,14,33,159,47,15,16,095,24,21,15,222,25,26,51,294,49,2*74
+$GAGSV,3,3,10,31,13,325,41,33,04,282,28,2*70
+$GAGSV,3,1,09,03,22,044,26,07,25,162,45,08,45,101,45,13,67,070,46,7*75
+$GAGSV,3,2,09,14,33,159,46,15,16,095,28,21,15,222,30,26,51,294,45,7*7C
+$GAGSV,3,3,09,31,13,325,41,7*4B
+$GBGSV,2,1,08,06,12,062,35,14,33,049,47,16,13,059,33,27,65,299,47,1*7F
+$GBGSV,2,2,08,28,64,132,47,30,15,306,30,33,57,068,47,41,56,182,46,1*74
+$GBGSV,1,1,03,06,12,062,30,14,33,049,46,16,13,059,33,B*37
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094402.60,23,0.018,0.013,36,0.010,0.010,0.012*48
+$GNRMC,094403.60,A,4741.0225078,N,00245.8790916,W,3.826,170.91,090824,,,R,V*06
+$GNGGA,094403.60,4741.0225078,N,00245.8790916,W,4,12,0.55,43.246,M,49.023,M,1.6,0000*4F
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.98,0.55,0.81,1*01
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.98,0.55,0.81,2*05
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.98,0.55,0.81,3*04
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.98,0.55,0.81,4*01
+$GNGSA,A,3,,,,,,,,,,,,,0.98,0.55,0.81,5*0D
+$GPGSV,3,1,11,02,79,062,47,03,57,232,33,08,24,159,47,14,24,267,33,1*6F
+$GPGSV,3,2,11,17,32,310,37,19,07,317,28,21,63,091,48,22,25,293,27,1*6C
+$GPGSV,3,3,11,32,24,047,36,36,30,146,39,49,35,170,45,1*56
+$GPGSV,2,1,07,03,57,232,32,04,08,178,22,08,24,159,42,14,24,267,32,6*62
+$GPGSV,2,2,07,17,32,310,34,28,00,085,12,32,24,047,35,6*50
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,3,1,09,67,42,041,49,68,68,138,51,69,25,189,38,74,11,282,33,1*7A
+$GLGSV,3,2,09,75,13,334,47,77,,,21,82,29,112,45,83,68,072,38,1*4D
+$GLGSV,3,3,09,84,34,314,33,1*4C
+$GLGSV,2,1,07,67,42,041,42,68,68,138,44,69,25,189,26,75,13,334,42,3*7E
+$GLGSV,2,2,07,82,29,112,44,83,68,072,42,84,34,314,31,3*47
+$GAGSV,3,1,10,03,22,044,39,07,25,162,46,08,45,101,46,13,67,070,45,2*75
+$GAGSV,3,2,10,14,33,159,48,15,16,095,30,21,15,222,31,26,51,294,47,2*75
+$GAGSV,3,3,10,31,13,325,38,33,04,282,27,2*71
+$GAGSV,3,1,09,03,22,044,35,07,25,162,46,08,45,101,45,13,67,070,46,7*74
+$GAGSV,3,2,09,14,33,159,43,15,16,095,28,21,15,222,34,26,51,294,44,7*7C
+$GAGSV,3,3,09,31,13,325,37,7*4A
+$GBGSV,2,1,08,06,12,062,33,14,33,049,47,16,13,059,37,27,65,299,46,1*7C
+$GBGSV,2,2,08,28,64,132,48,30,15,306,37,33,57,068,47,41,56,182,45,1*7F
+$GBGSV,1,1,03,06,12,062,36,14,33,049,49,16,13,059,31,B*3C
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094403.60,23,0.014,0.011,55,0.010,0.010,0.010*40
+$GNRMC,094404.60,A,4741.0216037,N,00245.8788593,W,2.720,171.68,090824,,,R,V*0D
+$GNGGA,094404.60,4741.0216037,N,00245.8788593,W,4,12,0.54,43.238,M,49.023,M,1.6,0000*43
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.99,0.54,0.83,1*03
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.99,0.54,0.83,2*07
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.99,0.54,0.83,3*06
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.99,0.54,0.83,4*03
+$GNGSA,A,3,,,,,,,,,,,,,0.99,0.54,0.83,5*0F
+$GPGSV,3,1,11,02,79,062,47,03,57,232,38,08,23,159,42,14,24,267,33,1*66
+$GPGSV,3,2,11,17,32,310,28,19,07,317,32,21,63,091,48,22,25,293,27,1*69
+$GPGSV,3,3,11,32,24,047,37,36,30,146,37,49,35,170,45,1*59
+$GPGSV,2,1,07,03,57,232,28,04,08,178,22,08,23,159,40,14,24,267,37,6*69
+$GPGSV,2,2,07,17,32,310,34,28,00,085,13,32,24,047,31,6*55
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,3,1,09,67,42,041,46,68,68,138,49,69,25,189,38,74,11,282,27,1*79
+$GLGSV,3,2,09,75,13,334,46,77,,,21,82,29,112,42,83,68,072,39,1*4A
+$GLGSV,3,3,09,84,34,314,32,1*4D
+$GLGSV,2,1,07,67,42,041,46,68,68,138,45,69,25,189,32,75,13,334,45,3*79
+$GLGSV,2,2,07,82,29,112,39,83,68,072,41,84,34,314,34,3*4B
+$GAGSV,3,1,10,03,22,044,28,07,25,162,44,08,45,101,47,13,67,070,46,2*75
+$GAGSV,3,2,10,14,33,159,48,15,16,095,29,21,15,222,25,26,51,294,29,2*70
+$GAGSV,3,3,10,31,13,325,32,33,04,282,24,2*78
+$GAGSV,3,1,09,03,22,044,32,07,25,162,44,08,45,101,46,13,67,070,47,7*73
+$GAGSV,3,2,09,14,33,159,45,15,16,095,27,21,15,222,30,26,51,294,32,7*70
+$GAGSV,3,3,09,31,13,325,30,7*4D
+$GBGSV,2,1,08,06,12,062,28,14,33,049,48,16,13,059,28,27,65,299,44,1*75
+$GBGSV,2,2,08,28,64,132,47,30,15,306,36,33,57,068,47,41,56,182,46,1*72
+$GBGSV,1,1,03,06,12,062,30,14,33,049,51,16,13,059,35,B*37
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094404.60,28,0.026,0.022,83,0.010,0.010,0.016*40
+$GNRMC,094405.60,A,4741.0211014,N,00245.8787618,W,1.248,174.53,090824,,,R,V*00
+$GNGGA,094405.60,4741.0211014,N,00245.8787618,W,4,12,0.58,43.252,M,49.023,M,1.6,0000*4B
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,1.04,0.58,0.87,1*0E
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,1.04,0.58,0.87,2*0A
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,1.04,0.58,0.87,3*0B
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,1.04,0.58,0.87,4*0E
+$GNGSA,A,3,,,,,,,,,,,,,1.04,0.58,0.87,5*02
+$GPGSV,3,1,11,02,79,062,48,03,57,232,36,08,23,159,42,14,24,267,31,1*65
+$GPGSV,3,2,11,17,32,310,33,19,07,317,32,21,63,091,47,22,25,293,33,1*69
+$GPGSV,3,3,11,32,24,047,36,36,30,146,39,49,35,170,45,1*56
+$GPGSV,2,1,07,03,57,232,33,04,08,178,21,08,23,159,36,14,24,267,34,6*62
+$GPGSV,2,2,07,17,32,310,31,28,00,085,13,32,24,047,36,6*57
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,3,1,09,67,42,041,47,68,68,138,49,69,25,189,34,74,11,282,27,1*74
+$GLGSV,3,2,09,75,13,334,49,77,,,20,82,29,112,37,83,68,072,39,1*46
+$GLGSV,3,3,09,84,34,314,30,1*4F
+$GLGSV,2,1,07,67,42,041,43,68,68,138,45,69,25,189,30,75,13,334,43,3*78
+$GLGSV,2,2,07,82,29,112,40,83,68,072,41,84,34,314,30,3*41
+$GAGSV,3,1,10,03,22,044,38,07,25,162,41,08,45,101,46,13,67,070,46,2*70
+$GAGSV,3,2,10,14,33,159,49,15,16,095,27,21,15,222,31,26,51,294,35,2*77
+$GAGSV,3,3,10,31,13,325,32,33,04,282,25,2*79
+$GAGSV,3,1,09,03,22,044,42,07,25,162,42,08,45,101,42,13,67,070,45,7*74
+$GAGSV,3,2,09,14,33,159,44,15,16,095,25,21,15,222,28,26,51,294,32,7*7A
+$GAGSV,3,3,09,31,13,325,34,7*49
+$GBGSV,2,1,08,06,12,062,32,14,33,049,48,16,13,059,27,27,65,299,45,1*70
+$GBGSV,2,2,08,28,64,132,47,30,15,306,37,33,57,068,45,41,56,182,45,1*72
+$GBGSV,1,1,03,06,12,062,36,14,33,049,49,16,13,059,30,B*3D
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094405.60,15,0.021,0.015,86,0.010,0.010,0.011*4E
+$GNRMC,094406.60,A,4741.0208498,N,00245.8787057,W,0.840,173.75,090824,,,R,V*06
+$GNGGA,094406.60,4741.0208498,N,00245.8787057,W,4,12,0.53,43.270,M,49.023,M,0.6,0000*47
+$GNGSA,A,3,02,03,32,14,17,08,21,22,,,,,0.95,0.53,0.79,1*0D
+$GNGSA,A,3,82,75,69,84,83,67,68,,,,,,0.95,0.53,0.79,2*09
+$GNGSA,A,3,31,03,07,08,13,15,21,26,,,,,0.95,0.53,0.79,3*08
+$GNGSA,A,3,30,14,27,06,16,41,33,28,,,,,0.95,0.53,0.79,4*0D
+$GNGSA,A,3,,,,,,,,,,,,,0.95,0.53,0.79,5*01
+$GPGSV,3,1,11,02,79,062,47,03,57,232,40,08,23,159,40,14,24,267,30,1*68
+$GPGSV,3,2,11,17,32,310,35,19,07,317,39,21,63,091,46,22,25,293,27,1*60
+$GPGSV,3,3,11,32,24,047,43,36,30,146,40,49,35,170,45,1*5A
+$GPGSV,2,1,07,03,57,232,33,04,08,178,23,08,23,159,35,14,24,267,34,6*63
+$GPGSV,2,2,07,17,32,310,27,28,00,085,14,32,24,047,44,6*52
+$GPGSV,1,1,01,40,13,115,,0*57
+$GLGSV,3,1,09,67,42,041,46,68,68,138,50,69,25,189,38,74,11,282,32,1*75
+$GLGSV,3,2,09,75,13,334,49,77,,,19,82,29,112,34,83,68,072,38,1*4E
+$GLGSV,3,3,09,84,34,314,30,1*4F
+$GLGSV,2,1,07,67,42,041,42,68,68,138,45,69,25,189,30,75,13,334,45,3*7F
+$GLGSV,2,2,07,82,29,112,42,83,68,072,42,84,34,314,29,3*48
+$GAGSV,3,1,10,03,22,044,32,07,25,162,41,08,45,101,45,13,67,070,46,2*79
+$GAGSV,3,2,10,14,33,159,49,15,16,095,32,21,15,222,29,26,51,294,29,2*77
+$GAGSV,3,3,10,31,13,325,32,33,04,282,25,2*79
+$GAGSV,3,1,09,03,22,044,42,07,25,162,39,08,45,101,47,13,67,070,46,7*7E
+$GAGSV,3,2,09,14,33,159,47,15,16,095,25,21,15,222,22,26,51,294,27,7*77
+$GAGSV,3,3,09,31,13,325,33,7*4E
+$GBGSV,2,1,08,06,12,062,27,14,33,049,47,16,13,059,35,27,65,299,44,1*79
+$GBGSV,2,2,08,28,64,132,47,30,15,306,36,33,57,068,47,41,56,182,45,1*71
+$GBGSV,1,1,02,06,12,062,38,14,33,049,51,B*01
+$GBGSV,2,1,06,05,12,110,,09,09,079,,36,02,308,,39,14,048,,0*75
+$GBGSV,2,2,06,42,09,041,,43,04,128,,0*73
+$GQGSV,1,1,00,0*64
+$GNGST,094406.60,21,0.018,0.014,88,0.010,0.010,0.010*4E
diff --git a/src/org/openstreetmap/josm/data/gpx/GpxConstants.java b/src/org/openstreetmap/josm/data/gpx/GpxConstants.java
index c528bb8da..543cdfebc 100644
--- a/src/org/openstreetmap/josm/data/gpx/GpxConstants.java
+++ b/src/org/openstreetmap/josm/data/gpx/GpxConstants.java
@@ -178,12 +178,18 @@ public interface GpxConstants {
     /** Represents a differential GPS station. 0 &lt;= value &lt;= 1023 */
     String PT_DGPSID = "dgpsid";
 
+    /** Standard horizontal major deviation */
+    String PT_STD_HDEV = "stdhdev";
+    
+    /** Standard vertical major deviation */
+    String PT_STD_VDEV = "stdvdev";
+    
     /**
      * Ordered list of all possible waypoint keys.
      */
     List<String> WPT_KEYS = Collections.unmodifiableList(Arrays.asList(PT_ELE, PT_TIME, PT_MAGVAR, PT_GEOIDHEIGHT,
             GPX_NAME, GPX_CMT, GPX_DESC, GPX_SRC, META_LINKS, PT_SYM, PT_TYPE,
-            PT_FIX, PT_SAT, PT_HDOP, PT_VDOP, PT_PDOP, PT_AGEOFDGPSDATA, PT_DGPSID));
+            PT_FIX, PT_SAT, PT_HDOP, PT_VDOP, PT_PDOP, PT_AGEOFDGPSDATA, PT_DGPSID, PT_STD_HDEV, PT_STD_VDEV));
 
     /**
      * Ordered list of all possible route and track keys.
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
index 3f7081f17..606668b9f 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
@@ -91,7 +91,8 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
     /** paint large dots for points **/
     private boolean large;
     private int largesize;
-    private boolean hdopCircle;
+    private boolean drawCircle;
+    private int circleDataSource;
     /** paint direction arrow with alternate math. may be faster **/
     private boolean arrowsFast;
     /** don't draw arrows nearer to each other than this **/
@@ -137,8 +138,8 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
     private ColorScale dateScale;
     private ColorScale directionScale;
 
-    /** Opacity for hdop points **/
-    private int hdopAlpha;
+    /** Opacity for circle points **/
+    private int circleAlpha;
 
     // lookup array to draw arrows without doing any math
     private static final int ll0 = 9;
@@ -242,7 +243,8 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
     private double maxTime;
 
     private void setupColors() {
-        hdopAlpha = Config.getPref().getInt("hdop.color.alpha", -1);
+        //TODO rename hdop.color.alpha to circle.color.alpha with data.preferences.java.getUpdatePrefKeys?
+        circleAlpha = Config.getPref().getInt("hdop.color.alpha", -1);
         velocityScale = ColorScale.createHSBScale(256);
         /* Colors (without custom alpha channel, if given) for HDOP painting. */
         hdopScale = ColorScale.createHSBScale(256).makeReversed().addTitle(tr("HDOP"));
@@ -379,7 +381,8 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
         }
         large = optBool("points.large");
         largesize = optInt("points.large.size");
-        hdopCircle = optBool("points.hdopcircle");
+        drawCircle = optBool("points.hdopcircle");
+        circleDataSource = optInt("points.circle.data.source");
         colored = getColorMode();
         velocityTune = optInt("colormode.velocity.tune");
         colorModeDynamic = optBool("colormode.dynamic-range");
@@ -856,10 +859,10 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
     }
 
     /****************************************************************
-     ********** STEP 3d - DRAW LARGE POINTS AND HDOP CIRCLE *********
+     ********** STEP 3d - DRAW LARGE POINTS AND CIRCLES *********
      ****************************************************************/
     private void drawPointsStep3d(Graphics2D g, MapView mv, List<WayPoint> visibleSegments) {
-        if (large || hdopCircle) {
+        if (large || drawCircle) {
             final int halfSize = largesize / 2;
             for (WayPoint trkPnt : visibleSegments) {
                 LatLon c = trkPnt.getCoor();
@@ -868,20 +871,24 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
                 }
                 Point screen = mv.getPoint(trkPnt);
 
-                if (hdopCircle && trkPnt.get(GpxConstants.PT_HDOP) != null) {
-                    // hdop value
-                    float hdop = ((Number) trkPnt.get(GpxConstants.PT_HDOP)).floatValue();
-                    if (hdop < 0) {
-                        hdop = 0;
+                if (drawCircle) {
+                    float circleSize;
+                    //hdop
+                    if (circleDataSource == 0 && trkPnt.get(GpxConstants.PT_HDOP) != null) {
+                        // circleSize value
+                        circleSize = ((Number) trkPnt.get(GpxConstants.PT_HDOP)).floatValue();
+                        drawCircle(g, mv, trkPnt, screen, circleSize);
+                    }
+                    //horizontal standard deviation estimate
+                    if (circleDataSource == 1 && trkPnt.get(GpxConstants.PT_STD_HDEV) != null) {
+                        circleSize = ((Number) trkPnt.get(GpxConstants.PT_STD_HDEV)).floatValue();
+                        drawCircle(g, mv, trkPnt, screen, circleSize);
+                    }
+                    //age of correction
+                    if (circleDataSource == 2 && trkPnt.get(GpxConstants.PT_AGEOFDGPSDATA) != null) {
+                        circleSize = ((Number) trkPnt.get(GpxConstants.PT_AGEOFDGPSDATA)).floatValue();
+                        drawCircle(g, mv, trkPnt, screen, circleSize);
                     }
-                    Color customColoringTransparent = hdopAlpha < 0 ? trkPnt.customColoring :
-                            new Color((trkPnt.customColoring.getRGB() & 0x00ffffff) | (hdopAlpha << 24), true);
-                    g.setColor(customColoringTransparent);
-                    // hdop circles
-                    int hdopp = mv.getPoint(new LatLon(
-                            trkPnt.getCoor().lat(),
-                            trkPnt.getCoor().lon() + 2d * 6 * hdop * 360 / 40000000d)).x - screen.x;
-                    g.drawArc(screen.x - hdopp / 2, screen.y - hdopp / 2, hdopp, hdopp, 0, 360);
                 }
                 if (large) {
                     // color the large GPS points like the gps lines
@@ -900,7 +907,21 @@ public class GpxDrawHelper implements SoMChangeListener, MapViewPaintable.LayerP
                     g.fillRect(screen.x - halfSize, screen.y - halfSize, largesize, largesize);
                 }
             } // end for trkpnt
-        } // end if large || hdopcircle
+        } // end if large || drawCircle
+    }
+
+    private void drawCircle(Graphics2D g, MapView mv, WayPoint trkPnt, Point screen, float circleSize) {
+        if (circleSize < 0) {
+            circleSize = 0;
+        }
+        Color customColoringTransparent = circleAlpha < 0 ? trkPnt.customColoring :
+                new Color((trkPnt.customColoring.getRGB() & 0x00ffffff) | (circleAlpha << 24), true);
+        g.setColor(customColoringTransparent);
+        // circles
+        int circleSizep = mv.getPoint(new LatLon(
+                trkPnt.getCoor().lat(),
+                trkPnt.getCoor().lon() + 2d * 6 * circleSize * 360 / 40000000d)).x - screen.x;
+        g.drawArc(screen.x - circleSizep / 2, screen.y - circleSizep / 2, circleSizep, circleSizep, 0, 360);
     }
 
     /****************************************************************
diff --git a/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java b/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
index 625e1f116..e42228279 100644
--- a/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
@@ -20,6 +20,7 @@ import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.ButtonGroup;
 import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
@@ -65,7 +66,8 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
     private final JosmTextField drawLineWidth = new JosmTextField(2);
     private final JCheckBox forceRawGpsLines = new JCheckBox(tr("Force lines if no segments imported"));
     private final JCheckBox largeGpsPoints = new JCheckBox(tr("Draw large GPS points"));
-    private final JCheckBox hdopCircleGpsPoints = new JCheckBox(tr("Draw a circle from HDOP value"));
+    private final JCheckBox circleGpsPoints = new JCheckBox(tr("Draw a circle from value"));
+    private final JComboBox<String> circleDataSource = new JosmComboBox<>(new String[] {tr("Hdop"), tr("Horizontal deviation estimate"), tr("Age of correction data")}); 
     private final JRadioButton colorTypeVelocity = new JRadioButton(tr("Velocity (red = slow, green = fast)"));
     private final JRadioButton colorTypeDirection = new JRadioButton(tr("Direction (red = west, yellow = north, green = east, blue = south)"));
     private final JRadioButton colorTypeDilution = new JRadioButton(tr("Dilution of Position (red = high, green = low, if available)"));
@@ -132,7 +134,9 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         m.put("markers.show-text", true);
         m.put("markers.pattern", Marker.LABEL_PATTERN_AUTO);
         m.put("markers.audio.pattern", "?{ '{name}' | '{desc}' | '{" + Marker.MARKER_FORMATTED_OFFSET + "}' }");
+        //TODO rename points.hdopcircle to circle with data.preferences.java.getUpdatePrefKeys?
         m.put("points.hdopcircle", false);
+        m.put("points.circle.data.source", 0);
         m.put("points.large", false);
         m.put("points.large.alpha", -1); //Expert mode only
         m.put("points.large.size", 3); //Expert mode only
@@ -420,10 +424,16 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         add(new JLabel(tr("Minimum distance (pixels)")), GBC.std().insets(40, 0, 0, 0));
         add(drawGpsArrowsMinDist, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
 
-        // hdopCircleGpsPoints
-        hdopCircleGpsPoints.setToolTipText(tr("Draw a circle from HDOP value"));
-        add(hdopCircleGpsPoints, GBC.eop().insets(20, 0, 0, 0));
-        ExpertToggleAction.addVisibilitySwitcher(hdopCircleGpsPoints);
+        // circleGpsPoints
+        circleGpsPoints.addItemListener(e -> {circleDataSource.setEnabled(circleGpsPoints.isSelected());});
+        circleGpsPoints.setToolTipText(tr("Draw a circle from value"));
+        circleDataSource.setToolTipText(tr("Source of the circle size"));
+        circleDataSource.setEnabled(false);
+
+        add(circleGpsPoints, GBC.std().insets(20, 0, 0, 0));
+        add(circleDataSource, GBC.eop().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
+        ExpertToggleAction.addVisibilitySwitcher(circleGpsPoints);
+        ExpertToggleAction.addVisibilitySwitcher(circleDataSource);
 
         // largeGpsPoints
         largeGpsPoints.setToolTipText(tr("Draw larger dots for the GPS points."));
@@ -622,7 +632,8 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         drawGpsArrows.setSelected(prefBool("lines.arrows"));
         drawGpsArrowsFast.setSelected(prefBool("lines.arrows.fast"));
         drawGpsArrowsMinDist.setText(pref("lines.arrows.min-distance"));
-        hdopCircleGpsPoints.setSelected(prefBool("points.hdopcircle"));
+        circleGpsPoints.setSelected(prefBool("points.hdopcircle"));
+        circleDataSource.setSelectedIndex(prefInt("points.circle.data.source"));
         largeGpsPoints.setSelected(prefBool("points.large"));
         useGpsAntialiasing.setSelected(Config.getPref().getBoolean("mappaint.gpx.use-antialiasing", false));
 
@@ -698,7 +709,8 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
             putPref("lines.arrows.min-distance", drawGpsArrowsMinDist.getText());
         }
 
-        putPref("points.hdopcircle", hdopCircleGpsPoints.isSelected());
+        putPref("points.hdopcircle", circleGpsPoints.isSelected());
+        putPref("points.circle.data.source", circleDataSource.getSelectedIndex());
         putPref("points.large", largeGpsPoints.isSelected());
         putPref("lines.width", drawLineWidth.getText());
         putPref("lines.alpha-blend", drawLineWithAlpha.isSelected());
diff --git a/src/org/openstreetmap/josm/io/nmea/NmeaParser.java b/src/org/openstreetmap/josm/io/nmea/NmeaParser.java
index b9faf9d03..03f9087ec 100644
--- a/src/org/openstreetmap/josm/io/nmea/NmeaParser.java
+++ b/src/org/openstreetmap/josm/io/nmea/NmeaParser.java
@@ -23,7 +23,7 @@ import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
  * Parses NMEA 0183 data. Based on information from
- * <a href="http://www.catb.org/gpsd/NMEA.html">http://www.catb.org/gpsd</a>.
+ * <a href="https://gpsd.gitlab.io/gpsd/NMEA.html">https://gpsd.gitlab.io/gpsd</a>.
  *
  * NMEA data is in printable ASCII form and may include information such as position,
  * speed, depth, frequency allocation, etc.
@@ -137,6 +137,26 @@ public class NmeaParser {
         }
     }
 
+    /**
+     * GST - GNSS Pseudorange Noise Statistics
+     * <p>
+     * RMS and Standard deviation estimated values.
+     */
+    enum GST {
+        TIME(1),
+        RMS_DEVIATION(2),        // Total RMS standard deviation of ranges inputs to the navigation solution
+        STDDEV_MAJOR(3),         // Standard deviation (meters) of semi-major axis of error ellipse
+        STDDEV_MINOR(4),         // Standard deviation (meters) of semi-minor axis of error ellipse
+        STDDEV_MAJOR_BEARING(5), // Orientation of semi-major axis of error ellipse (true north degrees)
+        STDDEV_LAT(6),           // Standard deviation (meters) of latitude error
+        STDDEV_LONG(7),          // Standard deviation (meters) of longitude error
+        STDDEV_HEIGHT(8);        // Standard deviation (meters) of altitude error
+        final int position;
+        GST(int position) {
+            this.position = position;
+        }
+    }
+
     /**
      * Geographic Position - Latitude/Longitude.
      * <p>
@@ -422,6 +442,11 @@ public class NmeaParser {
                         break;
                     }
                 }
+                // Age of differentiel correction
+                accu = e[GGA.GPS_AGE.position];
+                if (!accu.isEmpty() && currentwp != null) {
+                    currentwp.put(GpxConstants.PT_AGEOFDGPSDATA, Float.valueOf(accu));
+                }
                 // reference ID
                 if (GGA.REF.position < e.length) {
                     accu = e[GGA.REF.position];
@@ -465,6 +490,18 @@ public class NmeaParser {
                 if (!accu.isEmpty() && currentwp != null) {
                     currentwp.put(GpxConstants.PT_PDOP, Float.valueOf(accu));
                 }
+                // GST Sentence
+            } else if (isSentence(e[0], Sentence.GST)) {
+                // std horizontal deviation
+                accu = e[GST.STDDEV_MAJOR.position];
+                if (!accu.isEmpty() && currentwp != null) {
+                    currentwp.put(GpxConstants.PT_STD_HDEV, Float.valueOf(accu));
+                }
+                // std vertical deviation
+                accu = e[GST.STDDEV_HEIGHT.position];
+                if (!accu.isEmpty() && currentwp != null) {
+                    currentwp.put(GpxConstants.PT_STD_VDEV, Float.valueOf(accu));
+                }
             } else if (isSentence(e[0], Sentence.RMC)) {
                 // coordinates
                 LatLon latLon = parseLatLon(
diff --git a/src/org/openstreetmap/josm/io/nmea/NmeaReader.java b/src/org/openstreetmap/josm/io/nmea/NmeaReader.java
index acc62ab54..c3e83fd6c 100644
--- a/src/org/openstreetmap/josm/io/nmea/NmeaReader.java
+++ b/src/org/openstreetmap/josm/io/nmea/NmeaReader.java
@@ -20,7 +20,7 @@ import org.openstreetmap.josm.tools.Logging;
 
 /**
  * Reads a NMEA 0183 file. Based on information from
- * <a href="http://www.catb.org/gpsd/NMEA.html">http://www.catb.org/gpsd</a>.
+ * <a href="https://gpsd.gitlab.io/gpsd/NMEA.html">https://gpsd.gitlab.io/gpsd</a>.
  *
  * NMEA files are in printable ASCII form and may include information such as position,
  * speed, depth, frequency allocation, etc.
diff --git a/src/org/openstreetmap/josm/io/nmea/Sentence.java b/src/org/openstreetmap/josm/io/nmea/Sentence.java
index ecaa9cc91..34e1e953b 100644
--- a/src/org/openstreetmap/josm/io/nmea/Sentence.java
+++ b/src/org/openstreetmap/josm/io/nmea/Sentence.java
@@ -8,7 +8,7 @@ package org.openstreetmap.josm.io.nmea;
  * Most GPS sensors emit only RMC, GGA, GSA, GSV, GLL, VTG, and (rarely) ZDA.
  * Newer ones conforming to NMEA 3.x may emit GBS as well.
  * Other NMEA sentences are usually only emitted by high-end maritime navigation systems.<p>
- * See <a href="http://www.catb.org/gpsd/NMEA.html#_nmea_encoding_conventions">NMEA Encoding Conventions</a>
+ * See <a href="https://gpsd.gitlab.io//gpsd/NMEA.html#_nmea_encoding_conventions">NMEA Encoding Conventions</a>
  * @since 12421
  */
 public enum Sentence {
@@ -31,7 +31,7 @@ public enum Sentence {
      * <li>Standard deviation of bias estimate</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_gbs_gps_satellite_fault_detection">GBS</a>
+     * See <a href="https://gpsd.gitlab.io//gpsd/NMEA.html#_gbs_gps_satellite_fault_detection">GBS</a>
      */
     GBS,
 
@@ -71,7 +71,7 @@ public enum Sentence {
      * <li>Differential reference station ID, 0000-1023</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_gga_global_positioning_system_fix_data">GGA</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_gga_global_positioning_system_fix_data">GGA</a>
      */
     GGA,
 
@@ -102,7 +102,7 @@ public enum Sentence {
      * <li>VDOP</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_gsa_gps_dop_and_active_satellites">GSA</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_gsa_gps_dop_and_active_satellites">GSA</a>
      */
     GSA,
 
@@ -122,7 +122,7 @@ public enum Sentence {
      * <li>azimuth in degrees to true north (000-359) (leading zeros sent)</li>
      * <li>SNR in dB (00-99) (leading zeros sent) more satellite info quadruples like 4-7 n) checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_gsv_satellites_in_view">GSV</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_gsv_satellites_in_view">GSV</a>
      */
     GSV,
 
@@ -143,9 +143,31 @@ public enum Sentence {
      * <li>FAA mode indicator (NMEA 2.3 and later)</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_gll_geographic_position_latitude_longitude">GLL</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_gll_geographic_position_latitude_longitude">GLL</a>
      */
     GLL,
+    
+    /**
+     * GST - GPS Pseudorange Noise Statistics
+     * <pre>
+     *              1    2 3 4 5 6 7 8   9
+     *              |    | | | | | | |   |
+     * $ --GST,hhmmss.ss,x,x,x,x,x,x,x*hh
+     * </pre>
+     * Field Number:<ol>
+     * <li>UTC time of associated GGA fix</li>
+     * <li>Total RMS standard deviation of ranges inputs to the navigation solution</li>
+     * <li>Standard deviation (meters) of semi-major axis of error ellipse</li>
+     * <li>Standard deviation (meters) of semi-minor axis of error ellipse</li>
+     * <li>Orientation of semi-major axis of error ellipse (true north degrees)</li>
+     * <li>Standard deviation (meters) of latitude error</li>
+     * <li>Standard deviation (meters) of longitude error</li>
+     * <li>Standard deviation (meters) of altitude error</li>
+     * <li>Checksum</li>
+     * </ol>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_gst_gps_pseudorange_noise_statistics">GST</a>
+     */
+    GST,
 
     /**
      * RMC - Recommended Minimum Navigation Information
@@ -170,7 +192,7 @@ public enum Sentence {
      * <li>FAA mode indicator (NMEA 2.3 and later)</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_rmc_recommended_minimum_navigation_information">RMC</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_rmc_recommended_minimum_navigation_information">RMC</a>
      */
     RMC,
 
@@ -193,7 +215,7 @@ public enum Sentence {
      * <li>FAA mode indicator (NMEA 2.3 and later)</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_vtg_track_made_good_and_ground_speed">VTG</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_vtg_track_made_good_and_ground_speed">VTG</a>
      */
     VTG,
 
@@ -213,7 +235,7 @@ public enum Sentence {
      * <li>Local zone minutes description, apply same sign as local hours</li>
      * <li>Checksum</li>
      * </ol>
-     * See <a href="http://www.catb.org/gpsd/NMEA.html#_zda_time_amp_date_utc_day_month_year_and_local_time_zone">ZDA</a>
+     * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_zda_time_amp_date_utc_day_month_year_and_local_time_zone">ZDA</a>
      */
     ZDA
 }
diff --git a/src/org/openstreetmap/josm/io/nmea/TalkerId.java b/src/org/openstreetmap/josm/io/nmea/TalkerId.java
index 3764961ad..8c0096447 100644
--- a/src/org/openstreetmap/josm/io/nmea/TalkerId.java
+++ b/src/org/openstreetmap/josm/io/nmea/TalkerId.java
@@ -4,7 +4,7 @@ package org.openstreetmap.josm.io.nmea;
 /**
  * Talker identifiers mnemonics are the first two characters at the beginning of each sentence.
  * This enum lists the common ones (navigation systems).<p>
- * See <a href="http://www.catb.org/gpsd/NMEA.html#_talker_ids">Talker IDs</a>
+ * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html#_talker_ids">Talker IDs</a>
  * @since 12421
  */
 public enum TalkerId {
diff --git a/src/org/openstreetmap/josm/io/nmea/package-info.java b/src/org/openstreetmap/josm/io/nmea/package-info.java
index f12be2698..db366d529 100644
--- a/src/org/openstreetmap/josm/io/nmea/package-info.java
+++ b/src/org/openstreetmap/josm/io/nmea/package-info.java
@@ -3,7 +3,7 @@
 /**
  * Provides the classes for reading NMEA-0183 files.
  * <p>
- * See <a href="http://www.catb.org/gpsd/NMEA.html#_gbs_gps_satellite_fault_detection">NMEA Revealed</a>.
+ * See <a href="https://gpsd.gitlab.io/gpsd/NMEA.html">NMEA Revealed</a>.
  * @since 12421
  */
 package org.openstreetmap.josm.io.nmea;
diff --git a/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java b/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
index 8b7d55eac..295d7c9b0 100644
--- a/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
+++ b/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
@@ -90,7 +90,8 @@ public class RtkLibPosReader implements IGpxReader {
                             currentwp.put(GpxConstants.RTKLIB_RATIO, fields[IDX_RATIO]);
                             double sdn = Double.parseDouble(fields[IDX_SDN]);
                             double sde = Double.parseDouble(fields[IDX_SDE]);
-                            currentwp.put(GpxConstants.PT_HDOP, (float) Math.sqrt(sdn*sdn + sde*sde));
+                            currentwp.put(GpxConstants.PT_STD_HDEV, (float) Math.sqrt(sdn*sdn + sde*sde));
+                            currentwp.put(GpxConstants.PT_STD_VDEV, fields[IDX_SDU]);
                             waypoints.add(currentwp);
                             success++;
                         } catch (IllegalArgumentException e) {
diff --git a/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java b/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java
index db94024eb..d9b0d8f7f 100644
--- a/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java
+++ b/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java
@@ -62,7 +62,26 @@ class NmeaReaderTest {
         assertNull(wayPoints.get(0).get(GpxConstants.PT_VDOP));
         assertNull(wayPoints.get(0).get(GpxConstants.PT_PDOP));
     }
+    /**
+     * Tests reading a nmea file with GST sentences.
+     * @throws Exception if any error occurs
+     */
+    @Test
+    void testReader2() throws Exception {
+        final NmeaReader in = new NmeaReader(Files.newInputStream(Paths.get("nodist/data/btnmea_GST.nmea")));
+        in.parse(true);
+        assertEquals(9, in.getNumberOfCoordinates());
+        assertEquals(0, in.getParserMalformed());
 
+        final List<WayPoint> wayPoints = new ArrayList<>(in.data.tracks.iterator().next().getSegments().iterator().next().getWayPoints());
+        assertEquals("43.294", wayPoints.get(0).get(GpxConstants.PT_ELE));
+        assertEquals("12", wayPoints.get(0).get(GpxConstants.PT_SAT));
+        assertEquals("rtk", wayPoints.get(0).get(GpxConstants.PT_FIX));
+        assertEquals("0.52", wayPoints.get(0).get(GpxConstants.PT_HDOP).toString().trim());
+        assertEquals("0.78", wayPoints.get(0).get(GpxConstants.PT_VDOP).toString().trim());
+        assertEquals("0.94", wayPoints.get(0).get(GpxConstants.PT_PDOP).toString().trim());
+    }
+    
     private static void compareWithReference(int ticket, String filename, int numCoor) throws IOException, SAXException {
         GpxData gpx = GpxReaderTest.parseGpxData(TestUtils.getRegressionDataFile(ticket, filename+".gpx"));
         NmeaReader in = new NmeaReader(Files.newInputStream(Paths.get(TestUtils.getRegressionDataFile(ticket, filename+".nmea"))));
diff --git a/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java b/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java
index f927752ed..c94977bea 100644
--- a/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java
+++ b/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java
@@ -53,7 +53,8 @@ class RtkLibPosReaderTest {
         assertEquals(5, wp0.get(GpxConstants.RTKLIB_Q));
         assertEquals("92.3955", wp0.get(GpxConstants.PT_ELE));
         assertEquals("2", wp0.get(GpxConstants.PT_SAT));
-        assertEquals("1.8191757", wp0.get(GpxConstants.PT_HDOP).toString().trim());
+        assertEquals("1.8191757", wp0.get(GpxConstants.PT_STD_HDEV).toString().trim());
+        assertEquals("0.8167", wp0.get(GpxConstants.PT_STD_VDEV).toString().trim());
 
         assertEquals("1.5620", wp0.get(GpxConstants.RTKLIB_SDN));
         assertEquals("0.9325", wp0.get(GpxConstants.RTKLIB_SDE));
