Wednesday, February 7, 2018

GPS Dongle Test Results

We finally got some wind to test the USB GPS dongles while windsurfing, and the initial results were frustrating. In the driving tests, both the USB dongle and the phone GPS (through GPSLogit) had given results that always were very close to the results from the"gold standard" GW-60 GPS watch. But in two successive windsurf sessions, the results differed quite a bit more, and the tracks showed some disturbing artifacts. Here is an example of a particular bad section in GPSLogit data:
The GW-60 speeds are shown in blue, the phone GPS data are shown in read. Over the selected region, which is a bit more than 1 km long, the phone gave an average speed that was 0.81 knots lower than the GW-60 speed. The cause is obvious: more than 10 times during this run, the phone GPS speed showed a sudden drop by several knots that often lasted 2-4 seconds.

What was puzzling about this was that in other runs of the same session, the phone data did not show any "sudden drop" artifacts; instead, they mirrored the GW-60 data quite closely, as shown in the image below:
What was going on? When I wrote about the negative results on the Seabreeze forum, several experts posted useful hints. The GPS antennas in the USB dongle and the phone are quite small, and therefore sensitive to poor reception. In the driving tests, the antenna orientation was always near-optimal and essentially fixed. But during my windsurfing tests, the waterproof bag on the armband I used often slipped from the top of my upper arm to the underside or the inside of my arm, which effectively block a lot of the GPS signal. At the root of the problem was the kind of armband I used, which allowed the bag quite a bit of movement along the armband. Other armbands, like the more expensive Aquapac, don't allow this kind of movement.

After having spent more than $100 for Android phones and USB dongles, and after getting very good results in driving tests, I was not quite ready to give up. Instead, I attacked a piece of velcro to the backside of my waterproof bag, which keeps the bag from slipping on the armband, and the phone and USB dongle always looking upwards towards the GPS satellites. I did two more tests - yesterday on a Kona One for a couple of hours, and a shorter session today on a speedboard in confused chop and light rain. In both sessions, the speed results from the phone GPS and the USB dongle were much closer to the GW-60 data, and the tracks did not show weird artifacts. Here are some data from today's session, analyzed by GPSResults:
The 2-second results are most prone to distortions from "noise" in the data, but for all 8 runs with speeds above 20 knots, the numbers for the phone and USB dongle are within about 0.2 knots of the GW-60 numbers: well within the estimated accuracy of +/- 0.3 knots. On average, the absolute difference is just 0.11 knots.

For 10 seconds and longer runs, the expectation is that the numbers should be even closer, since distortions from random noise should largely cancel each other out. Here are the numbers for 10 seconds:
For the USB dongle, all numbers are within 0.1 knots of the GW-60 numbers, and also within the estimated accuracy window - great! The differences for the phone GPS, as recorded by GPSLogit, are slightly larger, which may be partially due to the slower measuring rate (1 Hz vs. 5 Hz for GW-60 and USB dongle).

The 500 m data look similar:
 Again, all the dongle data are within the (rather small) error range of the GW-60 results. The same is true for 6 of the 8 GPSLogit results, but 2 are slightly outside of the error range.

When I looked at the results for the nautical mile, I was in for a surprise:
GPSResults gave 4 nautical mile results, the fastest at 18.6 knots, for the USB dongle; but for the watch, it gave only 2 results, the fastest at  only 17.8 knots. A closer look at the data revealed the cause:
My nautical mile runs all had a jibe in the middle, which usually was wet (I still have to learn how to jibe the 72 l speedboard in chop). In the middle of the fastest nm run, this caused the GW-60 to drop three points, probably because the watch was under water. I wore the watch on my wrist, while the phone and USB dongle were on my upper arm, and therefore may not have even been under water. With default settings, GPSResults will not include any region with any missing data points in any speed results up to the nautical mile, so it did not report the fastest nautical mile run for the watch. Similarly, it dropped the 4th-fastest run, and selected a different (and slower) region for the second-fastest run it reported.

Fortunately, GPS Action Replay is not as strict about missing data points, and gave results that included the regions with missing points:
Again, the results are very close to each other, with a slight advantage going to the USB dongle.

These results indicate that the USB dongle and the phone GPS in the Moto E4 can give very accurate results while windsurfing, if it is ensured that the phone is facing up, and cannot slip down. The dongle seem to be slightly more accurate, although the data set presented here is very small; additional tests would be needed to see if the observed difference holds up. The more important issue, however, is that the u-blox based USB dongle provides accuracy estimates, which can be used to automatically identify artifacts caused by poor reception.

More tests to come .. whenever the wind comes back. Today was wicked cold for Texas standards, with air temperatures dropping below 10ÂșC during our session. We almost could have stayed on Cape Cod!