Another Use For Old Hard Drive Parts: Anemometer

So you’ve just taken apart a hard drive, and you’re looking at all the pieces on your desktop. You’re somehow compelled to use them all in different projects. Why not pull out that very high quality bearing that keeps the platters spinning at high RPMs and build this simple anemometer with it? That’s what [Sergei Bezrukov] did, and it looks like a perfect el cheapo project.

The build is fairly low-tech and entirely sufficient. The cups are made from plastic containers that used to contain pantyhose. A Hall-effect sensor and a magnet take care of measuring the rotations, feeding its signal into a PIC that calculates the wind speed from the revolution rate. The rest of the housing is PVC, with some other miscellaneous parts found at the hardware store.

To calibrate the device, [Sergei] made a second hand-held unit that he could (presumably) drive around in a car to get a baseline wind speed, and then note down the revolution rate. Once you’ve got a good reference, holding the portable unit up to the permanent one transfers the calibration.

But the star of the show, that lets the anemometer spin effortlessly, is the sweet bearing that used to spin a hard-drive platter. If you haven’t played with one of these bearings before, you absolutely should. We just ran a post on taking apart a hard drive for its spare-parts goodness so you have no excuse. If you’re feeling goofy, you can mount one onto a board, step on it with the ball of your foot, and spin. They’re quality bearings, and you’ll be surprised how quickly you can spin as you pull your arms in.

Thank [Matt] for the tip!

39 thoughts on “Another Use For Old Hard Drive Parts: Anemometer

      1. You only need one winding “in circuit”, so what extra load magnitude are we talking about, is it going to drop the minimum speed that much. I mean are we talking about things down at a level that are below what is filtered out as potentially erroneous anyway?

        1. Take a brushless motor with an iron core and spin it, you will find with just one winding and see how it “cogs” even without a load on the winding. It’s not the winding, it is the stator, and it has to go. Otherwise the cogging will kill your low wind speed sensitivity. There are a lot of people that have been making anemometers out of hard drive motors for years and they all do it the same way, use a hall effect to sense the magnets in the motor.

          1. I was hoping for some science, like has anyone actually measured it or is it all assumptions based on tradition? Are these people even properly calibrating their constructions so that it can be quantified? I wouldn’t ask except that I am genuinely interested in DIY weather stations and wish to know as much as possible rather than just copy other people’s work without learning. Ah never mind I have a dead drive here, I’ll work it out myself, like if at such low RPM the forces are relevant….

          2. I can’t feel any cogging in any of the hard drive motors I’ve handled. Still, the stator is not necessary, as you say put a hall effect sensor in there triggered by the magnets already in the motor. No sense adding external magnets that may unbalance it.

          1. I would if people were more helpful, should I use a schmitt trigger because that means the signal can be very low with little resistance across the coil? Is there any trick to how the coils can be connected to counter any unwanted forces? Does the specific HD motor make a difference? That trigger also deals with any noise issues doesn’t it, so you can put it straight into an IRQ enabled input pin and not have to worry about de-bouncing in software? It would help if anyone actually had some info other than “people don’t do that so you can’t do it either.”

        2. A schmitt trigger will put nearly no load at all (very high resistance on the order of 100M to 1G) on a winding.

          Instead of connecting the other lead from a winding to ground, connect it to a voltage divider. Then the other end of the winding is now at Vcc/2, so it should detect movement at slower speeds.

          You may find that an Op Amp wired with positive feedback to act as a schmitt trigger with adjustable switching voltage range may work better than just a CMOS schmitt trigger. That CMOS IC will have the levels preset at about 1/3 and 2/3 of Vcc. I would put that sensing circuit right up there with the anemometer, otherwise you are going to have problems with noise with such a small signal over a long wire.

          Three wires is enough – ground, Vcc, and signal. Now it is a digital signal, low impedance and relatively resistant to noise.

    1. lots of non linear “friction” moving magnets past iron in the motor, and at very low speeds you aren’t going to get much voltage at all to play with. 7200RPM drive = 600 RPM per volt, 10RPM is ~.01 volts which sure you can detect, but why bother, maget + reed switch is easy to read (lol) and is what the cheap commercial units use and they last for years

      1. Yes, Valen nailed it. The hall effect sensor gives out the same voltage all the time.

        On the other hand, you could possibly connect one of the windings to a 50uA meter movement and do a simple analog… nah, the voltage is still too low at slow speeds without amplification. Much simpler to count time between rising edges.

        1. It’s likely much simpler to use a IR LED+phototransistor taken from an old mouse, removing the dents that make the wheel click, then write a routine that integrates the pulses producing a value proportional to the rotation speed and calibrate it accordingly.

      2. But if you don’t balance the magnet perfectly aren’t you just undermining the entire point of using such a nice bearing in the first place? I realise it is about trade-offs, I just can’t see why the magnet one really is better.

      3. The stator is built of laminated insulated plates of steel, eddy current losses should be very low.

        If you want to measure -really- light wind speeds, you’ll need something like a hot wire anemometer, not a spinning thing with friction and inertia. But how light a wind are you trying to measure?

  1. Using the windings by themselves may be fine even at slow speeds. Here is someone using a hard drive motor as a rotary encoder with a couple of Op Amps as signal conditioners. I don’t know just how slow it can go.

    If I were putting an anemometer on it, I’d add some resistors and protection diodes in case of high winds.

    Link to his page in the video description:

  2. Followup: Use a second HDD motor to indicate wind direction. I suspect this is a bit more complicated, since you need to encode absolute position, referenced to an index. At least, that’s how I’ve always considered doing it. Anyone have any suggestions that might be better?

    1. He can use motor as the bearing, like in this case with measuring speed. On the bottom of the rotating shaft you can put small button-like magnet. Then you can use angular encoder chip placed under magnet for detecting in which direction shaft points.

        1. I think it would, check out chips like AS5047D, they are very precise in measuring the angle. Of course you have to calibrate system once installed but that’s the case with every wind wane.

      1. Yes, that much is obvious (using the motor as-is), but you still haven’t answered the question about absolute position index. How exactly do you propose to ‘calibrate’ a system which will always start in an unknown state? Honestly, I like the above solution of discrete hall sensors placed in a ring.

  3. Many pancake fans already have the hall effect sensors built in. Glue a plate with the cups to the top of the blades, or cut the blades off and glue to the top of the center housing.

    For that matter, if you know the direction of the wind (ie on a wind vane) mount the fan into the wind. Use the outputted voltage or the hall-sensor output.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.