Hard Drive Spin Coater





Introduction: Hard Drive Spin Coater

A spin coater made from hard drives.

A spin coater is used to coat a thin film on the substrate. Like a dip coater, commercially produced units are too expensive for the average people to buy, but the operating principle is very simple.

People have tried to make spin coaters using computer fans, but commercial ones needs to spin up to 10,000 RPM or so. For such a high speed, a method is needed to fix the substrate when it's being spun. Gluing the substrate to the rotor is messy and will eventually clog the motor, therefore commercial units uses a specially designed chuck to hold the substrate, either by clamping the substrate or using a vacuum.

A hard drive can spin up to 7200 rpm or even futher depending on the load and the supplying voltage. Using a ESC motor controller (commonly used for driving BLDC motors in quadrotors or UAVs), we can control the rotor speed without building the complicated driving circuit. The hard disk spindle has a non-rotating shaft, which can be used to pull the vacuum we need.

This isn't new, of course,


Step 1: Motor Modification

To hold the sample in place, a vacuum pump is connected to the bottom of a modified motor. The vacuum tubing is glued to the shaft using instant glue.

The hdd motor is drilled through its axis, which is made of hardened steel, and requires the use of a carbide drill bit.

A O-ring is fitted on the rim of the motor.

The O-ring costs 10 cents where I live.

The drill bit is 3mm in diameter and costs about 10 USD.

Step 2: Assembly

ESC handles the control of the motor.

Arduino converts the knob position to PWM and controls the ESC.

Knob position is displayed on the LCD display.

Since I don't have a 3D printer to make the case, I simply used double sided tape.

Step 3: Conclusion

1. Depending on the ESC, you might be able to set different operating modes, breaking on/off, fast/slow startup for the motor.

2. If balanced well, small slides could spin to max speed, which is roughly 8500 rpm for this motor.

3. One should be able to design a better chuck using a larger O-ring and giving more suction.

4. For the first few runs and during drilling of the motor shaft, some bearing oil will spill out due to the heating during drilling or the pressure difference, but it didn't seem to matter to the operation. The suction force is enough to bend a cover slide to the point of breaking.

P.S. : If I get a 3d printer, I'll make a better vacuum connector, sample holder, and a nice casing for it.

I've included the source code for the arduino pro mini. Since I prefer direct programming, the code will be only readable to those who know something about AVR. However if you know how to send PWM, it can be easily done using the Arduino IDE.



  • Science of Cooking

    Science of Cooking
  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Spotless Contest

    Spotless Contest

We have a be nice policy.
Please be positive and constructive.




Almost finished! Now just to code this beast! Gonna do PID with that IR sensor and have the option to input a speed. This will be my first coding project that actually requires me to write functions and think a little bit! Should be fun.


Dear RyanG30.

Please explain and put all the steps along with the related codes on the site to use the members.

And gotta glue on the vacuum adaptor, solder the motor to the esc, attach the battery pack, and build a case for everything

Cool! How is it going?

well, I assembled the entire system before testing the individual components, and I tried to code everything without testing each part of the code, so that was a pretty stupid mistake. Its been going pretty slow, and after a month of trying to program the thing I have decided to go back to just making a servo tester and using something similar to the GaudiLab's hard drive centrifuge. I might also try to get the inturrupt code to work so I can at least have some reading from the tachometer and get a speed from it.

Its worth noting that most drives made after late 90s will have fuid bearing and the bottom of the motor is sealed. Drilling through saft and seals break the bearing and rendering it useless.

Hey so I'm a little confused within the coding for this. These two libraries are included "../library/IC595.h", "../library/LCD.h" but I cannot find them online to import.

Any help would be greatly appreciated.

Well, I didn't include the circuit diagram and the libraries for the LCD and IC595. Basically I used a shifting register (IC595) to apply voltages to the pins of the LCD, and I wrote my own library for those.

The connections aren't standard, however you can connect them anyway you want and write your own library.

Great guide, though, no need to use an arduino to generate PWM - I made do with a simple astable 555 based oscillator with fixed period and variable signal width (and of course inverting it throug an NPN transistor as it's more stable near the high end)

In Taichung... Found a local hackerspace that had a Ukrainian Steel Drill that did the trick! I hope that the resistance of the knob dosnt matter when it comes to controling the speed anf interfacing with the arduino! I got a bunch of parts for this and I am going to also attach a diy tachometer.

The hackerlab here has dozens of 3D printers. I am designing a good chuck to fit over the piece now (to allow for more accurate balancing and even suction)

Let me know if you have any files for a case and I can mail the parts to you via 7-11! Alternatively Taipei has a really sweet hackerspace as well...