# Another idea for wind speed and direction sensing - evaluation please!

#### PaulRB

##### Senior Member
Hi all,

I have had yet another idea for wind speed and direction sensing. This time more conventional but with a twist. I need help evaluating and designing it.

Starting point: one of those really cheap Maplin/Fine Offset 3 cup anemometers. Click here for inside pictures about 2/3 way down the page.

But this only measures wind speed, right? Well, I discovered someone invented a way to use them to measure direction also. I think his name is Derek Weston, and he called it a Rotorvane Anemometer. Unfortunately his original web pages describing it have disappeared, but here is one of several DIY versions based on it.

The technique would involve modifying just one of the 3 cups, adding a small fin to it. This would deliberately "unbalance" the anemometer, so that it does not spin with a constant speed, even in a constant wind. As the extra fin sweeps upwind, the anemometer slows down slightly. As it then sweeps downwind, it speeds up slightly. Overall the speed of rotation is about the same, but within a single rotation there is variation.

To use this variation to resolve the wind direction, it will be necessary to measure the rotation speed in several parts (at least 3 I guess) within a single rotation. I am thinking that could be achieved using the Maplin unit by replacing the reed relay pcb with one containing 3 or more hall effect sensors at 120 degrees to each other. The time taken for the cups to rotate each 120 degrees could the separately measured. The maths of resolving these 3 periods into a compass direction would be too much for a picaxe alone, so would need an i2c maths chip or pass the periods to a PC or Rasp Pi for calculation.

Thoughts? Suggested hall effect sensors?

Thanks!

Paul

Last edited:

#### g6ejd

##### Senior Member
If you look at the Peet Bros weather station, you will see (and they explain how) they determine direction from their anemometer using pulse timing, OK they have a wind vane, but I can see how if you know the position of a reference cup, then by timing you can determine where it is.

What's confusing me is what's different as the cups spins around, is there a speeding up in cup velocity because the higher load cup is down wind, or what, is it something to do with mark-space rations. there is no explanation.

Now this is what I call a fascinating project...

##### Senior Member
Man, I've got this in my head and know exactly how to do it, but how to put it in writing. I think a PICAXE could easily do the math. For now let's consider a sensor disc with three holes evenly spaced to represent the cups. We need to measure the pulse widths between the cups as the disc rotates. Here are some sample pulse widths in milliseconds and what they tell us:

Code:
``````100    100     95
100     90     95
100    110    110

300    300    300``````
In the first example there's no fin and the pulse widths are evenly spaced at 100ms. The other two examples are with fins. The one thing in common is they all add up to 300ms which is how we get the wind speed. To get the direction we need to find out at what position was the fin moving the fastest. This is why we need a 4th hole to allow us to determine the "start" position of the cups (or the position of the fin). If you look at the sensor disc in the linked page it becomes clear how they do it. They place the 4th hole directly between two others which means it would also be 180 degrees across from our hole that indicates the fin position.

Now we might have the following four pulse widths with our reference hole added:

Code:
``````100   100    95
50    45    47
50    45    48
100   110   110``````
The only difference is we now have two shorter pulse widths and two longer ones. The best part about this is we don't have to actually watch for the shorter pulse widths so we know when we pass our reference hole. We simply need to do some math on the pulse widths to determine at what point were the cups spinning the fastest (or slowest) to know position.

In fact, I don't think we need math at all. We realistically only need perhaps 16 wind directions (I don't see any need for more accuracy than that). This could be done easily with a lookup table. All we need to do is convert each of the four pulse widths into a percentage of the total and find the closest match in our table. This would be much faster I think than trying to perform a bunch of math on our pulse widths to try and calculate the "exact" direction.

#### MFB

##### Senior Member
Even the basic cup anemometer finds it difficult to accurately measure wind speed, let alone trying to derive direction. Time might be better spent on developing a non-mechanical means of determining wind speed and direction.

#### PaulRB

##### Senior Member
Adamey, your example figures don't seem to match up with your descriptions. It would help if you could fix that.

Rather than the 4th hole in a sensor disc, I was thinking that if I used 3 hall sensors to detect the magnet in the Maplin unit, I would give one of the 3 sensors its own picaxe pin and the other 2 sensors would share a second pin. The sensor with the dedicated picaxe pin would be aligned to North. In the Maplin unit, the magnet is opposite one of the cups, so I would attach the extra fin to that cup. When the magnet passes over the sensor with the dedicated picaxe pin, I would know exactly where the cup with the fin was.

