Saturday, May 19, 2018


Nina almost got a Flaka yesterday. She said that for the very first time, the board kept turning while she was sliding backwards. She probably finished the 360 degree rotation, and maybe even a bit more. But she did not realize she was done until afterwards, so she fell onto the sail. But still, that's big progress.

We sailed Lewis Bay in NE wind yesterday for the first time. In NE, we usually go to Duxbury, Chapin, or other spots, but the tide was too low yesterday morning for most of those, and the wind was predicted to drop early. Lewis Bay was a bit gusty, but otherwise quite nice. But there was a surprising amount of ferry and boat traffic.

I almost got to test my Raspberrry Pi Zero "plug and play" GPS while windsurfing for the first time yesterday. Here's what the setup looks like:
It's a Raspberry Pi Zero, a Stratux GPYes USB GPS dongle, a 2500 mAh USB battery pack, a USB cable, some vecro, a zip lock bag, and a waterproof back. The cost for the entire setup is about $50 - about 1/4th or 1/5th of a GW-60 GPS watch. I did wear this while windsurfing, but encountered one little problem: the battery had switched itself off! No test data this time, bummer.

I had noticed a few times before that the battery turned itself off, but was never quite able to figure out when that happens. When it happened before, I thought that I had forgotten to charge the battery, or that the battery was dying - but I was wrong. A little internet search yesterday showed that the "sleep" function is standard for USB battery packs. They are meant to charge phones, which usually happens at 0.5 amps or more. If the current drops below 0.1 A, they decide that the phone is sufficiently charged, and go to sleep. Lazy bastards!

I did a bit more testing with a USB tester today at home, and discovered why the sleep issue was so confusing. Using a variety of USB dongles and hub, I saw that the battery goes to sleep after about 30 seconds if the current is continuously below 0.1 A. It turns out that the Pi Zero uses just about 0.1 A when it's doing nothing. A USB GPS dongle needs about 20-40 mA, so when the dongle is plugged in, the current increases to about 0.13 A. Therefore, the battery always stays on when I test at home.

One of the things that needs current is WiFi. It's usually on when I'm at home, although the script that starts the logging turns if off when a GPS dongle is connected to extend the battery life; that drops the current by about 20-30 mA. When the dongle is pulled and the logging stops, the WiFi is automatically turned back on.

But what happens when WiFi is on, but no network is available (which is usually the case when windsurfing)? It turns out that not being connected to a network has about the same effect as turning WiFi off - the current drops to about 70 mA (with no GPS dongle connected). So that's what happened yesterday! I turned the Pi on before rigging, and connected the dongle about 15 minutes later ... without checking if the battery still was on. But the lazy thing had gone to sleep.

The little test failure just underscores that you can't see much when you're flying blind - the Pi GPS logger needs some kind of display. I've got a little 2.13 in e-paper hat that has exactly the same form factor as the Pi Zero, and got the demo programs to run. Getting it to work with the logger will require a bit of trickery, since there don't see to be any Java drivers for the display. For now, I'll probably go with some primitive form of inter-process communication between the logger and a Python or C program for the display, maybe through a file on a RAM disk. That's the easiest solution that comes to mind, and would make it quite easy to support other kinds of displays, too.

Saturday, April 28, 2018

Great Fun at the Nationals

We're at the US Nationals in Seaford, Virginia, and we're having a blast. How could you not at an event venue like this?
The venue .. before the crowds arrived
It's Dave Kashy's place, where we have raced several times before - the perfect place for a regatta. Even better is the organization, with race results posted online shortly after the races, and group dinners at great local restaurants. It's almost too easy to make new friends, and much more fun to race with friends than with strangers.

I'm in the Kona fleet, so I don't have the usual "bad gear" excuses for placing near the bottom of the fleet - it's all me. But I don't really care, it's lots of fun. It's great to see all these fantastic windsurfers on the water. 
Kona racing

Sunday, April 22, 2018

Hatteras Report

Sorry about the long gap between posts - it's been way too windy the last two weeks. We spent that time in Hatteras, and it was windy every single day. Both Nina and I had to take a day off in the middle because we were to exhausted. But we also wanted to be (somewhat) fit for OBX Wind week, where we both participated in the long distance race. Nina also did the freestyle clinic with Phil Soltysiak; I was signed up for the slalom races, which turned out to be very interesting.. more about that later.

