Finally after 2 months of fiddling I was able to have a successful sail where everything worked. The Wind vane, Gibbs, and the Pebble, all working in harmony. It's been a rough few weeks as I changed jobs and have been working hard for my new clients, so Mr. Gibbs hasn't been getting as much attention as it has in the past few months, but hopefully I should be back to a more normal schedule soon.
I've had quite a few challenges getting the wind vane working this spring, most of which I detailed in my last post with the changes to the mount to help with RF range. The next change we made was to move Gibbs to the center of the boat, this does a few things. First, it's just a convenient, out-of-the way spot where it can be easily mounted along the axis of the boat. Second, it's in good RF range of both the pebbles and the mast vane.
The mast sensors remain a bit of a kludge, but they work, that's the important thing. I'm thinking about re-designing my PCB such that the antenna will be on the end of the enclosure rather than in the middle, I think that is part of my range issue. With the new mounting solutions I haven't been having connection issues, but I still feel I should be getting better range out of it than I am.
Software-wise, the only changes have been wind vane related. The biggest of which was introducing the Yamartino Method to reduce the amount of "noise" coming from the wind vane.
The wikipedia article sounds pretty complex, but the gist of it is pretty simple. If you average headings of 359° and 1° degree, the "average heading" is obviously right between the 2 at 0°. Mathematically though, (359°+1°)/2 = 180°. The Yamartino method allows us to average headings in a way that accounts for values that cross the 0=>360 threshold and vice versa.
Currently I have it configured to average the last 5 rotations of the anemometer to come up with the direction, this way the average "look-back" varies based on wind speed. Whether or not this is a good thing I don't know, I will have to try various settings and see what works, but the initial results were positive.
Now that I finally have some sample data that includes all of my values, it's time to come up with some functionality to put all this sensor data to work. Upon first loading it, it became painfully obvious that I need a means to visualize the data, so that is next on the To-Do list.