I need advice on a hall sensor to use here and I have no experience with them. 3 of them will be in close proximity to each other and to the magnet, I worry that 2 or 3 will register at once, or register for all 360 degrees rotation.

MFB, are you referring to hot wires or ultrasonics? I've read up on those and they seem an even more difficult prospect, at least to me!

Paul

#### TheChief

##### Senior Member
Even the basic cup anemometer finds it difficult to accurately measure wind speed, let alone trying to derive direction. Time might be better spent on developing a non-mechanical means of determining wind speed and direction.
Agreed. I would suggest looking at this the other way around. Perhaps take a cheap wind vane which gives direction and try to add a wind speed sensor to that. What about a tube with a Hotwire setup?

#### AllyCat

##### Senior Member
Hi Paul,

An interesting "idea", but I'm very much with MFB !

Calibration is one of the major issues with most types of anemometer (the "ultrasonic time of flight" anemometer is just about the only type that can be designed from its physical paramaters, rather than calibrated against a "known" reference). Doubts have been expressed that the Fine Offset (Maplin's manufacturer) anemometer under-reads somewhat, but AFAIK nobody has managed to show that to be the case. However, you are planning to "uncalibrate" it further with a modification. BTW I hope you mean "unbalance" it aerodynamically, but still retain gravitational balance (i.e. weights on the other cups) or it will have to be mounted with perfect vertical precision and still probably destroy its bearing even more rapidly than FO units usually do (why do you think Maplin sell so many "spares").

What (percentage) change in speed are you actually expecting to obtain over a revolution, noting that your modification will increase the rotational inertia? How much can the rotational speed change during a revolution due to a wind gust? How do you separate the two? The "dynamic range" of the pulses will be about 100 : 1 (70mph v 0.7 mph windspeed), say 6 ms to 600 ms, so PULSIN is potentially ideal, but how do you measure the relative delay between pulses from different sensors (or find time to run any other code)?

... using the Maplin unit by replacing the reed relay pcb with one containing 3 or more hall effect sensors at 120 degrees to each other. The time taken for the cups to rotate each 120 degrees could the separately measured.
The "Maplin" PCB is actually mounted vertically (parallel to the rotational axis) and the relay operates twice per revolution (I'm not sure that anybody, including FO, really understands the behaviour of their magnetic circuit) so you will need a completely different mechanical construction for three (hall) sensors spaced by 120 degrees around the axis.

I could go on (and on...) but still think that the "time of flight" method is by far the most interesting method for a home electronics constructor.

Cheers, Alan.

Last edited:

#### hippy

##### Technical Support
Staff member
Does a fin / baffle need adding to the cup ? I suppose it helps exaggerate the differences in speed when moving with or against the wind.

The idea is quite clever. If you have two sensors North and South, with a wind roughly from the North, the time rotating North to South will be T and rotating South to North will be T+N and from N you can determine the wind direction. You need at least three sensors though or you cannot distinguish Wind from the East from wind from the West.

Positioning of sensors does not seem to matter though 120 degree spaced would likely be optimal. Direction alignment of sensors shouldn't matter as it's a fixed rotation from whatever 'virtual north' the calculation references.

The hard part is taking three readings, T+A, T+B, T+C, and determining what the direction is from that. There's probably a single equation for that but I think Adamey may be onto something in being clever as to how those are ordered in magnitude or compare to each other.

As to the practicalities and usefulness of the technique - I have no idea but it's okay in theory.

#### Buzby

##### Senior Member
... As to the practicalities and usefulness of the technique - I have no idea but it's okay in theory.
OT : Did you see that Horizon prog a week or two ago ?
They had an iPad app that measured the pulse rate of the person looking into the iPad camera.
It worked by analysing the colour changes in the skin due to blood flow changes.

Just shows what you can do with the right sensor and some clever software !

#### AllyCat

##### Senior Member
H,

What if you turned one of the cups around? That should maximise the "directional" component and minimise gravitational inbalance. There is a theoretical possibility of it not starting to rotate, but are the odds any worse than being able to balance a pencil vertically on its point? (genuine, not rhetorical, question).

Mathematically, you need to "fit" a sine wave, plus a "constant" (wind speed) and a lot of "noise" (wind gusts), onto the three measured values, then calculate the phase (wind direction) of the sine wave relative to one of the samples (reference direction of one of the sensors). Note that the frequency of the sine wave is not fixed, but changes with the wind speed.

Personally, I think the "noise" would make a useful calculation impossible, or we'd see a lot more "asymmetric" cup anemometers ! Perhaps it "just" needs a high-powered computer (FFTs, etc.), but then there's still the issue of calibration for a "homebuilt" project.

Cheers, Alan

Last edited:

#### g6ejd

##### Senior Member
It's a shame that the circuit for the original design is no longer available, from which the operation could have been determined. The evidence suggests it did work though, must go back and check the date of the article (not 01-Apr?)

##### Senior Member
I find it interesting that a lot of this relates to automotive electronics.

A MAF (mass air flow) sensor for engines could work for measuring wind speed. You'd just need a way to convert the mass reading into wind speed based on the cross-section of the sensor tube. You still need direction as well, but since the MAF would need to be facing the wind you'd already be able to get this.

In an engine the crankshaft is always fluctuating in speed. Each time a cylinder fires the crankshaft accelerates. Modern engines use this to detect misfires. If the crankshaft doesn't accelerate (or accelerates less than expected) when a cylinder fires then the computer knows that combustion was incomplete on that specific cylinder (an engine misfire). Now imagine a V8 engine at only 3,000 RPM where you have an ignition occurring every 90 degrees of crank rotation (200 times per second) and being able to detect a slight difference in acceleration from one ignition to the next to see if it's a misfire. Kinda makes this project seem a little "easy", doesn't it?

#### AllyCat

##### Senior Member
Hi,

imagine a V8 engine at only 3,000 RPM where you have an ignition occurring every 90 degrees of crank rotation (200 times per second) and being able to detect a slight difference in acceleration from one ignition to the next to see if it's a misfire. Kinda makes this project seem a little "easy", doesn't it?
The "Maplin" anemometer also rotates at 3,000 rpm (in a 70mph wind), so not very different to the V8 ! But unfortunately PICaxe Basic runs several hundred times slower than the compiled code certainly used in an engine management system.

My immediate reaction to the original proposal was that "if a PICaxe can measure it, then a PICaxe can do the calculations" and I'm coming around to that view again. The maths are not too difficult if broken into "Northerly" and "Easterly" component axes, So can a PICaxe acquire the data? ... perhaps yes:

It appears that the original design used a single sensor with multiple "activators", presumably holes in a disc with optical detection. The single sensor has definite advantages, not only cost, but only a single pin is required on the PICAxe and then PULSIN can be used. With sufficiently large holes (or spread of the field from magnets) there could be sufficient time between PULSINs to transfer the measurement into memory. Then, perhaps do the processing/calculation on alternate revolutions or, since "gusts" are normally measured over a 3 second period, collect and average the data for about 2.9 seconds and then process/report the result in 100ms.

Some time ago, I "improved" the original FO / Maplin Wind Vane by adding neodymium button magnets (typically 20 for a few Pounds) and perhaps they could be used here; three or four glued inside the anemometer head in the described "CND symbol" arrangement. Initial tests might even be done (at moderately slow speeds) with the original "Maplin" magnetic reed switch, although ultimately a single Hall sensor could be chosen. The PICaxe will only be able (i.e fast enough) to process a binary (0/1) signal, so a hall device with threshold detection (either internal or external) would be needed.

Therefore, it does appear that this idea might have some "legs", even with a PICaxe (and no added "Pi"). I wonder if it's not been used more because it infringes somebody's (still active) patent?

Cheers, Alan.

#### g6ejd

##### Senior Member
It looks to me like he used an Arduino. However:

Once we have figured out how he was detecting where the different speeds were in relation to wind direction, then I think the rest will be easier. This is my thinking.

Assumption:
a. There are three cups and if all are the same size, then for any given constant wind speed, the time difference between each cup passing a reference point will be same for each sector. e.g. rotation time / 3
b. Assume a sector time of 50mSec (or 150mS / rev).
c. Rotation timing will always be the sum of all three sector times.

1. Now one of the cups is larger and has a greater wind load and in the direction of the wind will give rise to a smaller time value for that sector.
2. When the next two cups come into the wind, they will slow down again and have a corresponding higher sector time.
3. We now have three vectors / polar coordinates for sectors 1, 2 and 3. One sector time will be shorter.
4. Now combine the three polar coordinates of e.g. cup-1 (0-deg) took 60mS, cup-2 (120-deg) took 50mS and cup-3 (240-deg) took 40mS (this is the sector with the larger wind load cup)
5. The easy way is to convert all three into rectangular coordinates, then sum x and y components, then convert back to polar.

If all three are the same (cups), then the three respective polar coordinates will be the same and the result. I'm also thinking that for each cup you need to know all three sector times.

Now I'm wondering if the final polar coordinate when combined with the reference direction will give the actual wind direction, it may need a trial to determine this, unless anyone has a theory they wish to share

I think Adamey is very close.

#### AllyCat

##### Senior Member
Hi,

It looks to me like he used an Arduino.
Are we looking at the same web pages? I've now had a chance to look at most of the pages in the web links above and the original kit designed / sold by (Dr) Derek Weston used a pre-programmed 18 pin PIC. He was (is?) obviously a very clever guy. Not only did his code time the pulses and calculate wind speed / direction, but also drove the 42 LEDs with a "Charlieplex", logged the windspeed into "bins" (wind ranges) and communicated the data via serial ("RS232") communications.

It even included "automatic" calibration, the user was instructed to strap the anemometer head onto the front of a car, drive at the "calibration" speed (50mph?) on a "still" day, and press the "calibrate" button. Probably rather easier done 10+ years ago in Australia / NZ than in the UK in 2013 ! His 18 pin PIC had 2 pins dedicated to the crystal oscillator, 1 pin for "Master Reset" and 1 pin apparently unused. So the challenge is to reproduce his code for a 14M2 PICaxe.

Now I'm wondering if the final polar coordinate when combined with the reference direction will give the actual wind direction, it may need a trial to determine this, unless anyone has a theory they wish to share .
Initially, I was puzzled that Derek made a particular point about calibrating the wind direction of his kit, because the location of the "ahead" sensor / marker seemed obvious. But of course that's where the mechanical inertia of the rotor comes in. The maximum (rotational) speed is NOT when the "tag" is moving in the direction of the wind (it's the angular acceleration which is maximum) and the maxmum speed may lag by up to 90 degrees.

But back to the OP, is the "Maplin" anemometer a good starting point? Personally, I'm tempted to replace their PCB with one carrying the original reed swtich and an optical (IR) transmitter/ receiver. Then add an optical (reflective) disc to the rotor to detect the angular speed. For initial experiments perhaps use a "frequency" disc (i.e. many "teeth") with the magnetic reed switch for the reference direction. The two closures per revolution is an annoyance, but probably can be worked around (by re-orienting the direction of the reeds?). However, the overall enclosure is rather small, the magnet is on a radius of 10mm, so the maximum optical disc diameter would be about 22mm. Also beware that the rotor might be glued to the bearing, so damage can result when attempting to remove the head.

Cheers, Alan.

Last edited:

#### hippy

##### Technical Support
Staff member
It appears that the original design used a single sensor with multiple "activators", presumably holes in a disc with optical detection. The single sensor has definite advantages, not only cost, but only a single pin is required on the PICAxe
That seems to be correct, from a linked page which references the original project -

http://web.archive.org/web/20080610143200im_/http://homepages.ihug.co.nz/~chris-s/mk2_chopper_disk.JPG

and then PULSIN can be used.
Though the question is how to determine between which two holes you are measuring a particular pulse ? You need to determine four time intervals from the raw pulse stream and that's not particularly easy using just PULSIN ...

Code:
``````   _        _    _    _        _        _    _    _
__| |______| |__| |__| |______| |______| |__| |__| |___
:        :    :    :        :        :    :    :
:________:    :    :        :________:    :    :
__|        |____:____:________|        |____:____:_____
:____:    :        :        :____:    :
___________|    |____:________:________|    |____:_____
:____:        :        :    :____:
________________|    |________:________:____|    |_____
:________:                  :_____
_____________________|        |__________________|
.``````
A two-bit counter triggered from the raw stream and a 2-to-4 decoder would generate four separate pulse signals which could be measured in turn. The software can sort out the order.

#### AllyCat

##### Senior Member
Hi,

Though the question is how to determine between which two holes you are measuring a particular pulse ? You need to determine four time intervals from the raw pulse stream and that's not particularly easy using just PULSIN ...
I think that Adamey spotted what to do in post #3. In principle you get two "long" pulses and two "short" pulses which can be added to give the third 120 degree reference "tri-ant" (is that a real word?) period. So you just need to store any four consecutive pulse-periods into memory and then add the two short periods for the "reference" direction. However, in practice, particularly at low windspeeds, that will not necessarily always work (because "gust" values can predominate) but it can probably be used most of the time. However, Derek had the advantage of "real" interrupts and could count every part-revolution.

Now I must apologise for giving misleading information in my previous post. The FO PCB / reed switch is indeed mounted at right-angles to the axis (not in the apparent moulded "guides"), so the operation of the relay is quite predictable. It's the Wind Vane which has a "weird" magnetic path with the magnet pointing almost at the centre of the reeds (and generally failing to operate adjacent pairs reeds together as intended). So perhaps one could replace the PCB with one or more hall devices, but my preference is still to mount an IR LED and Transistor on a tiny piece of stripboard which can slide into the (unused) moulded slots in the housing. Also, moving the reed switch away from the rotational axis should give the asymmetry needed to identify a unique horizontal direction.

Cheers, Alan.

#### g6ejd

##### Senior Member
Thanks Hippy for the link to the photo of the disc. http://web.archive.org/web/20080610143200im_/http://homepages.ihug.co.nz/~chris-s/mk2_chopper_disk.JPG

From which there will be 4 pulses, 3 with regular 120-deg intervals for any given speed and one pulse that is coincident with and that tracks the position of the reference cup. Now we know there is only one output bit stream and one input required, then it's all about measuring time between pulses using that one input.

This might be one of the most intriguing projects I've seen for a long while.

Last edited:

#### hippy

##### Technical Support
Staff member
In principle you get two "long" pulses and two "short" pulses ... So you just need to store any four consecutive pulse-periods into memory and then add the two short periods for the "reference" direction.
The requirement is that you need to store four genuinely consecutive pulse periods. Does the PICAXE have the execution speed required to read one pulse and then be ready for the next pulse before it has started ?

At 3000 RPM every 1 degree of rotation would be about 55us. By making the holes large enough it should be possible to make it work for a PICAXE and you'd certainly have more time to work with in lower wind speeds.

Or you could measure the pulse periods of the holes which would have longer gaps between them but you'd need to be able to work out which hole was which. A reference hole twice as big as the others on 120 degree spacing should achieve that, and would make shuffling the data into the correct order easier.

Hole sizing and positioning could affect things but calibration and the maths calculation should compensate for that if it is a problem.

#### rossko57

##### Senior Member
A MAF (mass air flow) sensor for engines could work for measuring wind speed.
You would have to factor in air density, so you'd also need barometer and I think thermometer. But those are reasonable things for a weather station to measure as well.

#### g6ejd

##### Senior Member
That's why cars use the Bosch BMP085, it provides air pressure and temperature

#### AllyCat

##### Senior Member
Hi,

Does the PICAXE have the execution speed required to read one pulse and then be ready for the next pulse before it has started ?
Derek's design seems to use quite large holes and the "Maplin" anemometer can only accommodate a disc of about 60 mm circumference so I don't think we need to worry about "gaps" (between pulses) of less than 10 degrees (the edges will be more accurately defined anyway). Since we probably need to record pulses up to ~650ms, we can't increase the clock rate (if using PULSIN), but the code can be simply: PULSIN pin,1,w1 : PULSIN pin,1, w2 : etc. (4 times) which IIRC executes in less than 1ms per pulse at 4MHz. So it might be necessary to design a gap or hole of up to 20 degrees, but I don't see that as a problem.

However, thinking more about the original magnetic sensor proposal, the basic Maplin anemometer generates a fairly respectable square wave with edges approximately every 90 degrees. If the reed switch is moved off-axis then alternate "pulses" should widen and narrow, to provide four "identifyable events" in each revolution (which is basically what we need). A reed switch is possibly too slow and unstable, but what about a single hall sensor in place of the reed? But I don't know what stability (i.e. long term repeatability) can be expected from a hall sensor (and the permanent magnet in the rotor), or whether any form of self-compensation or calibration might be implemented.

Similarly, with a reflective disc (needed for the Maplin sensor optical conversion) there is the opportunity to define sector edges (of light and dark) and not be restricted to the dimensions of "holes". Of course it's not possible to use PULSIN with edge-triggering, and polling in Basic is much slower (i.e. lower resolution). But suppose that one wrote a tight incrementing code loop to accumulate counts in four "buckets" (variables corresponding to the four "pulse widths") over a period of perhaps one second? That would also assist the issue of calculating the phase (direction) from data having a dynamic range of 100 : 1 (windspeed range).

Cheers, Alan.

#### PaulRB

##### Senior Member
Well, the idea does seem to be wining a few forum members over, even if only from an "interesting challenge" point of view.

I'm thinking an approach may be to start off getting the basic, unaltered FO/Maplin speed and direction units working. Then get a second speed unit and modify that. It could then be run in parallel with the unmodified units and calibrated against them (to the same, probably rather poor, standard).

Paul

#### g6ejd

##### Senior Member
I've already ordered mine to do the same

#### g6ejd

##### Senior Member
Has anyone checked out the VBASIC source code to see how he does this?

#### AllyCat

##### Senior Member
Hi,

Yes, often the "mechanics" can be the hardest part of a project so the "Maplin" anemometer (manufactured by Fine Offset in China and available all around the World under numerous "badges") may be a very good starting point. But beware that it's quite small so you may not be able to fit much "electronics" inside. I'm less sure that the "Vane" is worthwhile, it's more expensive and probably the worst-designed part of the complete kit. It has no damping, so the direction can swing wildly, it indicates predominantly only 8 compass points, and I devised a better (toleranced) set of resistor values than theirs (which indicate direction) within an hour, using just a spreadsheet program.

I already have a "spare" anemometer, so continuing with my proposal in #24 above, I removed the reed switch PCB, filed a little off one edge and re-inserted it "skew", using just one of the mounting screws. It now delivers a single pulse about 45 degrees wide and three around 105 degrees for each revolution.

IMHO that's sufficient to "solve" the vector maths (speed along two fixed directional axes) although obviously not as "convenient" as four points spaced by 120, 120, 60 and 60 degrees. An advantage of this particular modification is that the original weather station transmitter still works fine (I'd already ascertained that it happily accepts pulses of just a few ms, corresponding to a simulated gust of around 200 mph ! ). Another advantage of using the original reed switch is that it closes with either magnetic polarity, hence the two pulses, or four phases, per revolution, from a single component.

