Hard Drive Persistence of Vision (HDPOV)

 by vishnubob
Featured
Test Pattern 1.JPG
System - Perspective.JPG
System - Above with Platter.JPG
System - Above without Platter.JPG
The platter of a hard drive spins well over sixty times a second. If a narrow slot was cut into the platter to allow LEDs to shine through, we can achieve flicker fusion and trick the eye into seeing a stable image. This phenomenon is known as persistence of vision (POV). There are many examples of LEDs being used for POV, building an image by moving the LEDs or having the observer move relative to them. The LEDs used in this project do not move, and the image is built using the interference of the slotted, spinning platter.



The system works by timing the slot in the platter. The Arduino uses an internal timer to clock each revolution. It achieves this using an infrared gate, which triggers a hardware interrupt on every full revolution of the platter. The Arduino uses the revolution time and phase to schedule a second internal timer. This second timer uses an interrupt to schedule the timing of the LEDs, firing tens of thousands times a second to build a stable, visible image.

This work is based on Ian Smith's version of the same. His work is excellent, and his website on this topic will help provide a complete picture for this instructable.
 
Remove these adsRemove these ads by Signing Up

Step 1: Gather Materials

Hard Drives - You will need to gather a few unused hard drives. It's no problem if they no longer function, but it's imperative that the candidate hard drive can spin indefinitely when it's powered.

Arduino - If you don't have an Arduino board, this link will show you where you can buy one. I developed this with a Diecimila, but I would expect the code to work on a Duemilanove without changes.

ULN2803A - This is responsible for switching the high current 12V LEDs.
Digi-Key: ULN2803APG-ND

RGB LED Tape - The best source I've found for tricolor LED tape is from Super Bright LEDs. A single 19.5" strip costs $19.95.
Super Bright LEDs: NFLS-RGB15

270 Ohm Resistor - Limits current to your sensor source.
Digi-Key: 270H-ND

10K Resistor - Pull-up for your sensor output.
Digi-Key: 10KH-ND

You can build the platter sensor from either an infrared gate or a Hall-effect sensor. The infrared gate uses the slot cut out of the platter to disrupt the beam. The Hall-effect sensor will require that you glue a small but strong magnet exactly 180 degrees from the slot in the platter.

If you decide to use an infrared gate, you can either build your own gate from scratch or you can buy a manufactured gate. If you choose to build your own, you can use any old pair of infrared emitter/phototransistors (mine are from Radio Shack), or you can purchase the following:

Infrared Emitter - Used to provide an infrared beam to time the platter.
Digi-Key: 475-2648-ND

Infrared Phototransistor - Provides a pulse on every platter revolution.
Digi-Key: 475-1080-ND

I did not build my rig with a Hall-effect sensor. I chose to use infrared because I had the parts lying around, but a Hall-effect sensor is less obtrusive. If you choose to go the Hall-effect route, you will need to adjust a few details in this tutorial. For example, you will need to glue a magnet directly opposite of the slot. This will require changing the code loaded onto the Arduino to account for the 180 degree change in phase.

I have not tested this Hall-effect sensor, but I would expect it to work fine:

Hall-Effect Sensor - Provides a pulse on every platter revolution.
Digi-Key: 620-1001-ND
1-40 of 43Next »
XxRyan787xX says: Mar 31, 2013. 8:35 PM
Hi, I have finished building your version of the led hard drive clock, your work is remarkable.

One thing that i can not get working is if i press "r" to display the rpm and such, it will give me a reading of about 8000RPM, although if the key is pressed at the right time the rpm reads as something around 30000RPM - 45000RPM. I have tryed playing around with the sensor, the 'SPURIOUS_INT' Value and the gap in the platter, none however have given me a result. This ubove is causing lodes of visible glitches and the pattern is all messed up (Test Pattern 1).

Any help from Vishnubob or the community would be greatly appreciated.

Note: I have bypassed the start-up pattern because it does the red animation but stays red and does not cycle through the colors.
tesladude123 says: Mar 18, 2013. 2:09 PM
The python script is giving me a hard time, I am using windows 7 and have python 3.3.
I get this error, invalid syntax: no module named serial, this happens with time also.

Where can I download serial and time?
Do I have to tell the script where to look for these?

Any help would be greatly appreciated.
h4x0rZ says: Feb 4, 2013. 3:27 PM
Everytime I try to open the clock.py Script in Python it tells me that there's an Syntax error?

File "clock.py", line 41
print "send => %s % msg.strip()"
                                                           | this last symbol is wrong?!
