Hi, I just thought I'd show a little of what I've done so far on my HDD POV clock.

First, though, I should thank Alan Parekh for the inspiration. I had so much fun working on this thing that I've decided to go back to school for a computer engineering degree. I had plans to go back for something computer related, but I'm glad this project gave me more direction. Today was my 3rd day of class actually.

I guess the whole point of me trying to build this was to prove to myself that I could do it. For that reason I didn't borrow anyone else's code other than the servo arduino lib and a bit to attach an interrupt to a clock. In my limited experience I don't know I would have been able to figure that out from the atmega 328 datasheet on my own.

I don't have a schematic but if someone really wanted one I guess I could draw one up. The uC is an arduino pro mini. I picked that because I heard arduinos are good for noobs. Also, I have 4 transistors. 3 drive the RGB LED strip, and one boosts the signal from the IR photodiode, which measures the platter's cycle length and phase.
Hey, I don't know if I just need a haircut and a shave or something, but the folks at RadioShack really watched me like a hawk when I started digging through those component drawers. Are there a lot of theiving nerds?

Anyway, at some point I decided it would be smart to bore out one of the screw holes on the HDD PCB to run some wires through. I guess these things must be layered because, although there was no apparent damage to any of the visible traces, things began smoking when I applied power afterward. I drank. Next, I got to learn about delta-config brushless motors. As it turned out, some RC aircraft motors are similar to that of my HDD. I bought a RC motor ESC and it worked. Phew! Now I had speed control as well. The project also draws only about 150mA now instead of 4A@ spinup and 1-2A thereafter. It's also much quieter when I spin it slowly so maybe I could tolerate it running all the time.

As far as the code, I'm not going to post it yet. I just don't want any suggestions because I really want to see how well I can do it on my own. It's also pretty messy. Some of it was written by a person who had little idea what he was doing All I can say is I'm glad I found out about interrupts! Things were pretty stressful before then. I use two interrupts.
The first interrupt just records the time that the slot reaches the sensor and sets the position to zero. [It actually sets the position to the offset value since the sensor isn't at 12 o'clock and I like to think of 12 as pos 0.] Now I can tell how long a rotation takes and how long it has been since the last completed rotation.

I have the rotation split into 180 divisions. I guess I'll call them roxels (rotational pixels) since making up jargon is fun. I'll call one full rotation of the platter a cycle. Then we know to draw the next roxel every cycle length/180. I then set arduino's timer2 interrupt to overflow every new roxel and advance the roxel counter. I found this to be very efficient compared to other methods I tried. Actually, I was really proud when I figured this out, but I've been dying to know if everyone else is using this method as well.

Right now I'm working on the RGB background like the HDD clock with the amazing casemod and I've got some good ideas. I also want to attach a chronodot I purchased but that will be cake.

I hope you guys were able to follow my explanation as I'm not sure I'll ever really get to documenting it fully. I'm glad I found the scene and got inspired. Here's the link to the youtube vid of my proj.

Hey stretch, I'll be happy to help when you're ready. I haven't done much work on it recently -- school is kicking my butt (and I probably could play less video games.) Realistically I probably won't do much until spring break or maybe even summer.

I'll give an update of what more I got done before I got busy with other things:

Chronodot is attached and working for r/w.

Found a way to squeeze more colors out of it. Before I had r/g/b and any combination thereof. I found that I could alternate colors to increase my gamut. (did I use that word right?) What I mean is that I could draw a color in say the 12oclock position. During the next rotation I could draw a different color @12. The result, due to pov, is a combination of the two.
I'm pretty sure I can spin the platter fast enough to get 3 changes and still maintain good pov without too much perceived strobe. Interestingly, if the platter spins too slow and the strobe effect is visible, looking at the clock makes me nauseous. I gotta believe this is the trick behind those police/government sick lights. I saw a pic of one and it appeared to be an array of LED's. I assume they are RGB's that cycle some pattern when they stick it in your face. Definately a fun idea for a future project.