Seeing more than 200 windsurfers compete in the long distance race was amazing - check the picture below:
OBX Wind long distance race. Photo by Donald Ferguson
We did a total of three long distance races, one on Wednesday in wind around 15-20 mph, and two on Thursday in 25-35 mph wind. Each race was out to the reef and back twice, which was about 13 km (8 miles). Even though the wind dropped during or right before two of the races, leaving many competitors slogging, there were lots of happy faces and high-fives after the races. Almost everyone played nicely, but a few racers regarded their placing in the race as much more important than adhering to basic safety or right-of-way rules. Both women in our house who competed had incidents where a racer either forced them to get of the board to avoid a crash, or passed dangerously close (in the middle of the course, with plenty of space to spread out). It is quite unlikely that they will compete in future OBX Wind long distance races. 

Nina did quite well in the long distance race, placing second in the Women's Open division (which had 8 women competing), and leaving all 18 women in the freeride division, as well as more than 100 male windsurfers, behind. I accomplished my goal of finishing all races without breaking anything. On day two, that required switching to freeride gear (Tabou 3S 96 and North Ice 4.7), since there was no way I would have made it through the course with any semblance of control on a race sail and/or slalom board. Since I can actually go faster on this gear than I would have been on slalom gear in the conditions, I managed to squeeze into the top-25 overall, which I am quite happy with.

The slalom racing was quite interesting. From the very first day on, I had realized that the "chop" at the Corpus Christi and SPI spots had seriously spoiled me. The chop in Avon in 20 mph wind (according to the highest nearby wind meters) was much higher and more chaotic than the chop at Grassy Point in 30 mph wind. I (re-)discovered that I really don't like to sail slalom gear in these conditions. After a week of trying and adjusting things, I got somewhat more comfortable, managed to keep most of my jibes dry, and even plane through one occasionally ... but then, the slalom races started. In the second race, I managed to come in in the top third of the ~20 racers, but it quickly went downhill from there. With all the chop around the marks and the distractions from other sailors, I blew most of my jibes. Since I did not wand to be run over (and since my starts sucked, anyway), I decided to let most of the field go ahead before getting to speed. That turned out to not be a smart decision - I had the pleasure of sailing through everyones chop, and then had to avoid all the others who had fallen in their jibes. More dropped jibes, even less confidence ... not a good feedback loop! The final straw was the guy who absolutely had to improve his rank from third-last to second-last by first passing me upwind, with about a foot distance between our boards, and then again passed me fully planing about 2 inches from my head when I was down at the mark. Really? You're at the tail end of the field, but you're such a great sailor that passing someone this closely is safe? So that you can come in 13th instead of 14th? At that point, I decided that slalom racing was definitely not for me, and went in. I could have come to that conclusion earlier, considering that I usually sail way upwind, downwind, outside, or otherwise away from the crowds; but I had previously participated in one slalom series (and several longboard races) where the testosterone-level seemed a lot lower, and everyone sailed more considerate. It just gave me the wrong idea that that's typical.

Nina's choice of doing the freestyle camp was a much smarter one. She learned a lot, and made progress on several moves she worked on. Compared to many racers who displayed the attitude "get out of my way or else", the freestylers were a much friendlier crowd - several high-level freestylers stopped by and gave her tips when they saw the moves she was working on, or demonstrated the moves for her. The freestyle competition was also absolutely awesome, with great moves by top PWA pros Youp Smit and Phil Soltysiak, East Coast freestylers like Mike Burns, Chachi, Max Robinson, and others.
Youp Smit freestyling
We left Hatteras to go to Seaford, VA, where the US Nationals will take place in a few days. I'll be in the Kona category, where I have sailed in before and loved it. We got lucky and scored a really nice AirBnB close to the event - here's a picture from today's sunrise, taken from our apartment:

Tuesday, April 3, 2018

For Pi Players