SyntaxError: invalid syntax
tesladude123 says: Aug 28, 2012. 2:22 AM
(removed by author or community request)
tesladude123 in reply to tesladude123Sep 7, 2012. 1:24 AM
Please, I cant do any thing with the clock if i cant get this to work!

Help!
muztard in reply to tesladude123Oct 27, 2012. 4:10 AM
You have to use an older verison of the Arduino IDE. http://arduino.cc/en/Main/Software use the version 0023. ;-
tesladude123 in reply to muztardOct 29, 2012. 11:49 PM
Thanks for the reply, the older version works perfect. Thanks :-)
muztard says: Oct 27, 2012. 6:24 AM
Here http://steyer-tec.steyer-art.de/?page_id=32
i
s my version of an HDD POV Clock with the help of the Articles from Vishnubob and David Hend ( http://www.instructables.com/id/Hard-Drive-POV-Clock/ )



THX to Vishnubob and David Hend! Great Work!
IMG_20121024_160022.jpg
sonkaraman says: Aug 30, 2012. 6:51 AM
please can anyone tell me about the HD port like wat exactly it is and where do we
connect the HD port.
JXplicits says: Dec 30, 2011. 11:48 AM
This sketch is just the test pattern and not display the hours like the video, Right?

Sorry for my english if there is any mistake.
tesladude123 in reply to JXplicitsAug 28, 2012. 2:09 AM
Umm, i think its for both, there is a file called clock.py that has to be open by some sort of program.

Go to step 14. Good luck!
Cobra_Phil says: Sep 13, 2011. 10:32 AM
There is a project at kickstarter about a POV hard drive clock...
http://www.kickstarter.com/projects/680714141/hard-drive-ticktock-pov-clock
jberwick1 says: Sep 10, 2011. 12:24 AM
anybody else having a hard time with python/serial/mac?

its giving me a bunch of trouble, and id hate to give up on such an awesome project, right at the end.
velaron says: Sep 7, 2010. 3:32 AM
Hello all I am wondering, can i use hall sensor ?
teknobudd says: Aug 9, 2009. 2:53 AM
The ANODE is the longer and the cathode is the shorter leg of just about any L.E.D. A phototransistor's shorter leg is the collector and the longer leg is the emitter. You can look at any LED from either top or bottom and you will notice its base has a flat side - that is the cathode side. In the case of a phototransistor, the flat side indicates the collector side. Your instructions should work, but the terminology is incorrect.
Bozza says: Dec 31, 2008. 1:01 AM
Hey, just wondering what brand and how old the hdd u used was. ive opened up two seagates, which at first seemed to spin without stopping, however once the reading arm is removed, they only spin for bout 30secs and then stop. Is there any way to mod the drive to prevent this?
DJNASHA in reply to BozzaJul 25, 2009. 6:38 PM
remove the read arm!
Derin in reply to BozzaMay 10, 2009. 3:33 AM
Try to gut the arm and keep the inner parts(coil,for example) plugged in.
zh11107 says: Jun 23, 2009. 7:37 PM
get to da parakeet says: Nov 27, 2008. 6:23 AM
OK I WANT TO POWER MY MOTOR IN THE HARD DRIVE! how do i do that/??
aiden120000 in reply to get to da parakeetMar 22, 2009. 8:26 AM
capslock makes you sound rude
vishnubob (author) in reply to get to da parakeetDec 3, 2008. 6:37 PM
I use ATX power supplies harvested from old machines.
Jimwright says: Dec 18, 2008. 5:55 PM
My friend Richard M and I finished one today, and it's great! I don't know if my one small problem was the result of using a LED / sensor gate from a floppy drive (see comment below), but it wouldn't sync until I widened the disk gap a little (less than 1/8" total). So, be forewarned.
vishnubob (author) in reply to JimwrightDec 18, 2008. 7:09 PM
Congratulations! That's awesome! If you can, please post pictures of your rig, I would love to see it. The sensor required the most tuning, I'm not surprised you had to make this adjustment. Did the code work well for you?
Jimwright in reply to vishnubobDec 19, 2008. 11:02 AM
Well, mine looks mostly like yours. The wood blocker is one piece, due to the small size of the IR gate. (Pix #2 is the gate, before I removed it from the PCB of the junked floppy drive.) I cut the RGB tape very short and scraped the traces bare to solder on a compact 4-lead ribbon cable. The RGB tape stuck OK. I alcohol-wiped the surfaces and washed my hands. Oh, and 2 coats of varnish on the wood. Otherwise, I'm sure the tape wouldn't stick. I chopped a segment out of the spacer ring below the disk to counter-balance, but it's too much. (You can see the removed segment in the pix.) I wound up adding a lot of screws/washers to the hub to un-compensate. It runs smooth. I didn't get a pix of the completed unit with the IR detector installed. It clamps right in the shallow wood slot. The software runs just like your video. Mine has a very slight jitter. No big bother. I want to make an arduino-less version. I think it is feasible to trigger the RGBs with 3 disk-edge slots and adjustable delay RGB triggers. My electronics basics is Nike Hercules school, but I'm much encouraged by your pioneering. THANKS.
Almost Done.jpgDetector from FDD.JPG
Jimwright says: Dec 9, 2008. 4:22 PM
I ripped open a 3 1/2" floppy drive and found a LED / sensor. (Lots of them in printers too, as I recall.) It even had a diagram on the back of the pcb that matched the schematic here. I rigged it up with the 270 and 10K resistors, and it put out a great 4.7V when the gate is blocked. What's nice about it is that it's very compact (and free).
frollard says: Nov 28, 2008. 8:59 PM
Instead of using the slot as a thru-device could you mount the ir led AND photo-ransistor up-facing under the platter, with the platter painted ir-reflective 'white', then the slot would pass overhead, causing a flicker on the transistor... You might need to use an analogue line to read it, as it wouldn't be nearly as defined, especially for the slot size. If the slot could not be detected, simply paint an infrared-black dot on the underside :D AWESOME PROJECT! I'm just waiting for a drive to die now :D
matt_sawyers says: Nov 27, 2008. 8:19 PM
I saw this on YouTube and I've been waiting for you to make an instructable of this! I'm stoked! Thanks for this instructable!
shmolky says: Nov 27, 2008. 12:51 AM
I'm in the process of building one of these myself... very cool. One thing I'd add that I had to learn is that older, smaller drives often use glass based platters that have the magnetic coating/film on top which can be sanded away. What's cool is you don't lose much in the way of balance, but on the negative side it's a little harder to sand away the magnetic coating on both sides (to make a clear slit) and I don't think you let quite as much light through as compared to: Newer, more higher capacity drives use aluminum based platters which you can cut through easily, but also would unbalance the spinning platter.
GBMorris says: Nov 26, 2008. 6:36 PM
This is really cool. What would you say is the total time and cost of this project?
vishnubob (author) in reply to GBMorrisNov 26, 2008. 9:17 PM
Thanks for your comment. If you have a few drives on hand, you will spend less than $50 in parts. It took me twelve hours to fabricate, but that was an ad-hoc process. With parts and instructions, you could build this in four hours.
incorrigible packrat says: Nov 25, 2008. 7:48 PM
That's hella slick. I'm not so sure about cutting the slot all the way through the platter though(and I'm definitely not the most safety conscious one around). If it was to come apart, that thing could have an eye out, or, worse yet, bust up such a sweet project...
Guy.Fawkes says: Nov 25, 2008. 4:13 PM
Hard drives normally come in 4 speeds: 5400 RPM, 7200 RPM, 10,000 RPM, and 15,000 RPM. The latter two speeds are "expensive" and "insanely expensive," so you will most likely be using 5400 or 7200 RPM drives that equates to 90 or 120 revs/second (exactly 1.5 or 2 times the AC flicker rate in North America, 1.8 or 2.4 times the European flicker rate).
fwjs28 says: Nov 25, 2008. 8:51 AM
brilliant!
qwertyboy says: Nov 25, 2008. 8:17 AM
this is so cool! i'd make one if i had any old hard drives and an arduino, but i don't have either.
killerjackalope says: Nov 24, 2008. 10:50 AM
It creates some interesting effects in the video, if you play around with multiples of frame rates you'd get some interesting stuff, also if you can find a rough speed that's just about below POV effects then you could do the same effects in front of people, but it may case motion sickness...
merseyless in reply to killerjackalopeNov 24, 2008. 10:34 PM
now add a dvd capabilities and it would be the GREATEST gadget in the universe!
S1L3N7 SWAT says: Nov 24, 2008. 8:08 PM
This may have been helpful. http://www.sparkfun.com/commerce/product_info.php?products_id=247

It's a prebuilt version of the IR trip gate.

Very Cool though! 5 stars!
JakeTobak says: Nov 24, 2008. 1:17 PM
Wow, that's trippy. I want one.
jeff-o says: Nov 24, 2008. 9:12 AM
Nifty! Did you use 4800rpm or 7200rpm hard drives? Does it matter?
1-40 of 43Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!