Anyway, having more colors available, I wrote a background function that displays the colors in progression behind the hands and hour markers. I get about 16 colors excluding variation in brightness, so it doesn't really look blended yet, but that's the plan.

Lastly, I had several drinks and decided to rewrite everything. The code is much cleaner (surprisingly,) but It introduced a bug that causes the display to jitter about once every 30 sec or so. I'm having a little trouble tracking it down so I feel a bit deterred. Adding features is much more fun than tracking down an intermittent bug. I think it's due to interrupts occurring over eachother or delaying oneanother. I'll have to figure out how the uc/Arduino handles that.

I hope someone makes a puke light soon, that might be a cool feature I'll add to the clock in time.

Your a game man deliberately making a puke light. Yeah uni & computers is keeping me busy to, so I can't see me getting to much soon.

If you get bored I would be interested in an overview of both your setup and code. Last time I looked at the project I couldn't quite figure out how to position & keep time. I could do one or the other but not both. (not helping that i've never done anything with a microcontroller)

Well, I'm pretty much finished. I ended up being able to produce 24 colors (* 2 using something like a blurring trick, but only at high speeds.) Some pretty nice eye-candy going on here.

Unfortunately, the chronodot does not give a correct ambient room temperature as the chip heats up internally during operation. I'm going to try to run it at 3.3V instead of 5V and see if I can get a better reading.

I added 2 standby modes, one turns the motor and led's off for lowest power, the other keeps the motor spinning at the lowest speed, spinning and lighting up at preset times, say every hour or half hour. I'm really happy with the power consumption across all modes since installing the hobby ESC. The clock as a whole draws 1.116W under slow-motor standby and 4.56W under full speed/color operation. I wonder if my RadioShack multimeter is giving me a line of BS, but maybe not since the ESC is designed for low power battery use.

I started resoldering some stuff to put it in a case and in the process I think I fried my arduino pro mini. After upload, I get some checksum errors and blinking. I'm waiting on a couple more from sparkfun.

I'll have a new vid when I get the parts.

I also talked to someone about releasing the source. They told me if I wrote the code myself from the bottom up than it might have some value. I've used OSS my whole life so I would feel a bit guilty about that, but it would be really cool to sell a couple on ebay and actually buy myself some nice tools and parts for my next project. I'm just starting school for this stuff so I'm kindof broke and I think it would be great to be able to make my own pcb's, and have a nice soldering iron/multimeter etc... I got the idea from Alan and he was great about documenting his work so I'm wondering if what I'm thinking is immoral. I'd love to hear an opinion.

I also talked to someone about releasing the source. They told me if I wrote the code myself from the bottom up than it might have some value. I've used OSS my whole life so I would feel a bit guilty about that, but it would be really cool to sell a couple on ebay and actually buy myself some nice tools and parts for my next project. I'm just starting school for this stuff so I'm kindof broke and I think it would be great to be able to make my own pcb's, and have a nice soldering iron/multimeter etc... I got the idea from Alan and he was great about documenting his work so I'm wondering if what I'm thinking is immoral. I'd love to hear an opinion.

Nothing wrong with making some money from your projects. I don't think there is anything wrong with keeping your code private. 99% of code that is in devices all around you will never be released. I know how you feel though since there is a big push right now for open source everything but that is just one way to think about things.

A kit version is also on my list of kits I want to build, I have been saying that for a long time though...

I was just thinking about putting a magnet and hall effect sensor on the clock to eliminate the need for an ugly IR diode, but I worried about balance and vibration. I wonder if a hall effect sensor alone could detect the slot without the need for a magnet. Could I magnetize the platter?

I was just thinking about putting a magnet and hall effect sensor on the clock to eliminate the need for an ugly IR diode, but I worried about balance and vibration. I wonder if a hall effect sensor alone could detect the slot without the need for a magnet. Could I magnetize the platter?

I think that will work. Definitely with a small magnet but it might even be able to sense the slot.