Thursday, September 9, 2021

Two days, three foils

The last couple of days were great for foiling. On Tuesday, we got WSW wind with averages between 18 and 23 mph, and gusts to 29. Since strong WSW wind means plenty of chop, I went out on my Slingshot Time Code 68 wing, which is my favorite for playing with swell. I though the swell was rather unorganized, but it was still plenty of fun pinching upwind and writing squiggles into the swell back downwind - here are the GPS tracks:

Our friend Joanie was out, trying to learn winging, and it looked quite hard to stay on the board in the chop. So we figured we'd head to flatter waters the next day, when the forecast predicted more southerly wind in the high teens: Waquoit Bay. The water in "Wacky Bay" is nice and flat since it is protected from the ocean chop:
Here is the speed graph for this session:

Since Wacky Bay has so little chop, the water was warm, and the wind just right, I decided to give winging another try with Nina's 6.0 m wing and the i84 foil on my Stingray 140. I managed to get up onto the foil quite quickly, and then had a 2 minute, 600 meter run where I stayed up on the foil and even managed to go upwind nicely. But it was a lot of work - it seems foiling uses some muscles I never use any other time. It also felt very slow, and the speed graph confirms that my speed mostly remained below 10 knots, which is the slowest I have foiled in a couple of years. By the time I turned around, those newly discovered muscles started to hurt, and I did not have the energy to pump back up onto the foil. This seemed very much like work to me, not like fun, and I decided that winging is definitely not something I want to do.

Once back on shore, I rigged my 5.6 m freestyle sail and moved the foil back a bit, and went out for some windfoiling. Now that was an awful lot of fun! The flat water made jibes super easy, so I pretty much foiled through almost all of my jibes. My typical speed now was around 13-14 knots - about 50% higher than it had been on the wing. But since I was well powered and the chop was almost non-existent, I figured I had to also give my freerace foil a try.

So I went back and switched to my Starboard GT-R plus foil with the 95+ fuselage. I picked the short (75 cm) mast since it was shallow near to shore, and I did not know the water depth in other areas. I also put the cheap phone with speed announcing software on, so that I could hear how fast I was going. Since foiling is so quiet, that works well using the phone speaker, whereas windsurfing usually requires head phones. Right away, I heard 17 and 18 knots - speeds that I often don't reach at all in sessions where I use my Slingshot foils. And I was trying to go slow!