Of course the reed switch is relatively slow (I believe around 1ms operation time is typical), but that's comparable with PICaxe Basic instruction times and, at least for meteorological purposes, the data will be heavily filtered (averaged) anyway. A "peak gust" is typically averaged over 3 seconds, with average windspeed reported every minute and typically averaged over 10 minutes.

The exact calibration angles may "drift" with temperature, etc. (since the reed switch is basically a mechanical device) but I believe that "self calibration" may be possible: The software "knows" when the windspeed is low, so can determine the "static" marker angles by (long-term) averaging. The "reference" direction should remain near to the centre of the narrow pulse.

Definitely looking like an interesting project.

Cheers, Alan.

PS: Isn't the VB source code just for the Windows monitor App. (for data logging)?

#### g6ejd

##### Senior Member
Good find, so now we know it's a system that works for sure and it has just 2-pins from the sensor head indicating a simple bit stream from the 3 cups.

I have now got to understand how these things work.

My colleague has a PhD Maths (Engineering), he will be able to bring some insight into this problem of how to resolve the various vectors. When I get something I'll let you know.

Thinking now:

The sensor sends a series of pulses, from which we need to measure the mark space ratio of each pulse and the ratios will be seen to change. As the unbalanced larger cup comes away from the wind the rotational speed will increase (mark-space shortens) and then decrease as the unbalanced cup goes back toward the wind (mark-space is longer). From this it is then possible to determine speed and direction, but how...

