Mr. Gibbs 2.0 Hitting the Water

2016-04-21 at 01:30

Well I finally hit my 2.0 milestone, It's a good thing I started my updates in January! After our national regatta in September I took a break for a while. It seemed pointless to do any work on it knowing that winter was coming and I wouldn't be able to test anything until spring. Thankfully in January I got the itch and started working again, and thinking back now I've worked pretty solidly on it since then. I never would have gotten as much done this year had I waited until sailing season started, some of these changes took far longer than I anticipated.

The biggest, most obvious enhancement to the system since last year is the addition of the "crows nest" aka the wind speed/direction sensor which communicates to Mr. Gibbs via bluetooth low energy.

It's not all that impressive to look at now, but the software changes to make it work were substantial both by me, as well as the contributors on BlueZ. 1.0 used BlueZ 4 and had some more minor shortcomings (such as the fact that you had to plug in a monitor and pair the pebble yourself) and some larger shortcomings such as the lack of functional bluetooth low energy support. I won't re-hash all the steps it took to get it working here (indeed, the majority of my blog posts explain this in detail) but suffice to say it was non-trivial. With the new wind vane I have access to a ton of new measured and calculated values which will be great fun to play with this season.

Apparent Wind Speed

Apparent Wind Direction

Mast Heel

Mast Pitch

True Wind Speed

True Wind Direction

Mast Bend Port/Starboard

Mast Bend Fore/Aft

Nominal Speed (for current wind)

Nominal Speed %

With all this new data it became apparent I was going to want something a little more sophisticated than flat files for logging. For now I am using SQLite and each day the system creates a new .db file and recreates the necessary tables.

To facilitate post-race analysis of all this data I have begun a new browser based implementation of VisualSail, though that is not complete yet for 2.0.

Your browser does not support the video tag.

In addition, I now have a solid platform on which to build sensors and accessories of all shapes and sizes that utilize either standard bluetooth or low energy protocols. Right off the top of my head I know that the next two devices will be a "big display" (the most common request from people who are unsure of the wrist watch idea and accustomed to the existing commercial offerings), and a low energy load cell to measure rig tension.

The pebble plugin also got a lot of work. It now should work with all models of pebble, I spent a lot of time re-working the app-installation procedure to make it play nice with 3.x.

The system overall is far smoother to use since all pairing and connection happens automatically on startup. The hardware is smaller, more durable, cheaper, and more energy efficient, it's amazing the difference even 1 year makes in the hobbyist electronics world! Lastly it's now made with printed PCBs which yields a much cleaner final product.

The immediate next step is obvious, I'm going sailing this weekend at our first regatta of the year, so no doubt this weekend will yield bugs, ideas, or a bunch of frustration. I expect 2.0.x releases to happen for a couple months now as I patch up issues I discover on the water and refine things. In the coming month or so I also plan to release a pre-made raspbian image which will have all my hackings pre-configured to minimize the amount of setup a potential contributor has to do.

Longer term, I have some features planned for 2.1 but this list is by no means final so I'd love to hear ideas. One that I'm considering adding is the ability to "talk", possibly even accept voice commands. That would be an interesting project because it would require a few new technology pieces such as a2dp audio (both directions), text to speech, speech to text, and building out a protocol to communicate effectively.

Another idea is to build out a neural network which I could train using empirical data and then let it make strategic recommendations on the course.

Both of these are lofty goals, but that's the point of a hobby project after all right?