A couple of people have expressed interest in also playing around with Raspberry Pi-based GPS loggers, so I have posted some very brief instructions and a ZIP file with the code I use at If you want to play along, you'll have to figure out all the Pi things on your own - Google is your friend! I'll entertain any suggestions for improvement, but can't make any promises - I hope to windsurf a lot in the next few weeks, and spend the rest of the time talking about windsurfing, drinking beer, and sitting in the hot tub :-).

Tuesday, March 27, 2018

The Pi Logger

Since it's too cold to windsurf, and cheap OTG phones are not available in most of the world, I've been looking into using a Raspberry Pi for logging GPS data. For those who don't know Raspberry: they are tiny little Linux computers that cost between $5 and $30, depending which model you want. Here's an image showing two of them:
The clear case contains a Raspberry 3 (~ $30); the white case a Raspberry Zero W ($10). The black thing at the bottom is a USB battery; the blue & black thing at the left is a GT-31 GPS. Here's a view from the side:

There's a USB GPS dongle plugged into the Raspberry 3 - the same dongle I had used with Android phones before. I tested the Pi 3 - dongle setup on a bur ride into Boston today, and it worked! Here's are some speed tracks from the dongle and a GW-60 watch:
The blue lines are from the GW-60 (the "gold standard GPS), the red lines are from the dongle + pi. The watch had problems when the bus went under bridges, and dropped a bunch of points (the lines to the bottom). Zoomed in, the data from the dongle look less noisy than the watch data:
This is reflected in lower error estimates for the dongle data (the numbers on the right side):
No big surprises here, the dongle had done better than the watch in previous driving tests (when using an Android phone). The next thing will be to get some tests with the smaller Raspberry Pi Zero W in a few days (I'm waiting for a cable I need).

So far, the setup is just a logger: plug the battery cable into the Pi, wait a couple of minutes for it to boot, plug the dongle in, and record. When done, take the dongle out, and the Pi will shutdown a little later. Back home, grab the data over WiFi, and through them into your favorite GPS software, or upload to To get this to run, it needs a custom Java program, a couple of libraries for the USB/serial communication, a couple of scripts, and an entry in the /etc/rc.local to start things up automatically - not too bad.

The hardware cost for Pi Zero W + GPS dongle + battery + case cables is around $50 US. Adding a small display would add another $40 or so, almost doubling the cost, so that's not very high on my list of priorities.

Things I'll probably try first are:

  • Use a smaller battery pack
  • Pack things neatly for use when windsurfing
  • Configure the Pi Zero as a USB drive for easier downloading onto a computer
  • Use Bluetooth to announce speed
  • Use Bluetooth and an Android phone to display speeds 
  • Automatically transfer files after a session to a phone or PC (over Bluetooth or WiFi)
The entire setup should consist of a few things that are easy and cheap to buy, and a few cables, with no or very little assembly required. Geeks can swap the USB dongle against a ublox 8 chip with a larger antenna, and hook it up using either a serial-to-USB cable, or using the GPIO pins on the Pi (which would also require software changes). 

Monday, March 19, 2018

Texas Wrap

After three days of driving, we're back from Texas, and were once again greeted by snow on the ground. I'm not sure what the bigger shock was, though - the temperature differences or the "sticker shock" in the supermarket, where exactly the same food costs 1/3 to 1/2 more. Maybe I can understand that for fresh fruit from Mexico - but for frozen food? Well, at least the selection of vegetarian pizza is better here. Texas is not the best place for vegetarians!

The weather this year was weird, with a lot of cloudy and rainy days. I still got to sail 31 days, about the same as last year, but that included 4 light wind days, and 4 days on South Padre Island. My biggest sail (the 7.8) also was the most used sail, and only 6 of the 31 days were on sails smaller than 7.0 (2 x 5.6, 4 x 6.3).  It's not quite as bad as it might seem, though - since I only sailed slalom gear, I was on the 7.0 race sail in 23 mph wind averages, where I would use a 5.0 on freestyle gear. The two days on the 5.6 had wind averages of 27 and 32 mph.

We got only one "real" speed session this year, and not a single day with northwesterly wind that would have been perfect at the South Bird Island Slicks. On the upside, we sailed a couple of spots for the first time that are great for long distance speed: the North Flats at South Padre Island, and Grassy Point in Corpus Christi. At low water levels, both spots are great for nautical mile and one hour runs, so it's no surprise that 4 of my top 5 sessions for both of these disciplines are from this year. Good practice for the OBX long distance race next month! And maybe all that "big sail" practice will be useful at the US Nationals a week later, where I'll be sailing a 9.0 in the Kona One category. It's cool to see that more than 50 windsurfers are already registered for the US Nationals, including racers from the US, Canada, Denmark, Great Britain, Belgium, FranceBrazil, Poland, Italy, and Germany. The list includes multiple national champions, so the racing should be hot! See you there or in Avon in a few weeks!

Monday, March 12, 2018

The Difference Between Good and Bad

No, this is not a philosophy post. It's about GPS reception. Surprised?

When I looked at GPS test results from yesterday and today, one thing puzzled me. Look at the data and take a guess:
Why was the phone GPS so inaccurate on 3/11, with large errors in every GPSTC discipline, but quite accurate on 3/12? I'll give you some clues, so you can see how early you can guess the answer.

Clue #1: A cold front pulled in yesterday afternoon. Temperatures dropped from the 80s into high 60s yesterday evening, and to 50s today.

Clue #2: That made me wear a 4 mm wetsuit today, while I was sailing in a lycra top yesterday.

The ardent reader of my blog may have a suspicion on what was going on by now (ha!).

Clue #3: The arm band I use for my phone tends to slip on the lycra, but much less so on the wetsuit. Yesterday, I stopped several times just to re-orient the phone so that it was pointing to the sky; it often was on the side of my arm.

Clue #4: Compare the track points from one run where the phone reported about 1 knot less speed than the GW-60 shown here:
to a run where both devices gave almost the same speed:
Clue #5: Check the "Sats" column for the phone data (the numbers on the right side) for the picture above.

So: yesterday, the armband with the phone slipped often, so that the phone was on the side of my arm, instead of pointing up. The runs that deviate most from the GW-60 data had reception from fewer GPS satellites, and changes in the number of satellites during the run. It seems that having the phone facing sideways on the arm during speed runs screws things up. That's not really very surprising - perhaps the more surprising thing is that the USB dongle gave accurate results yesterday (it was in the same bag, lying on the screen of the phone).

Can we verify that turning the phone sideways and blocking one side screws up GPS reception? Sure! I used GPSLogit, which has a graph that shows satellite reception. Here's a screen shot showing the reception with the phone facing up:
The phone used GPS 13 satellites, and had a decent horizontal accuracy of 4.6 meters. Just turning the phone onto its side did not change much, but then putting a hand close to the top of the phone on the back side did:
Now, the phone had good signal (green bars and dots) from only 7 satellites, and the estimated positional accuracy was 19.7 meters - four times worse!

If you want to reproduce this, but don't have GPSLogit, there are plenty of free GPS test apps on the Google Play Store available that could be used instead. The phone's GPS antenna is typically located near one of the top corners of the phone. You'll have to wait a few seconds to see changes in the satellite reception (probably because that information is not updated as often as position and speed info).

So, if you want to get accurate speeds from your phone with GPSLogit or Windsport Tracker, make sure the phone is facing to the sky! Of course, that's the same for the GW-60.

Sunday, March 11, 2018

Dongles Beats Phone

Here's a graph that compares the accuracy of the GPS from an Android phone to the USB GPS dongle that I have been testing:
The bars show the (absolute) difference between the results of the GPS units to the results from the "Gold Standard" GW-60 GPS in the six GPS Team Challenge disciplines over 10 different windsurfing sessions. The unit is knots. Shorter bars are better.

The results show that the phone GPS (red bars) can give quite accurate results, but sometimes does not. In 5 of the 10 sessions, at least one number (usually for 2 second average speed) was off by 0.3 knots or more. In three sessions, the observed difference was larger than 0.5 knots, which is definitely unacceptable for competition (but still good enough for just recording your sessions, and getting an idea how fast you were).

In contrast, the USB dongle had a maximum error below 0.4 knots in all 10 sessions, with a maximum deviation of 0.2 knots in 9 out of 10 sessions. The one session with a higher error was the one I reported about previously, where the arm band with the phone and dongle had slipped for large parts of the session. In all other session, the accuracy was very good. For comparison, the observed differences when wearing two GW-60 watches (one on each hand) are often in the 0.1-0.2 knot range.

Compared to the phone GPS, the USB dongle has another advantage (in addition to the higher accuracy): the u-blox GPS chip in it can provide accuracy estimates, which allows the automatic detection and elimination of artifacts, for example those that can happen during crashes or when swimming.

Anyone interested more detail can look at the data in this PDF file. You may notice that not all sessions have entries for all 6 GPS disciplines. There are various reasons for this: some sessions are shorter than 1 hour, so GPSResults did not give 1 h results; other sessions are different length in the different files (for various reasons, including a little bug that stopped the dongle logging in earlier versions), so distance differences where meaningless; and so on.

If you're really interested and want to look at the raw GPS data yourself, you can download them from here. It's a 32 MB ZIP archive with about 35 files. Note that you may need to define the time range in GPSResults for some of the sessions where the different units recorded different length sessions if you want to get meaningful results. Also, a few of the GW-60 session contain data from multiple sessions, so make sure to select just the session you want to compare.

Friday, March 2, 2018

Another Naughty Spot

I recently wrote about how great Grassy Point in Corpus Christi is for nautical mile runs (naughties). Today, I finally got to try out a different naughty spot that I had wanted to sail for years: the shipping channel to the right of the JFK Memorial Causeway between Corpus Christi and North Padre Island. Check out the water depth map:
The channel is between the causeway and the big green spoil area in the lower right quadrant of the map. We cross the causeway every time we go shopping, and many times when the water level was low, parts of the spoil area have been above water; the boundary region next to the channel often was just inches deep. A perfect speed channel?

Today, the wind direction was just right: NE, a 90 degree angle to the channel (note that the map above is not in the usual "north on top" orientation). At around 19 knots, it was weak enough to let me use the Falcon 112 - when exploring, a little extra volume is always welcome! After a 5 minute drive from our condo, I was on the shore, ready to rig. Here are today's tracks:

The water level today was quite high. I got off at one spot that's shown in green on the depth map, and the water was above my hips. That meant the channel had some chop - perhaps a foot high, but quite orderly, allowing me to pick lanes. The channel is about 50-80 m wide, so it allows some mini "downwind" runs at about 15 degrees angle to the channel direction. One of those got me a top speed of 28.1 knots over 2 seconds. The best nautical mile run was 25.45 knots, pretty decent for square runs in 19 knot wind. My jibes today were quite poor, partly because I went for very tight turns which the Falcon 112 does not like much, so the hour came out at 20.06 knots. But with a bit more wind and a lower water level, this would be a great spot for 1 hour runs; with a slightly less square wind direction, it will be a great spot for naughties.

Thursday, March 1, 2018

Too Much?

We really had planned to not windsurf today. But when the meters show 25 mph wind, and it's sunny and warm, what do you expect from a couple of wind addicts? That they stay home, just because today would be the 12th day of sailing in the last 15 days, and the fourth day in a row? Really?

Of course we went. And had a blast. I started the session by sailing 2.5 km ( 1 1/2 miles) upwind on a 50 degree weed fin. Nina joined me a bit later to work on her Flakas - for once not overpowered, and on a "big" sail (4.7). That's in contrast to yesterday, when she rigged down from 3.7 to 3.4, and was still overpowered. Here are today's GPS tracks:
That was a thoroughly enjoyable session. Easy fun on flat, knee- to hip-deep water. 

Yesterday was a different story. The forecast had predicted what we got today - 22 mph, but from the south instead of the north. On sunny days, the wind always seems to come in a lot stronger than predicted, and yesterday was no exception. We rigged in 26 mph wind, but then got almost blown off the water when it increased to 32 mph gusting to 40. At least that's what the meters said. But at other spots, Nina would have been perfectly happy on a 3.4.  Of course, she looked good:
But she was so powered on the 3.4 that she aborted many Flaka attempts - even going far downwind was not enough to dump the power in the sail. After hearing her state that she was overpowered, I felt a bit better about my problems to control my 5.6 m race sail. I was on my small board (a 72 l speed board), and I had expected to get some nice nautical mile runs in - but even before the wind really picked up, I never felt in control for more than a few hundred meters, usually in the flattest sections and in lulls. My inner chicken simply did not want to risk any big stacks at 30 knots a mile or two from the launch. In my defense, the water level was a bit higher, which increased the chop and made it slightly more chaotic. 

So the IC sent me to look for some flat water, and I explored an area that I had not ventured to before: Pita Island. Just behind the island, I found a couple of hundred meters of perfectly flat water:
The speed strip is quite short, but you can enter it with a flying start, and you can probably sail onwards after it. The water still is quite flat, but there is a sandbar under water that may make it a bit too shallow. I only did a couple of runs there, and then returned back to the launch, since this spot is more than a kilometer away, and I was not sure if Nina could see me there. Sometimes, people get worried unnecessarily when they see me walk around to check the water depth... but I admit that I was a bit tired by then. Even with just two runs, this ended up being my 4th-fastest session ever, with a 2 second speed of 32.5 knots. I'm sure I'll re-visit this spot in the future!

The day before that had been similar, but different. The wind also came in almost 10 miles higher than predicted, but only to the mid-20s with gusts in the low 30s. With a less wind and a lower water level, the chop was small and nice, perfect for trying to improve my personal best (PB) for 1 hour average speed. During the second half of the hour, the wind had increased, and holding on to the 6.3 on the  Falcon 99 was quite entertaining, but well worth it - I improved my PB by 1.5 knots, to 24.14 knots. Here are the tracks:
Runs were between 3.5 and 4.5 km long. The darker green region on the right was very smooth, the region on a left required a bit more attention. Afterwards, we went to the Lazy Beach Brewing Company to celebrate, which has become one of our favorite watering holes. Nina's expression shows what she thinks about the place:

Sunday, February 25, 2018

BIB and Grassy Point Pictures

The last few times we sailed in Corpus Christi, Many Miles Mike and his wife Julie took some nice pictures. The originals are at and, but I took the liberty to copy a few shots:
Nina at Bird Island Basin

Speed at Grassy Point
Plenty of space for kiters and windsurfers
Needs more practice..

There was plenty of wind here the last couple of days, but we were in South Padre Island. After two great days there a few weeks ago in northerly winds, we figured we'd check it out in southerlies. It was plenty windy - Nina rigged down from 4.5 to 4.0, and still was a bit overpowered. But the tide was higher, and the wind was quite unsteady, which made it more similar to a typical day at BIB. Grassy Point in Corpus Christi seemed smoother on the one very windy day that we sailed there, which would be no surprise, given that the water is about a foot less deep there, and some spoil islands flatten the water even more. Looks like we'll get a a session or two there towards the middle of the week :-).

Monday, February 19, 2018

Naughty at Grassy Point

Sometimes, we are stupid. This is the fourth time we spend the winter in Corpus Christi. No, that's not stupid. What is somewhat stupid is that up until today, we have only sailed at Bird Island Basin. Don't get me wrong - BIB is a great spot for windsurfing, especially in typical ESE winds and NE wind, and it's a fantastic speed spot in NW wind (which we did not get at all this year). But in SSE wind, it's choppy - bum-bum-bum chop when going out, with "catch the back of the chop" going back, plenty of cross chop, and not flat spots. Fine for freestyle, but limited fun on slalom gear.

I was in the mood for freestyle sailing yesterday, but discovered that my Skate 110 needs another repair - this time right in front of the back foot straps. So I bumped around on slalom gear, unable to get 30 knots despite good wind and trying hard. But fortunately, Many Miles Mike had suggested to try another spot today: Bluff's Landing, also called "Grassy Point".

We went at noon, and Mike explained us the local hazards (a few shallow spots and areas). The wind was around 25 knots, but the water looked quite flat. Being cautious, I went out on my 3S 96 and North Ice 4.7 to explore. What a different to BIB! The water was knee to hip deep, the chop maybe a foot high - not much difference to BIB, except that the shallow areas extended a lot further ... for miles. The fetch is a lot longer, so the wind is steadier, and the chop is nice and orderly.  I lasted about 15 minutes before I just had to go in and get my speed gear: the Isonic W54 (72 l) and the Loft Racing Blade 5.6. I also put on my Android phone so that I could hear GPSLogit announce the speed.

The first run out was fun - plenty of 26 and 28 knot announcements even though I was angling slightly upwind most of the time. The run back was crazy - 30 knot announcements most of the time, and tons of fun threading a path through the little waves. I right away knew I had improved my personal best (PB) for the nautical mile on the first run in!

I went back out. The second run out felt even better, probably because I had moved the mast foot forward to get a bit more weight on the front foot. Two kilometers out, I saw Nina, and stopped for a little chat. Nina pointed out that the long batten in my sail looked wrong - it was broken. Bummer!! I sailed back in, and despite a 2 knot lower top speed, I still was more than a knot faster over the nautical mile (which the Aussies call "naughty") than ever before. But then I de-rigged the race sail, and switched back to the freeride gear. Not as fast, but nice and relaxing! Fun, fun, fun.

We stopped by at Lazy Beach Brewing on our way home for a beer, and then some food (and more beer) at the Padre Island Burger Company. Finally home, my GPS software confirmed what GPSLogit had said: I had improved my PB for the naughty by almost two knots. Nice! Here are today's GPS tracks:
My runs were about 2 km long, but there's lots of room for longer runs:
Runs to the right of the spoil islands to the bridge would be about 5 km long - all of that in knee-to-hip deep water. Some areas between the spoil islands near the end of my tracks are too shallow, but some other areas deserve exploring.. I see some mud walk in my future.

This place has speed potential! But perhaps the biggest potential is later in the season, when it lives up to it's name: "Grassy Point". In the summer, the water level drops, and lots of see grass grows, to the point where some locals deem it unsailable towards fall. But reading what the Australians think about see grass at spots like Lake George and Liptons/Point Grey/Fangyland, that may just be the perfect recipe for wicked flat water and really fast speeds. Almost makes me want to come back in the summer .. just almost, though. But even now, with very little sea grass, I'd call this spot one of the best spots I have ever sailed. Big thanks to Many Miles Mike for making us check it out!

Tuesday, February 13, 2018

The Disappointment

No, I'm not bitching about the weather in Texas. Sure, it was near freezing yesterday, and about 15ºF colder than on Cape Cod .. but on a couple of days, we'll have 70 degrees here, and Cape Cod will be cold.

This is another GPS post. One about some major frustration - it took me 10 days to get ready to write about hit. This is about the results from a windsurfing test, comparing the USB GPS dongle to the GW-60. Here are the first numbers I looked at (from GPSResults):
The numbers are for 2 seconds, with GW-60 on the left and the dongle on the right. The dongle was 1.45 knots higher than the GW-60 .. very suspicious! A quick look at the tracks showed that the dongle was clearly wrong:
The dongle track is blue, the GW-60 dark green. The dongle has a clear artifact peak at the "top speed" region that is about 5 knots too high!

It did not end there. When I compared the results for the nautical mile, things also looked bad:
Again, the dongle gave substantially higher numbers - about 0.9 knots for the nautical mile!

Why did I suddenly get such bad results, after all my driving tests had indicated that the USB dongle would likely be more accurate than the GW-60?

The first hint came from the tracks that GPSLogit had recorded for the phone GPS. For several runs, the phone GPS tracks (in red below) also showed large artifacts:
The phone had slipped on my armband several times during the session; with the phone and USB dongle pointing down instead of up, and my upper arm and body blocking the GPS signal, the data quality suffered .. a lot. I verified this in the next two sessions, as I reported in my two previous posts. With the phone properly fixed so that it could not slide down, I got much more accurate, artifact-free results in two sessions.

I finally went back and gave the "bad" data a closer lock. The nautical mile results looked suspicious, so I looked at the numbers in GPS Action Replay. First the GW-60:
Next the USB dongle:
Finally, the phone:
All the numbers are very close - within 0.1 knots of each other, and within 0.03 knots between the GW-60 and the USB dongle! An examination of the data showed that, once again, missing data points and GPSResult's approach to "filtering" were the cause. At the beginning of the fastest nautical mile run, the GW-60 skipped quite a number of data points; instead of recording a point every 0.2 seconds, it recorded at irregular intervals for about 50 seconds: mostly one point every second, but also at 0.6, 0.8 second, and 3 second intervals. Here's a screen shot of the track point table from the start of the nautical mile run:
Since GPSResults will generally ignore sections with missing data points, it picked a slower section of the track as the "fastest" nautical mile. So this time, the observed differences in the nautical mile results were due to (a) the GW-60 missing data points, and (b) GPSResults not using this section. The effect was that the top speed for the nautical mile was understated by 0.9 knots because the GW-60 dropped points. The GPS dongle and the phone both gave the more accurate results!

This was quite different to the 2-second results, which are much more prone to distortions from artifacts (this is even more so for the "top speed", which is very often too high by 0.5-1 knots!). Here's a look at the data from the USB dongle in this region:
Note that eight of the ten points have error estimates above 1 knot, and 5 points have error estimates above 1.2 knots. Almost a year ago, when I looked at artifacts in GW-60 tracks, I had come to the conclusion that 2 second results with an average SDoP above 1.4 should not be considered for GW-60 data, since they are quite likely to be highly inaccurate. It is safe to assume that the u-blox GPS chip inside the USB dongle calculates the "+/-" numbers a bit differently than the GPS chip inside the GW-60; it appears that a slightly lower threshold may be necessary. When applying a SDoP filter with a 1.2 knot threshold in GPSResults to the dongle data from this session, the artifact peak is filtered out, and the top speed numbers for the dongle are very close to the GW-60 numbers.

One problem with accuracy filtering is that GPS Action Replay currently does not support it; another issue is that it can easily be turned off in GPSResults. However, there is a simple solution for the USB dongle recording software: it could simply set apply the filter before saving the data to a file, for example by setting the speed in the affected region to 0. The app could then also alert the user about the issue with a message on the screen and audio feedback, which could serve as a little reminder to check if the phone and dongle are positioned correctly. I'll look into this, but first I plan to collect more data with the USB dongle while windsurfing, to see if such a filter would possibly through out "good" data.

Friday, February 9, 2018

More GPS Comparison Data

Below are more results from comparing three GPS devices: the Locosys GW-60 watch, an Android phone (Moto E4) with GPS Logit, and the USB GPS dongle I had been testing. These results are from a Kona One session 2 days ago, as reported by GPSResults:
No surprise for the 2 and 10 second results. All differences for the phone are well within the +/- ranges for the watch, with maximum differences of 0.2 knots for 2 seconds, and 0.09 knots for 10 seconds. Numbers for the phone GPS are similar, but slightly higher. Note that for this session, the GW-60 watch and the GPSLogit data were recorded at 1 Hz, while the USB dongle recorded at 5 Hz.

The results for 500 m are similar, except that the phone GPS now does as well as the dongle. For the nautical mile, the results reported by GPSResults differ a lot for the phone. This is because GPSResults filtered out single data points in the middle of a few one-mile runs:
The sixth point is shown in brackets, meaning GPSResults filtered it. Since the GPSLogit data do not have accuracy estimates, and both acceleration and HDoP around this point is low, we have to assume that GPSResults considers data from 7 GPS satellites as insufficient (unfortunately, the Mac version of GPSResults does not show a setting for minimum number of satellites). Unchecking the "On" checkbox for all filters leads to results that are more similar to the watch and dongle:
However, the last 3 nautical mile runs for the phone show larger differences even without filters. This, however, appears to be an artifact of the analysis: the entire session was only about 20 nautical miles long, with just 12.9 nautical miles at speeds above 12 knots. Looking at the sections in GPS Action Replay shows that the speeds over the aligned nautical mile regions only differ by 0.01-0.05 knots; the reported larger changes are caused by slightly different regions being picked for the different units by the analysis programs. For the GPSLogit tracks, GPSResults was able to "squeeze in" a extra nautical mile run of 13.49 knots, while the same region between previously picked (higher speed) nautical miles was just a tad shorter than 1 nautical mile in the data from the two other devices. For speedsurfing competitions, this kind of artificial difference is entirely irrelevant; it only shows that some care has to be taken when analyzing the data.

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!