I have a bunch of old hard drives lying around, all IDE, one of which is only 80GB, the other is 250GB. Since they’re entirely useless to me as small IDE drives, I’ll be turning one of them into a magnetic stirrer. It’d be super helpful to have one around for making PCBs, so I can agitate the developer/etchant solution. Purpose-built magnetic stirrers cost $100-$200 and I don’t feel like spending that amount of money on one.
First step is getting the build sort of planned out, and seeing if I can get the hard drive motor spinning. Since a hard drive motor is just a brushless DC motor, I’m using a cheapo 10A RC ESC to drive it. The ESC is controlled by an Arduino and a potentiometer to vary the PWM frequency sent to the ESC. ESCs “want” a servo-like PWM signal, so I’m using the Arduino Servo library to drive it. You can’t just immediately give the ESC the speed setting you want, though. You have to give it some specific signals as it boots:
- Boot the ESC
- Give it a signal that corresponds to some slow speed.
- Wait a few seconds.
- Give it whatever speed you want.
This is a safety feature of the ESC that prevents it from spinning up a motor if you start your airplane or whatever with the throttle stick all the way forward. The ESC will wait for the throttle to be brought back before it starts spinning up the motor.
The Arduino code to accomplish this is shown here:
So now we can drive our motor and use a potentiometer on analog pin A0 to vary the speed, exactly what we need!
The motor draws about 60mA at its lowest speed, and around 1.6A at its highest, so a 10A ESC is complete overkill for this, but that’s just fine, ESCs are pretty cheap.
There is a bit of weirdness with the motor that applies to all BLDC motors: at low speeds, the motor doesn’t spin up cleanly and will sit around and “twitch” until it’s driven at a suitably high speed. I’ll fix this by changing the minimum throttle value that can be sent to the ESC and it’ll work just fine.
Next up will be getting an ATTiny and using that to drive the motor, and putting everything on a protoboard inside the hard drive enclosure, and somehow getting a knob and power connections outside of the device. Or maybe I could go the “Internet of Things” route and use an ESP8266 or Bluetooth board to control it from my phone.
On the other hand, I despise IoT garbage.
For now, enjoy this video that basically goes over everything I just mentioned!