Commercial transduce products like the one above use a simple opto slotted switch almost exactly like this http://www.ebay.co.uk/itm/KTIR0121DS-Slotted-Infra-Red-Photo-Interrupter-Opto-Switch-Sensor-PH03-/400498159249

Last edited:

#### Pongo

##### Senior Member
AFAIK this is the basis of the "Rotavecta" system sold by Raymarine. I searched the online brochures etc. for those instruments but did not see any mention of a patent, only of copyright. I also searched the US Patent and Trademark Office database for anemometer patents, and read those posted around or after 1991 which is when the tab innovation is claimed by Mr. Weston. I did not find any which appeared to apply to this device. I don't know if the Aus patent database is on online so didn't search there, but normally if you have a patent number you would use it on documentation etc.

OTOH I did find the Peet patents:

5,231,876

5,361,633

#### AllyCat

##### Senior Member
Hi,

Yes it appears that Derek Weston (and Raymarine) only claim copywrite (TM). The basic idea is quite simple, but relies on the computational power of a microcontroller so it may be that a patent was "spent" before it could be commercialised, or the idea was already in the public domain and could not be patented. Perhaps the idea has not been used more because it's said to give rather poor accuracy at low windspeeds, which Derek may have confirmed in his specification :

"The graph is for a wind speed of nine knots. ...... At three knots the errors are larger."