This was an entirely different feeling - whereas the slow freeride foil is pure, relaxing zen, this one was adrenaline! But on the flat water, the foil was quite easy to keep under control. The first big surprise was how easy it was to get going. Even though I need about 12 knots speed to foil stably on the 800 front wing (that's only 40% of the surface area of the i84!), and even though I had used this foil only 3 or 4 times (compared to more than 200 times for the Slingshot foils), it was at least as easy to get going. The next surprise came when I tried jibing the foil, which I had not tried before on the GT-R+. The very first jibe was not just dry, but I kept enough speed to pop right back up onto the foil without pumping - nice! I had entered the jibe quite cautiously, and had set the board down onto the water mid-jibe before switching the feet, but the board seemed to be loosing a lot less speed than I was used to.  

I remained cautious in my jibes for the remainder of the session, and tried out different things that I "learned" to screw up jibes, but the foil seemed to insist that, being a race foil and such, it should keep speed. Looking at the minimum speed in the jibes, I ended up with my second-best ever foil jibe, keeping almost 10 knots speed of my 17 knot entry speed. Here's a boom cam video of this jibe:


Compared to some of my better jibes on the i84 foil, it's really not great - the board makes a lot of contact with the water for a relatively long time, and more than once, but all that barely slows things down. I had read about high aspect foils, and in particular race foils, keeping the speed better in jibes (and lulls), but seeing and feeling it happen was still pretty amazing. The short 75 cm mast worked well enough on the flat water, with only one memorable crash when I tried to push the speed a bit ... with enough success that I could not stop the upward tendency from the higher speed in time, and overfoiled.

Two days of windfoiling, great sessions on three different foils - I think I'll be perfectly fine without winging.

Saturday, July 31, 2021

Silly Ideas

 Today was the day of silly ideas. It started before we even got to the beach, when Jay thought a 3-piece mast might work even better than a 2-piece mast. Silly! At least the water was warm enough for a 30 minute swim back to shore. 

I was barely foiling for 20 minutes when I came up with a silly idea of my own. After seeing Nina winging so nicely in so many sessions, I tried to partially imitate her. A key thing about winging is that the wing is not connected to the board. That can easily be copied with a windsurfing sail:

I forget a couple of little details though - the most important one being the to leashes that wingers use, one for the board and one for the wing. My board instantly realized my mistake, and took off to enjoy its newly found freedom. With a little help from chop and wind, it easily outpaced my tepid attempts of catching it again by swimming "fast". So I turned around and swam back to the rig, so I'd at least have some company. Fortunately, this being a nice summer weekend and all, a couple of motor boats quickly stopped by, after realizing I was not just swimming and waving at them to be friendly. The first one picked up my boat, the second one offered me a beer (just kidding!). Well, the second one asked if I was ok, and what they could do to help. They then drove to the other boat and told them to please, please deliver the board back to me, which they promptly did (big thanks to both boaters!). No major harm done, except perhaps for my ego.

On the way back to the launch, it was time for my foil to join the silly idea club. Apparently, the front wing was getting sick and tired of always being a foot or more under water, and decided to end the continuous drowning. Quite successfully so - after a surprise crash, I saw it happily swimming on top of the water. But I cut its dreams of escaping short by swimming after it, putting it on top of my board, and  stepping on it:
By then, the wind had picked up into the mid-20s, and my 5.0 m sail and Slingshot 84 wing had gotten a bit large, anyway. I actually planed a little bit on the way in - I guess the 90 cm mast is big enough to work as a fin. The foil setup looked a bit sad now:
That was my second Slingshot fuselage that broke. I blamed myself for the first one since I had drilled an extra hole to move the front wing further forward. But this time, the fuselage was not modified, and the screws were still nice and tight. I checked the GoPro video, and there was no obstacle in the water, either. Sure, the Slingshot fuses are relatively cheap, but replacing them on a somewhat regular basis because they break seems like a silly idea - and I've had it with silly ideas right now. I think I'll pay a little extra from more solidly engineered gear from other brands in the future.

Here are the GPS tracks from today's session:





Saturday, July 24, 2021

Foil Jibes, Big Feet, and Forgetfulness

Back in February, I posted about a foil session where I had tons of good foil jibes, thanks to help from Andy Brandt. I should have known that would not last! After all, Andy also taught me how to plane through windsurf jibes ... and then, I had to take another dozen ABK camps where he had to jog my memory how to jibe properly. He was usually able to fix my problems within an hour. But in the weeks and months after a camp, I'd start forgetting, and went back to practicing bad old habits instead.

Windsurfers have to be optimists, so I hoped that this would not repeat itself with foil jibing. But whenever I tried to jibe back home on Cape Cod, a typical result would look like this:

Well, perhaps not always this flashy, but usually wet. Which is a real bummer, since I got that faster foil which really calls for using big cambered sails - sails that I really do not want to waterstart or uphaul all the time!

I was coming close to resigning myself to a lifetime of foil tacks when my endless hours browsing windsurf and windfoil forums paid off. A fellow foiler whom I had met in Corpus Christi posted a picture on Seabreeze that illustrated what had helped him to foil through jibes. The key was to have both feet pointing forward, towards the nose of the board. So a couple of foil sessions ago, when my initial foil attempts had resulted in the usual crashes, I tried his tip. Immediately, my jibes remained dry! They may still have been ugly as hell, with lots of wobbling, but at least I was not falling anymore!

A look at the GoPro footage from the session reveals that the differences in foot orientation were much smaller than I thought. Here's how my feet were placed in the initial crashed jibes:

Note that the back foot is almost perpendicular to the long axis of the board.
For comparison, here's a screen shot from a later (dry) jibe where I tried to have the toes pointing forward:

The difference in foot orientation is much smaller than I thought - maybe a 20 degree difference for both front and back foot. The feet are also closer together in the long direction of the board, as can be seen by looking at the distance from the front heel and the back toes to the black line on the board. This means that smaller steps are required during the foot change. Together, these changes made the "dry rate" in the jibes go from 20% to more than 80%. So far, so good!

Thursday was another great day to work on foil jibes at Kalmus. Just check out the wind graph:

Some Kalmus windsurfers may want to point out that northerly directions are not so great at Kalmus, and use the lulls of 5 mph and gusts up to 25 mph as "proof". But then, neither would they go out in the 10-13 mph averages that we had at the beginning of the session! But northerly wind directions are offshore at Kalmus, meaning the water is very flat. Just perfect for jibe practice! You don't need to be an expert to enjoy the conditions, either - Joanie, who is still a foil beginner, had some very nice long foil rides today with her 5.4 m sail. 
My only goal for today's session was to focus on the foot work in jibes - the initial setup with feet pointing forward, and a smooth(-ish) foot switch. I jibed 15 times in the 2 hour session today. 14 of those jibes were dry, which I am quite happy with. Some where nicer than others; today's GoPro footage was quite useful to get hints about what might cause the problems, and what to try to fix them.

In a few of the uglier jibes, the sail flip felt very unbalanced, and I often had to grab the mast instead of going boom-to-boom. Here's an example screen shot:
That sail has gotten away from me, forcing me to bend over. But why? A look at the board gives a hint: the leeside edge of the board is in the water. That means that the board is carving in the wrong direction! That's clearly visible in the GPS data for this jibe:

During the sail flip, the board turns back by about 15 degrees within one second. That does not really help to complete the jibe! But worse, it puts the sail in a pretty bad position - it's pretty much flagging out to the front of the board. No wonder something felt off!

To understand why this happened, we can look back a bit further in the video:
Check the placement of the old front foot as it is stepping back. The entire foot is on the wrong side of the center line - the lee side. As soon as I lift the old back foot to step forward, this will reverse the carving direction of the board! 
For comparison, here is the foot position at the same point in one of the better jibes of the day:
The new back foot stepped about a couple of inches closer to the old back foot, which makes it straddle the centerline of the board. With weight on the heel of the new back foot, the board will keep turning the right way even as I step forward with the old back foot. Indeed, the GPS tracks for this jibe show that the board kept carving about 10 degrees, from 148 degrees to the wind to 138 degrees. That's 25 degrees better, just because the foot placement is a couple of inches different! With the board continuing to turn the right way, the sail flip on this jibe was easy:

Maybe the jibe was not perfect, but I was able to keep the speed above 7 knots, which let me get right back onto the foil after the sail flip - good enough for me!

So the question arises: how can I make sure that the front foot steps back to exactly the right place? One possible solution would be to put the older carving foot further to the outside of the board, so that there is more space for that big front foot as it steps back. But when I tried this in the past, a new problem occurred: when lifting the old front foot to step back, the board tilted a lot, which often resulted in a crash. That sometimes made for great screen shots, where it look like I'm trying rail rides with a foil - but it did not make for dry jibes. In other tries, I would feel the board starting to tilt when the old front foot started to move, and I'd cut the step short to prevent the board from tilting. That, however, would leave it on the wrong side of the board again! So while the tip to "move the carving foot all the way to the outside" may work for some foilers, it does not work for me.

But let's have another look at the last picture above, where the sail flip worked well enough. You can see that both of my feet are in front of the foot pads - in other words, too far forward. That means that the board will go down and touch the water, and won't start flying again until I moved both feet back again. For the goal of fully foiled jibes without water contact, that's not good enough. It is, however, very typical for my "good" jibes: even in my session in Corpus Christi, where I almost foiled cleanly through many jibes, the board would often touch touch briefly just after the sail flip (or, in sail first jibes, the foot switch).

So I really have two problems, let's call them "wrong side" and "too far forward". My lovely wife never experienced these problems, and I think that's simply because her feet are a lot smaller, so it's much easier to find space on the board. Unfortunately, blaming my big feet does not really help. What might help, however, is stepping heel-to-heel, making sure I feel the foot that moves back actually touch the heel of the old back foot. That would place the back foot a bit further back, and the heel on the correct (windward) side of the centerline. If we now assume a constant size for the step forward, the front foot should also end up a bit further back. That would be progress.

But one of the things that I glossed over somewhat was that in the initial setup, I move the feet closer to each other in relation to the long axis of the board: the back foot goes forward a bit, and the front foot goes back a bit. That allows for smaller front-to-back steps during the foot switch, which in turn leads to a steadier flight. To "undo" this, it may be necessary to modify the foot placement during the switch: the old front foot steps behind the old back foot (but still heel to heel). That should make it easier to keep the old back foot from stepping too far forward, and it also should give the foil a little push up to get flying again, or to keep flying. I can't wait to get back onto the water to try!

Sunday, July 4, 2021

New foils

I's been windy lately - we've been on the water 7 days in a row at the end of June. Perhaps my definition of "windy" has changed a bit since we started foiling, considering that I was on the foil most of the time, and on the slapper only 2 days, plus part of a couple more days. On the days with better forecasts, there were quite a few people at Kalmus. On some of the very hot afternoons, though, the windsurfers often spend their time re-rigging or waiting for more wind, which often showed up late in the afternoon. On the foil, it did not matter much if the wind was 15 or 25 miles per hour - once we made it out, we usually had plenty of fun. 

As long as the wind comes from SW or WSW, flat water is never far away. On one of the windier days, I even managed to get an Egg Island session on the slapper in, together with Jon. I just love going into a jibe  on flat water at full speed:

But whereas most of my turns on the slapper are jibes, I usually tack on the foil. Here's an example in the flat water on the other side of Kalmus, at the Kennedy Slicks:

On the way to and from the slicks, there is usually some fun chop to play with. That's just an incredible amount of fun, even on the big Slingshot Infinity 84 foil:

Here are the GPS tracks from this session:

After a couple of years on Slingshot foils, we wanted to check out new things. Nina had read a lot about higher aspect foils for winging, and Phil from Inland Sea was happy to let her try his Armstrong foil. He knew why! Nina at first had a bit of a hard time to get going, since the foil is quite a bit smaller than the i84 and i99 foils she had used so far. But once up on the foil, she absolutely loved it, so of course she bought one. It certainly did not hurt that the foil weighs less than half of the (significantly cheaper) Slingshot foils, and that the engineering seem much more solid - but the feeling when foiling was the main motivator. Whereas I make tiny little turns down the waves with some power in the sail, she can often be seen riding swell with the wing flagged out, and a big smile on her face, doing full bottom turns and then going back up the same wave - or perhaps the next, since we're talking about Kalmus, after all. Even though more speed was not a goal in this change, she has gotten quite a bit faster. In the past, I could usually pass her easily with my foil (partly because I need a lot more speed so the foil generates enough lift to push all my extra pounds above the water). But now, her speed matches mine, even when she's just winging along, and I try to catch her.

This, of course, created an untenable situation. I needed a faster foil! Never mind that other windfoilers have posted much faster speeds on the foils I have. I tried plenty of times, but for me, going significantly faster than 15 knots on my i84 was a really hard thing to do. My typical cruising speeds were closer to 12 knots. Surely, faster foils would fix the problem!

I got on the North Beach Windsurfing web site and started a chat with Karen and Britt, who not only know a lot more about fast foils, but also sell them. We exchanged some pictures of fuselages to figure out what would work, and I ended up buying a Starboard GT-R Plus foil with a 95+ fuselage, 85 cm mast, and 800 front wing. If arrived quickly, and after some more help from Britt over the phone, I was even able to put it together.

Of course, I had to try the new foil right away, so we went foiling even though the wind looked marginal. I rigged my 7.8 m freerace, 3-cam sail to have a chance to get going. I also put a cheap phone into a waterproof armband and had it announce my speed - after all, I was going to be on a fast foil!

I got the foil out of the water on my very first run. But after about 30 yards on the foil, there was a loud "bang", and I crashed. In less than 15 minutes, and after fewer than 100 attempts to pump up onto the foil without any success, I realized that something must be wrong, and turned the board over. Instead of pointing straight up, the mast of the foil now was tilted at a 30 degree angle. The back screw in the tuttle box had come out! Fortunately, the other screw had held (although I later noticed a pronounced S-turn in it when I disassembled the gear). Back to the beach (slowly!); to the car to get a new screw (a longer one that actually reached the barrel nut this time); and back onto the water. Ah, much better!

Being a rather cautious person with a strong aversion to high-speed catapults, I proceeded to investigate the low-speed potential of my new foil. I pumped a but harder than necessary on my i84, and when I heard "10" (knots) from my phone, I'd step on the tail to pop the foil out of the water. Up I went! And then, I plopped straight back down. I repeated this multiple times, before I finally realized that I needed a speed of about 13 knots before the foil would fly consistently. That actually makes sense - for my i84, I need about 8-9 knots, but the i84 is about 2.5 times larger, and has a much thicker profile. The bigger difference, though, is how to get the foils going. With the i84, I need just a bit of board speed before I step on the tail to pop up, and then accelerate once flying. With the GT-R+, I need to reach about 12 knots before going up. Which, actually, has one big advantage: I get a much better workout!

When powered, the foil made it quite clear that it wants to go fast. Whereas I have to work hard to push the i84 over 15 knots, the GT-R with the 800 front wing definitely wants to go faster. The phone often announced 16 or 17 knots, even though I was doing what I could to slow things down! For a slow learner like me, it will take a bit to get comfortable with higher speeds when foiling with an 85 cm mast in 90+ cm chop. Sure, the GT-R is not nearly as affected by the up-and-down motion that waves and chop create in the water, but it is still affected somewhat

For my 4th session on the GT-R, I finally got some flat water: offshore NE wind at Kalmus! It may have been a bit gusty, with meter readings between 8 and 28 mph, but between the lulls and big gusts, there was a range where it was just real fun to sail along. At least until the next big, fat gust hit, which would want to make the foil come out of the water - either because I tried to sheet out, which takes pressure of the nose, or simply because the foil started going faster, which generates more lift. Interestingly, the rhythm of this setup is very different from the i84 - partly because of the much longer fuselage. That makes the foil less nervous, but it also makes it a bit slower and harder to push the nose down when it wants to come up. I'll definitely need a few more practice sessions before I get used to this!

Despite my general efforts to keep things slow and controlled, I ended up finally going faster than 20 knots on a foil. My 2-second top speed was just below 20 knots, but that's still 2 knots faster than the top speed on the i84, which I got in very flat water (the Kennedy Slicks) on a day with stronger and more consistent wind. That felt just about as fast as doing 35 knots on a slalom board - and definitely faster than the 29 knots I had done a couple of days earlier at Egg Island on my freestyle board. Being a foot or two above the water, with the prospect of a full speed catapult if you let the foil rise just one more foot, must distort the perception! But should I ever get used to this feeling, the setup should be able to go at least 5 or 6 knots faster. And after that, there are smaller front and back wings for even more speed!

For the time being, though, I'll probably grab my Slingshot foil for many of my foil sessions. Slowly playing with chop and swell is plenty of fun, and the shorter 71 cm Slingshot mast works better for sessions near low tide. But it's great to have the option for a very different level of foiling fun!


Friday, May 14, 2021

Exploring Plug and Play GPS Options

 I have spent quite a bit of time exploring different options of "plug and play" GPS loggers, specifically for the GPS Team Challenge (GPSTC). This post is a summary of what I've learned so far about using several different loggers: the original Openlog; the Openlog Artemis from Sparkfun; the Adafruit Clue; and the M5Stack Basic.

1. Openlog and Beitian BN880

The two units on the left side of the picture above are my "old", GPSTC-approved prototypes that are based on Beitian GPS and Openlog chips. Here's a closer look at the lower one:


The Openlog is a little chip with an SD card that's widely used for logging GPS data from drones; it's on the right side in the image above. Openlogs are available for about $15 from Sparkfun, and about $5 on eBay (but beware - some of the cheap modules do not work as shipped!). I used it with a Beitian BN880 GPS chip (about $20 on Amazon) to create a prototype logger that has been approved for GPSTC postings. My prototype did not qualify as "plug and play", because it involved it required some soldering between the logger and the GPS chip, and to connect a battery (like the 400 mAh LiPo battery shown above) to power everything. Some of this soldering could be avoided by using a Sparkfun Openlog with headers, and a BN880 GPS chip that comes with cables. But you'd still need to connect everything to a battery, which would typically require soldering. 

A second issue with this approach is that you need to change the configuration of the GPS chip for GPSTC postings. By default, the GPS chips provide updates once per second (at 1 Hz), and in a text format (NMEA sentences). But the text format does not provide speed accuracy information that is required for GPSTC postings, and higher data rates give more accurate speeds. Therefore, the GPSTC requires that data are logged in a binary format (the UBX format in this case), and are recorded at 5 Hz or higher.

This is easy enough to change using the Windows program "U-center". But it requires hooking up the GPS chip to a computer using a serial-to-USB converter, which adds another level of complexity; and a bit of learning how to change the required settings in U-center.

If you know how to use a soldering iron, and don't mind spending a couple of hours to hook up everything and learn how to use U-center, this is a perfectly good option to create a GPS logger for about $50. But since soldering is required, it does not qualify as "plug and play".

2. Sparkfun Openlog Artemis and Sparkfun Quiic GPS 

A couple of newer products from Sparkfun offer a way to get around around the soldering requirement: the Openlog Artemis (OLA), and GPS chips that use the Quiic connector and a u-blox chip. In this setup, the logger and the GPS chip are connected using a cable. The OLA can be powered with a LiPo battery or a USB power pack, so no soldering is required. 

Bottom view of the OLA-M8 GPS, showing the OLA

Top view of the OLA-M8, showing the SAM-M8 GPS chip

 I have tested this setup with three different GPS chips: the SAM-M8Q ($40), the NEO-M9N with a chip antenna ($70), and the NEO-M9N with a U.FL connector ($65) and an external active antenna ($15). The chip antenna was to weak to give decent data, so I returned the chip right away, but the two other chips worked ok. For using the SAM-M8Q, I had to modify the OLA firmware, since the GNSS logging firmware from Sparkfun only supports the newer chips. However, installing new firmware on the OLA is very easy.

The one caveat with the OLA-Quiic GPS setup is that reliable communication requires a small change on the GPS chip: the "jumper" for the I2C communication needs to be scratched out. This is quite easy, takes just a minute or two, and there is a video tutorial on the Sparkfun site. Without this small modification, the data can be corrupted, which leads to lost data points due to checksum errors. 

The more expensive NEO-M9 GPS chips theoretically have several advantages over the older M8 GPS chips, which include the option to use 4 GNSS systems at the same time (vs. 3 for the M8), and faster data rates of up to 25 Hz. In reality, however, I discovered that the M9 chip reduces the maximum number of satellites used to 16 when logging at 10 Hz or above. This reduces the advantage of the extra GNSS system significantly, to a point where it is questionable that the data from the M9 chips is indeed "better" than data from M8 chips.

Compared to the first solution (Openlog and Beitian GPS), the OLA approach is significantly more expensive. If you include the cost for a battery (about $10), the total cost is about $100 with a M8 chip, and about $130 for the M9 chip. 

The green boards in the OLA setup are 4 cm x 8 cm, a size that fits into a waterproof housing for a GoPro 3 which is available for about $10 on Amazon, and can easily be attached to a windsurf helmet.

3. Adafruit Clue and Sparkfun Quiic GPS

While searching for other GPS chips that also use Sparkfun's Quiic cable system, I discovered the Adafruit Clue.  At $40, it's a bit cheaper than he Openlog Artemis. It does not have a built-in SD card for logging, but it does have a display that seems just large enough for reading speeds while windsurfing.  For initial tests, the Clue offers 2 MB of internal flash storage that can be used to store GPS data, but that's only enough for at most one hour at 5 Hz.

Another thing about the Clue that I found attractive is that it can be programmed using Python, a programming language that is much more modern (and popular) than the C / C++ language used for the OLA. After developing software in Java for the last couple of decades, going back to C / C++ is quite painful, so Adafruit's "CircuitPython" looked quite tempting.

The language change turned out not quite as easy as I had hoped. While there are plenty of things in Python that I love, I have gotten used to seeing any typing and syntax errors right away while I type, and to access the source code for any library classes with a single keystroke. That's not possible in Python, which assumes "if you type something I have not seen before, you probably mean it", and reveals errors much later, when the mistyped piece of code actually runs. Documentation is a very different thing, too. The first issue is that Python has changed a lot of time, so you often see "do this in Python < 3, but this in Python 3.0-3.5, and that in the newest versions". To this, we need to add that CircuitPython is a variation of MicroPython, which itself is a "dialect" of Python; and that error message you get during runtime are often quite misleading. All that means that little things that should have taken just 15 minutes often took many hours. But eventually, I had some Python scripts that received the data from the GPS, logged them, and showed speeds on he screen.

For windsurfing use, though, being able to log sessions longer than one hour is essential, and that's where things got difficult. Staying with the "plug and play" theme, I wanted to use a variation of the Openlog that has a Quiic connector, which is advertised as "the smarter and better looking cousin to the extremely popular OpenLog". Sounds fantastic! Well, I should have known better than to believe the marketing guys...

The first issue I encountered was that I2C communication, which the Quiic connectors use, is very different from serial communication. Think of serial communication as a TV that's alway on, blaring away in the background. The original Openlog is then a voice recorder that will record the noise from the TV as soon as it is turned on.

In contrast, I2C communication is more like Siri or Alexa: it will sit around, patiently waiting until you ask it a direct question. Without a direct question, it won't say a word - the "mute" button stays pressed. So instead of just connecting a few pins, the software on the Clue actually needs to tell the Quiic Openlog "now save these data, please".

That's not really hard, once you understand the difference, and I had the Quiic Openlog recording data from the GPS through the Adafruit Clue quickly. But reading these data was an entirely different issue: files always were a lot shorter than expected, and data were corrupted. A few hours of detective work traces the cause down to the firmware in the Quiic Openlog (QO). Whenever the QO got a "packet" of data, it would know the length of the data, but nevertheless determine the length of the data again, using the "good old" strlen function in C. Anyone who ever did a bit of programming in C know will know what the issue with logging binary data is: strlen searches for the first "0", which is used in C to mark the end of a string. But binary data often contain "0", which does not mean "end"! 

Fixing this in the QO firmware was a trivial thing, even for someone who has a strong dislike of C. But updating the firmware on the Quiic Openlog chip was a very different story, since that has to be done through a serial-to-USB converter connected to some holes on the QO. I still had one of those lying around, but all attempts to "burn" the firmware failed. Since I can be stubborn, I eventually succeeded, after soldering pins to the UART holes, and connecting the Quiic cable to supply power. After that, I was finally able to log GPS data to a file on the micro SD card.

But obviously, this is no longer a plug-and-play solution, so I looked for alternatives. The Adafruit Clue follows ideas from the micro:bit board, so theoretically, it allows making electric connections with screws. And windsurfers know how to screw, from plenty of training with fin, even before foils with their screw multitude became popular. 

In comes the gator:log: another version of the Openlog, this one with micro:bit-like holes. A quick look at the diagram seemed to indicate that the holes would like up, and a "Clue-gatorlog-screw" solution might be possible. Alas, that was too optimistic. In their wisdom, Adafruit decided that having vary the distance between the holes in the Clue, so that only 3 of the necessary 4 holes line up. Arrgghh! But it turned out that if you tweak things a bit, you can get everything screwed together. Here's a closer look:

Adafruit Clue - M9 - Gator:log

When I tested it, this setup worked .. mostly. About every 10-15 minutes, there would be a gap in the data, with 3-4 missing points (and that was after I fixed the code so that it would not just stop due to garbage collection issues - but that's a story for another time). Even worse, I sometimes got obscure errors in the I2C communication. It seems that the I2C bus sometimes requires pullup resistors to work well. The "sometimes" depends on factors like cable lengths, how the port on the chip is wired, and which other thingies are on the I2C bus. In the picture above, you may notice the black chip in the middle. That's an I2C switch, intended to turn off the GPS when not logging. But when I connected this switch, the I2C communication became really unreliable, to the point were it was definitely useless. Perhaps all this could be fixed by soldering in a couple of resistors - but that's not plug and play anymore.

After two close misses, it was time to look against something else. Ideally, something with a screen, an SD card slot, a battery, and USB and I2C cable connections. Surely, such a thing must already exist?

4. M5Stack

My countless hours of searching Amazon, Google, Sparkfun, and Adafruit for new gadgets seemed to come to fruition when I discovered the M5Stack: a 5 x 5 cm thingies with a powerful microprocessor, LED screen, SD card, I2C and USB cable connectors, and plenty of connection options - all for less than $40, and in little housing that almost looks like a Motion or GW-52 GPS. Too good to be true?

Perhaps. I certainly ran into quite a few problems. The first one was that the built-in battery did not work for more than a few minutes at first, and then gave up completely. Since the battery was very small, and one with 5x more capacity was available for less than $10, I ordered that one ... only to find out that it was not the battery, but rather the internal wiring that was broken. Bummer, but not a killer - everything works fine when hooking up a USB battery pack.

The only issue when hooking up USB was that the M5stack would issue a very annoying, high-pitched squeak. That's a known issue that M5 just never bothered to fix. Turning the amplifier down helped only a little, so I ended up simple removing the speaker.

The next issue was trying to get the Sparkfun I2C chips to work with the M5. In comparison, the Adafruit Clue was (a) easier and (b) better. Easier because the Python documentation for the M5stack is very poor (to phrase that as positively as I can ... don't ask me after I've had a few beers, or I will use very different words!). The Clue was better because I could at get hour-long and longer recordings that were mostly complete most of the time. With the M5stack, I'd get some communication between the GPS and the board sometimes

I had also ordered another "module" for the M5stack that promised to allow the use of USB peripherals. That would have been a very neat way to use a cheap M8-based USB GPS chip. Alas, once I got the module and spent a few hours looking for documentation, I realized that M5 provided absolutely no Python support for the module. Seems they are so busy coming up with multiple different versions in different sizes that they don't have time to provide decent software support (or even just organized documentation).

After quite a few frustrating hours, I finally remembered that I had some more Beitian BN880 GPS chips lying around, and matching cables that just might be useable with the pins that the M5stack has at the bottom. Finally, something worked! Here's a closeup:

No soldering, so it qualified as plug-and-play. Now, the lack of a working battery in the M5stack ended up not being a problem anymore, since I used a flat USB power pack and some velcro to put everything together (check the first picture in this post). 

I have tried the M5stack-BN880 and the OLA-M8 combo a few times on the water windsurfing and foiling, and the results were just as expected: very close to the results I get with my "approved" prototypes or Motion GPS units, all of which use very similar GPS chips. Here's a short section from a recent windsurfing session:

Speeds are very similar. The "noise" does not align well mostly because I had the Motion and the M5 on different arms, and the OLA on top of my helmet. When recording at 5 Hz or higher, we can actually see different movements of different body parts in the GPS tracks. The error estimates (lower panel) are slightly lower for the OLA-SAM M8, which reflects that the GPS on top of the helmet had the clearest view of the GPS satellites, without the signal distortions from head and body that the GPS units on the arms had. After several sessions with similar results, there is no doubt that the two "plug and play" GPS units based on the Openlog Artemis with the Sparkfun SAM-M8 GPS and the M5stack with the Beitian BN880 are suitable for competitions like the GPS Team Challenge, since the quality of the data they produce is at least comparable to the quality from other approved and currently commercially available units.









Sunday, April 18, 2021

Measuring GPS Speed Accuracy

 How do you know how accurate your GPS is? This question once again came up when I started looking into a "plug and play" GPS. Unfortunately, there's no simple answer to this question, so there will be a few posts looking at different aspects.

In search of the answer, the first thing to try is to use two GPS units right next to each other, and compare their speeds. Here is an example where I compared two Motion GPS units in a driving test:

The speeds from one unit are drawn in red, the speeds from the other unit in blue. A lot of times, the speeds are so close that only one color is visible. Here's a zoom-in:
In the selected 10 second region (highlighted in yellow), the two GPS units gave almost identical speeds. For individual points, the speed differences were mostly below 0.1 knots; over the 10-second region, the average speeds were 13.482 and 13.486 knots. That's a rather small difference of 0.004 knots!

But the graph shows that this is not always the case. If we look at the region to the right, the observed differences get much larger:
Here, one GPS reports a 10-second average speed of 19.926 knots, while the other GPS reports 19.664 knots - a difference of 0.262 knots. In the context of a speed competition like the GPS Team Challenge, that's a pretty large difference. One interesting thing to note is that the speeds some times deviate significantly for more than a second; the dip in the red track in the picture above, for example, is about 3 seconds long. This is non-random error: in the 10 Hz data for the graph above, the "dip" extends over almost 30 points, which we'd expect to happen once every billion points by chance. We'll get back to this when we look at estimating the likely error of speed results.

The most straightforward way to compare different GPS units is to compare the results in different top speed categories. Here's a look at some of these, generated using the "Compare files" function in GPS Speedreader:
The table shows the speed results for the two devices, as well as the "two sigma" error estimates in the "+/-" column. The calculation of the result error estimates assumes that the errors are random, so that they would cancel each other out more and more when we look at more points: longer times or longer distances. This leads to higher error estimates for the 2 second results, roughly 2-fold lower estimates for the 10 second results, and very low estimates for the nautical mile (1852 m) and the 1 hour results. About 95 out of 100 times, we expect the "true" speed to be within the range defined by the +/- numbers. Most of the time, we expect the ranges of the two devices to overlap. Only about 1 in 10,000 results would be expect random errors to cause the results to be so different that the ranges do not overlap - which GPS Speedreader highlights by using a red background.

But the table shows that 5 of the 14 results are more different than expected. 5 out of 14, not one in ten thousand! There are three possible (and not mutually exclusive) explanations for this:
  1. One (or both) of the GPS units is not working correctly.
  2. The error in not random, so that the conclusions based on assuming random error are incorrect.
  3. The single-point error estimates that the GPS gives are too optimistic.
Let's have one more look at the data, and this time, include a graph of the single-point error estimates:

We can see that the point error estimates in the regions where the curves diverge are larger, which is a good sign. But do they increase enough? And is the difference that we see due to one GPS being "wrong", or do both of them disagree, and the truth lies somewhere in the middle? To answer these questions, we need more data.

Fortunately, this was a driving test, so getting more data was easy: just put more GPS units on the dash board! So I added a few more: a couple of Locosys units (a GW-52 and a GW-60), a couple of u-blox prototypes that have been approved for use in the GPS Team challenge (a BN880 and a BN280, both Openlog-based), and my current u-blox Neo-M9/Openlog Artemis prototype. That makes a total of 7 GPS units: two with a Locosys Sirf-type GPS unit, and five with a u-blox based design. All units were set to log at 5 Hz for this drive. Here's an overview:
What is immediately apparent is that the error estimates differ a lot more than the speed estimates. In particular, the error estimates from the Locosys units, shown in purple and green, are much higher than the u-blox estimates, except when the car was stationary.

Here is a zoom-in picture:

Most of the GPS units are pretty close together for most of the time, but several units stick out a bit by showing larger and more frequent deviations. But just like in the first and second picture in this post, the details vary quite a bit between different sections of the drive.

So we're back at the question: how can we quantify the error of each of the units, using all the information in the tracks, instead of limiting us to just a few top speeds? 

Along the same lines, what can we learn about the point error estimates ("Speed Dilution of Precision", or SDoP, in Locosys parlance, and "speed accuracy", or sAcc, in u-blox parlance)?

I'll start looking at answers to these questions in my next post.

Wednesday, April 7, 2021

The Milk Jug Experiment

 My last post ended with this graph:

Before I tell you what I did to generate it, let's first look at the "why". Here's a short section from a recent windsurfing session that illustrates the problem:
I compared three different GPS units in this test. At the highlighted section, the three GPS units disagree from each other by roughly 0.5 knots for a few points in a row. Areas like this are easy to find in many GPS traces - but what causes them? The GPS units can be much more accurate that this, as stationary tests show, where typical errors are about 10-fold lower. 

One potential cause of the larger errors are short-term changes in the satellite signals received by the GPS; specifically, changes in the signal and/or noise for one or more satellites, and in which satellites the GPS uses to compute speed and position. So the experiment was to induce controlled changes, without moving the GPS, and see what effect they had on the observed error (the speed, since the GPS was stationary) and the error estimates given by the GPS.

To disturb the signal, I took a one gallon milk jug and filled it with water. I then moved it around the GPS and on top of the GPS, keeping a distance of at least a few centimeters, for about 30 seconds. I did that twice, with 30 second control periods where I kept the jug away before, in between, and after. The periods where I moved the jug around the GPS are highlighted in the first graph.

The speeds that were reported by the GPS because of the distorted satellite signal were around 0.5 knots multiple times, and near 0.8-0.9 knots a few times.  I was a little surprised to see such "speeds" just because the signal was partially blocked - after all, the GPS should still have been able to get a perfectly clean signal from most of the 20-25 satellites it was tracking. But apparently, having just a few signals removed or distorted is sufficient to cause errors in the range that we can often see in windsurf tracks.

Now I don't usually windsurf closely to people waving milk jugs, but it's just an example of a sudden change in the satellite signal cause by external factors. During windsurfing, that could be something as simple as changing the position of the arm that the GPS is on, or the body position, so that a different part of the sky is blocked by the arm or the body. The more things move around, the more likely that is to happen - and if you don't have the luxury of windsurfing at a flat spot like Lake George or La Franqui, chop might just do the moving for you.

In a similar experiment, I looked at what happened when moving the GPS up and down rapidly, and the results looked similar, even when looking at directional speeds (velN and velE). But my lovely wife pointed out that I could not really be sure that I was moving the GPS straight up and down, without side-to-side movement, so this experiment would need to be repeated in a more controlled fashion. For now, I'll just say that it is possible that rapid up-down movements of the GPS, which are typical when sailing in small to medium chop, might also have an effect on GPS accuracy.

One interesting question arises when comparing the results from different GPS units that are very close together, and technically identical (or very similar). They both should "see" the same distorted signal, so why would the not compute exactly the same result?

Rather than answering this question directly, or speculating about why this may not be the case, I'll show a graph from a stationary experiment where I had two identical units positioned very close to each other, with a clear view of the sky:
One interesting result shown in the table above is in the "sats" column, which shows how many satellites each unit tracked. Since the units were very close to each other and technically identical, it is reasonable to expect that they would use exactly the same satellites. But at the start of the highlighted region, one GPS used 17 satellites, while the other used 20 - that's a pretty substantial difference! Here is a graph of the satellites tracked by the two Motion units over a time of about 1000 seconds (starting a few minutes into the test, after both units showed the same number of satellites):
For large parts of the tests, the two GPS units differed in how many satellites they used - which means that blockage or distortions of one or a few satellites could affect the two units differently, thus possibly leading to comparatively large discrepancies in the results.

How does all this relate to speedsurfing, you might ask? The blocking experiment is an example of non-random noise in the data. If you look back at the first graph, you may notice that the error estimates increase much less than the speeds. This means that there are multiple regions where the error estimates are significantly lower than the observed errors for more than 10 points in a row - here is an example:

Statistically, we would expect to see some points where the speed is higher than the error estimates, but we should practically never see this many points where the error is larger than the error estimate in a row - if the error is random. But if the error is not random, then we can not use Gaussian error propagation, which makes collecting at high data rates entirely pointless.


Sunday, April 4, 2021

GPS Noise and Data Rates

I'm noise sensitive, so perhaps it is quite fitting that I spent some time looking at "noise" in GPS units, and the relation between noise and data rates. Between the relatively cold water around Cape Cod and Cape Cod's dubious distinction to be the hot spot for the Brazilian P.1 variant of the COVID virus, on-the-water testing will have to wait a while. So the tests I report here are all stationary tests.

One big advantage about stationary tests is that we know exactly what speed the GPS should report: 0.00. Everything else is an error. As Tom Chalko did with Locosys GPS units many years ago, we can use this to learn about the error characteristics of GPS chips. There's one little caveat about the directionality of speed in speedsurfing, and the non-directionality of measured speed when the actual speed is 0, but we can ignore this for now.

For this series of tests, I am using a Sparkfun Neo M9N GPS chip with an active ceramic antenna (25 x 25 x 2 mm from Geekstory on Amazon). I'm logging either via USB to the a Surface computer, or with the Openlog Artemis I described in my last post. Compared to the M9 chip with the onboard chip antenna I used before, the current combo gets a lot better reception.

Let's start with an utterly boring test, where the GPS had a perfect, unobstructed view of the sky on a sunny day (the GPS was on top of the roof rack on our high roof Nissan NV van):

At the beginning, there's a little bit of speed when I switched the GPS on, and moved it to the top of the van. I had used the GPS just a few minutes earlier, so this was a "hot start" where the GPS very quickly found more than 20 satellites. After that, it recorded a speed close to zero (the graph on top), with an error estimate around 0.3 knots (the lower graph).

Let's switch to a more interesting example. The next test was done inside, over a period of almost 2 hours. The GPS was positioned right next to a wide glass door, so it had a clear view in one direction. Here's the graph:

At three different times, the GPS recorded speeds of more than 1 knot, even though it was not moving at all. With a typical estimated accuracy of about +/- 0.5 knots for each point, that number is actually a bit lower than expected. But what raises some red flags is that each point with a speed above one knot is closely surrounded by several other points that are also much higher than average. This is reflected in the top speeds averaged over 2 and 10 seconds: 0.479 knots and 0.289 knots. In fact, all top 5 speeds over 10 seconds are near or above 0.2 knots.

Let's look at one more test run - this one done at 8 Hz overnight, for about 10 hours:
The GPS was at exactly the same spot for this test. The overall results is similar, with a bunch of spikes between 0.5 and 0.9 knots. The top results for 2 second and 10 second averages are a bit lower, but we still see a couple of 10 second "speeds" of 0.2 knots.

Now wait a minute - I just said that the recording at the 3-fold lower data rate that covered a 5-fold longer observation period had lower observed errors. That is exactly the opposite of what we would expect! At first glance, the errors appear random, or at least mostly random. For random errors, statistic tells us that if we measure more often, the measured error will go down. Going from 25 samples per second down to 8 samples per second should reduce the observed error by about 77% - but that's not what we see!

The explanation for what we see is that the error is not entirely random - in fact, it has a substantial non-random element. That's quite obvious in the 25 Hz graph, where we can see a wave pattern in the error estimates, and clusterings of high speed points when the "error wave" is higher.

To have a closer look at the (non-)randomness of the observed errors, I copied the data from GPS Speedreader into a spreadsheet program, and then shuffled the observed speeds randomly. Next, I looked at all 2 second periods in the shuffled data, and compared the results to the results from the original data set. With completely random data, shuffling should not have an effect - we'd see the same top speeds. But if the original reported speeds (= errors) were not randomly distributed, we should see a difference. Here's a screen shot that shows the results for a test recorded at 18 Hz:


The average 2 second speed is 0.062 knots for the original and the 4 different shuffle tests, as expected. But in the shuffled sets, the maximum observed 2-second speed was between 0.093 and 0.097 knots - more than 3-times lower than in the original data set. Essentially, this proves that the error in the data set was not randomly distributed.

For comparison, here is the same analysis for a test recorded at 5 Hz:

For the 5 Hz data, we also observe a difference, but it is much smaller: the original data had a 2-second maximum that was about 50% higher than the shuffled data sets.

In my next post, I'll look into what's behind the non-randomness of the error. However, I'll leave you with a little puzzle and show the results of one of the tests I did:

Can you figure out what I did here? Here are a few hints: it involved a gallon plastic jug filled with water, and the numbers 2, 3, 5, and 30. Good luck, Sherlock!

Sunday, March 21, 2021

Olapap: Why We Need Ceramic Antennas

 This is a post about the Olapap GPS, a "plug and play" GPS logger put together with the Openlog Artemis (OLA), u-blox GPS chips, and a couple of cables. I'm sharing some windsurf test results that I have obtained with the "SparkFun GPS Breakout - NEO-M9N, Chip Antenna" board. This board has a powerful GPS chip (the M9), but a GPS antenna that is quite weak - similar to antennas used in phones.

I compared the "Olapa M9 chip" GPS to three other GPS devices that have been approved for use in the GPS Team Challenge:

  1. A Motion GPS (the original one with a screen), worn on my upper right arm.
  2. An Openlog prototype that uses the Beitian BN880 chip, worn on top of my helmet in a GoPro housing.
  3. Another Openlog Prototype that uses the (discontinued) Beitian BN280 chip, worn in a waterproof armband on my left arm

The Olapap GPS was in the same armband as the BN280 GPS, slightly above it. Both of these prototypes were in separate ziplock bags, in case the armband developed a leak. 

Here's a screenshot from a GPS Speedreader comparison of the top speeds for the 4 units:

If you look at the top row that shows the fastest speed over 2 seconds, you see that the three approved GPS devices all show 31.3 knots; they differ only in the second digit after the period. But the Olapap M9 chip GPS (in the last set of columns) shows a top speed of only 30.487 knots - almost a knot slower than the others! Furthermore, the M9 chip GPS also reports the highest error estimates in the "+/-" column: 0.85 knots, compared to 0.139 knots to 0.239 knots for the other units.

Let's have a look at the speed graph here:
The curves for the three approved devices (in blue, red, and green) are all close together, with just small point-to-point variations that look random. But curve for the M9 chip GPS (in magenta) looks quite different, sometimes being lower and at other times being higher than the approved GPS units.

When we look at the data points for this section, we can identify a likely cause of the problem:


The columns with the rectangles show the number of satellites that the GPS units used: about 18 for the Motion, 24 for the GPS on top of the helmet, 20 for the BN280, and only 12 for the M9 chip GPS (which was very close to the BN280, in the same armband).

The differences between the first 3 GPS units are primarily due to the GPS position: the unit on the head had the clearest view of the sky, and was able to use 4-6 more satellites than the units worn on the arm. The lower number of satellites for the M9 chip unit is due to the smaller, weaker antenna. I did a number of tests where I looked at the signal-to-noise ratios for the satellites in the Ucenter software, and the values for the M9 chip antenna were always significantly worse than for other GPS units. No real surprise here - it is common knowledge that larger ceramic antennas provide superior GPS reception.

The end result of this test is that the NEO-M9 board with the chip antenna does not provide data that are of adequate quality for speedsurfing. Since there is no easy way to replace the antenna, I returned the chip to Amazon. I have started looking at the Sparkfun SAM-M8 chip that has an older (M8) GPS chip, but a larger and more sensitive antenna, and will probably add other M9 chips with external antennas in the future. The initial M8 results look promising, but more test sessions on the water are needed. I'll post results here when I get them.


Saturday, March 20, 2021

The Olapap GPS


 This is a geeky post about making a GPS. I think it might be of interest to about five windsurfers in the world. If you're not one of them, I suggest you find something else to read. If you are not curious about what the picture shows, you are definitely not one of them!

Why make another GPS?

That's a good question. The short answer is that it is very hard to get a good GPS for speedsurfing competition - specifically, for the GPS Team Challenge (GPSTC). There are currently two GPS devices you can buy that are approved for the GPSTC. The first one is a watch: the Locosys GW60. Unfortunately, it has a few annoying habits, like wrist bands that just fall apart without any warning; buttons that you should NEVER press when the watch or your fingers are wet; and batteries that die if you don't use the watch for a while, and that require advanced soldering skills of you want to replace them. 

The second one is the "Motion Mini" logger. It's a fantastic little device, but very hard to get. Some people have waited many months to get their order, which is hand-assembled by one guy who can't keep up with the demand. He's also loosing money on his quest to provide a great GPS, so we don't know how long he'll be able to keep making the Mini Motions.

The question about alternatives comes up on a very regular basis on the Australian speedsurfing forum. Unfortunately, many GPS watches out there work well enough most of the time, but don't provide any accuracy estimates that allow software to automatically identify artifacts. Within the context of a competition where about 500 results determine the ranking every month, that's not good enough.

I have written about making a simple little GPS logger with a u-blox GPS chip, an Openlog datalogger, and a couple of other bits and pieces in the past. While this thing was easy enough to build, and is at least as accurate as "approved" devices, it requires some soldering - which means most windsurfers won't even consider making one. But what if we can make a good GPS buy just buying parts and putting them together with a cable or two? That seems to be possible now!

Olapap GPS? Really?

Well, I had to give the thing a name, right? After many hours of searching copyright databases (just kidding!), I based the name on a critical component and the basic idea behind it. "Ola" stands for "OpenLog Artemis", the data logger part of the device. "PAP" stands for "Plug And Play" - no soldering! 

Parts needed

The Olapap GPS logger requires exactly three parts and one cable.

1. The Openlog Artemis from Sparkfun ($50). This is a nifty little data logger, nicknamed "OLA",  that can write to a micro SD card. It's similar to the Openlog I have used in my previous prototypes, but with two major difference: a much more powerful processor, and a "Quiic" connector to hook up a GPS chip. The Artemis processor on the chip is much faster than the one used by the old Openlog, and has several hundred times more memory. No more trying to optimize every single byte of memory and every CPU cycle! Sparkfun show the device on backorder right now, but you can probably find one on Amazon or your favorite electronics supplier.

2. A u-blox GPS chip with a Quiic connector from Sparkfun ($40 - $70). The u-blox chips are the only generally available GPS chips that (a) use Doppler for speed calculations, and (b) provide estimates of the speed accuracy based on the quality of the GPS signals received. We need one with the Quiic connector so that we can hook it up to the OLA, and Sparkfun offers a bunch of different types. So far, I've used two of them:

- The SAM-M8Q board ($40). This is an older (8th) generation GPS chip with a ceramic antenna that seems adequate. It is what I am currently using.

- The NEO-M9N board with a chip antenna ($70). This is a newer (9th) generation GPS chip that offers a higher data rate and use of the Chinese BeiDou satellite system, two functions that could lead to more accurate speed data. However, the chip antenna on this board is very small and inferior to the ceramic antennas that are typically used. In my tests, the reception quality of the antenna was so poor that the speed data were inaccurate. If you want to use an M9 chip, I strongly suggest that you get a NEO-M9 board with an antenna connector instead - either the Sparkfun board with the U.FL connector (which is a bit tricky to use!) or the Sparkfun board with the larger SMA connector

3. A battery. I am using a 1 Ah Lithium Ion battery from Sparkfun, but a smaller or larger battery should also work. If you order a battery from a different supplier, make sure that is has the correct polarity - some have the cables connected the other way around, which will kill your electronics!

4. A Quiic cable to connect the OLA and the GPS chip. I got a set of cables from Amazon.

5. A micro SD card (32 GB or less). Make sure to get a class 10 or better card!

6. A USB type C cable.

Getting started

Connect the pieces together (check the hookup guide at the Sparkfun site), press the reset button on the OLA - and voila, you start logging GPS data! But we're quite there yet, since the data will be logged as text files, with some of the essential data points missing. We need binary data (".ubx" files)!

Fortunately, the Sparkfun tutorial provides a link to a firmware specifically for GPS logging. Updating the firmware is pretty easy with the Sparkfun firmware update application. If you are using an M9 logger, you're all set to create .ubx files with the required "NAV-PVT" sentences. You just need to edit a settings file on the micro SD card that the OLA creates the first time it starts after installing the GNSS firmware to increase the logging rate to 5 Hz (or higher).

If you're using an M8 chip, though, you are a bit out of luck. The GNSS firmware only works with the newer M9 chips, not with the SAM-M8 chip I listed above. But the firmware is open source, so modifying it is straightforward. Well, at least if you know how to program in C/C++ and know your way around Arduinos. I've done both in the past, but rarely and reluctantly, so it took me quite a few hours to get things to work properly. The current version of my modified GNSS firmware is not pretty, but at least is works with the SAM-M8 chip. 

The next steps will be some more on-the-water testing of the prototype to see if the accuracy is adequate, and perhaps some testing with an M9-based GPS chip and an external antenna. If the results are positive, I'll clean up the modifications I made a bit and post the firmware so that anyone else interested can download and use it.