I've got the wind direction indicator design for OpenSail pretty much set now. I realized I could make the encoder disk for the position indicator a lot less complex by making it double sided, encoding 4 bits of position data on each side. This effectively gives you 9 bits of position information, since the "side" counts as a bit.
I spent some time today drawing the encoder wheel design with xfig. I'm going to need a better drafting program for the vinal version; xfig offers pretty limited capabilities for precise angular placements and coloring of regions. I have one side of the encoder drawn out now, but correctly setting the angles for the reverse side is going to be tricky; the outermost track is offset from the reverse by 6.625 degrees.
To read the encodings on the wheel, I'm going to use 8 Dallas Semiconductor 2406 1-Wire switches, with the B channel configured to sense the output of an optical encoder. The encoders will be arranged to shine on the tracks of the encoder wheel, returning 0 for the black sectors and 1 for the white.
Each 2406 has a unique serial number and 1Kbits of OTP EPROM, so once I get all the devices on the board I can run a little program to figure out which bit each 2406 device corresponds to, then burn the bit position into the EPROM. During OpenSail initialization, it will query each of the 2406 devices for it's function (or bit position) and record the device IDs, so later information scans can address the devices by ID.
I've also decided to use the same encoder wheel for the wind speed sensor. I'll probably couple two tracks of the encoder to a DS2422 1-wire counter/RAM. I can use the outer track, with more divisions, for slow winds speeds, and one of the inner tracks for high wind speeds that cause the counter to overflow. Actually, considering that each counter is 32 bits, this isn't real likely, but the chip has two counters, might as well use them, right? I haven't quite figured out exactly how to wire the encoders up to the counter inputs yet, but I know a few EEs who really want to go sailing.
The really nice part about the Dallas Semiconductor 1-wire devices is that I can stuff a fair amount of intelligence into a small, light package to go at the masthead, and still run just one wire up the mast, using the mast itself as signal and power ground. The 1-wire bus provides +Vcc and Tx/Rx data all multiplexed over a single wire.
Well, the clouds are clearing and it's time to go sailing. I'll report progress as it happens.