There's also the interesting statement in his FAQ on Accuracy:

Q: How is it that on the page about the principle you say a direction accuracy of 1.5 degrees, but elsewhere say this anemometer will only give +/- 5 degrees?

A: The 1.5 degree figure was from tests using a precision machine-made sensor with excellent bearings, a photoplotted chopper disk and optics with a 1/4 mm diameter aperture, and using more sophisticated microcontroller software than is possible in the code space available in the PIC.

I must say that I'm very impressed with the quality of Derek's design and documentation. Not only does his design use just a single twisted pair to power the sensor and receive the signal back, but also includes simple positive feedback to give a clean switching action. The 8 x D cells may seem excessive, but with the regulators of the day, is spot on to use the full capacity of the batteries (down to 0.9 volts per cell). It appears that he used a PIC 16F84 and managed to squeeze quite a lot of functionality into its 1 kword of program space.

IMHO the basic directional calculation doesn't look too difficult, but may need a number of "refinements" to achieve good accuracy. At some stage the pulse widths have to be converted to "speed" which with PICaxe Basic implies division of a value of about 256 into 65535 to give a result of better than 1% accuracy. However, a dynamic range of 100 : 1 (windspeed) would give far worse accuracy, so it may be that accumulating data over a "fixed" time period (rather than the width of single pulses) is necessary.

The 120 + 60 + 60 + 120 degree sectors (between holes or markers) do seem to make the calculation easier. If the sectors are labled A, B, C and D from a reference direction, then the differential time (or speed) component in the "reference" direction is simply A + B - C - D. The component at 90 degrees is more tricky but I think resolves to B + C - A/2 - D/2. However, calculation for any "known" sector angles (within certain limits) seems quite feasible even in a PICaxe. Then from the directional components, a corresponding angle can be determined (ArcTan?), but further calibration or compensation factors are likely needed to allow for inertia etc..

Cheers, Alan.

#### g6ejd

##### Senior Member
Thanks for doing the research chaps, as I have found all of the circuit diagrams and can now make reference to them without upsetting anyone. They are almost too trivial to post frankly, as all that's in the sensor is a single opto-slot switch.

I have yet to find a picture of the disk, but for now I think it is two holes aligned (if you) like north and south so that the mark (e.g. transition time between North and South and space, the transition time between South and North can be measured.

From this mark-space ratio or the ratio of the two, you can determine wind direction.

I'm thinking (and guessed)
50:50 wind direction is directly ahead (north) or directly south, I notice displays are +/- 180 degrees of heading, not a 360-degree display.
23:77 wind from the NE
46:54 wind from the W
54:46 wind from the SW
50:50 Wind from the south
and so-on...

Last edited:

#### Pongo

##### Senior Member
The disk I have seen on the pages linked in various posts above has 4 holes, 12, 4, 6, 8 o'clock or 0, 120, 180, 240 degrees.

#### g6ejd

##### Senior Member
Yes, but not of the 'commercial' device. I've been working through this today and conclude so-far that just 2 holes are required. It could be that 3 at 120-degrees plus a reference North hole improves resolution though.

Last edited:

#### Pongo

##### Senior Member
I disagree, with only two holes there is directional ambiguity. As you post above 50/50 can be N or S, or in terms of the boat display wind from directly ahead, or directly behind. The display unit is "+/- 180 degrees of heading" because the boat could be pointing in any direction, but +/- 180 degrees is a "360-degree display", and the display as illustrated in the Raymarine ad does show the difference between head wind and tail wind. There has to be a way for the electronics to recognize the north or 0 degree pulse, and that takes more than two holes.

#### g6ejd

##### Senior Member
Ok, agreed. I had not thought of that aspect. When I receive my rotavecta head (vanes only) and attach it to a conventional anemometer I will be able to start coding this.

Last edited:

#### MFB

##### Senior Member
It seems that Elektor Electronics magazine will be publishing an article next month on non-mechanical wind speed and direction sensors.

#### g6ejd

##### Senior Member
Using 4 ultrasonic sensors I presume.