A good friend of mine runs a small IT service company. He approached me a while ago asking if I would help him read some 1500 data DVDs and move the content to hard drives. The plan was that we would keep an external DVD drive by our keyboard, and feed discs as we went about our daily business in the office. It quickly became apparent that at 8-10 mins per DVD, it was a huge task, and we decided not to go through with it. The discs remained unread for some time.
Until... being housebound due to an illness, I decided to occupy my time by building a "robot" to read the DVDs. Two days later, this "thing" was standing on my workbench:
It is not pretty, and not particlarly fast, but it is surprisingly reliable, and relentless. This machine ran 12-14 hours a day for 15 days, with little more attention needed than loading the bin when it emptied (usually 2-3 times a day), allowing all the discs to be read with very little manual effort.
Here is a small (8M) video showing it in operation. This is running a test routine which simply loads discs, alternately unloading to the accept and reject bins. This is using H.265 compression for small size, and may not play everywhere. VLC handles it fine. NOTE: In the video it seems to move a bit unevenly, which appears to be an artifact of the compression. The actual machine moves very smoothly.
The following paragraphs and photos describe how it was constructed. Please keep in mind that I was ill, I did not leave the house. This machine was built from scraps in my basement (and it shows).
The first thing I built was the DVD pickup - it had to be able to reliably pick up a single disc from the top of a stack. If I could not get this to work, there would be no point building the rest.
The pointed barrel centers in the DVD as it is lowered, three screws allow the exact position of the DVD on the barrel to be adjusted. A slot in the barrel allows a plastic "pusher" to press the DVD to one side when activated by a solinoid, and a notch in the other side of the barrel holds the other side as long a pressure is applied. When the screws are set correctly, the DVD becomes a lever with the fulcrum at the notch, with downward pressure from the right hand screws helping hold the left hand side up along with friction from the pusher. This worked REALLY well.
The barrel is an old twist-on electrical connector, and the "point" is the cap from a tube of calking ... scraps from my basement - remember!
Once I had the pickup, I needed a way to raise and lower it accurately. This is the head unit I created:
A stepper motor salvaged from an old floppy drive with a homemade pully moves the pickup which hangs on a piece of strong thread. The piece of material that the thread passed through between the pickup and the front pully (from the belt drive motor of same floppy drive) is a zero position sensor. It presses on a small microswitch (from a mouse) when the pickup is fully retracted, allowing the system to calibrate the stepper postion when it starts.
The arm between the stepper and the front pully is a piece of IC storage tubing. It is fastened to a hinge at the stepper end and allowed to swing freely up and down within the confines of the two white shelf brackets you can see further forward. The arm rests on another microswitch which is held closed by the weight of the pickup unit hanging from the end of the ARM. When the pickup unit settles into a disc (either in the supply bin or the DVD drive) the microswitch disengages, providing a way to know when the pickup is in position to pickup or release a disc.
NOTE: The sensor switches are monitored by the controller (described below) and are detected with each step of the motors. This provides a very fast and accurate positioning system.
Once the head unit was in place, I needed a way to verify that a DVD had been picked up or dropped correctly. This is the infared detector that I built:
The next problem was how to dispose of the DVD once it was read. I wanted to have two output bins, so that the system could separate out the DVDs that had failed to read so we could look at them manually later.
I experimented with swinging the pickup into positions beside the computer (tricky to maintain alignment with the drive, and gets the pickup unit swinging back and forth so it takes a while to settle down), and also moving the bins back and forth under the pickup (weight of a full bin of DVDs makes it need better hardware than I had available).
In the end I settled on the simple lightweight movable ramp that you can see in the main photo above. Here is the business end where you can see another floppy drive stepper motor which moves the cardboard ramp over some aluminium rods that I had kicking around (from building radio antennas). A microswitch acts as a zero-position sensor so that the ramp position can be calibrated. At the other end is just a pair of pullys, one to hold the thread in line with the ramp, and the other to provide tension via an elastic.
To run all of this, I built this controller, which is the least pretty part of the device (thankfully mostly hidden in the bottom of the computer):
Yes, it's a bunch of components mostly screwed and hot-glued to a piece of wood. I didn't have any spare prototyping boards a the time.
To the right is a small ARM based controller board, containing an STM32F103 SOC - these cost about $2.50 on Ebay and I keep a small stash of them on hand. Across the back you can see a row of darlington transistor arrays (salvaged from a couple of dead hard drives) which power the stepper motors. The small blue board is static protection for the various inputs and sensors. Next to that are two more darlingtons which run the pickup solinoid, and the remote indicator relay. The whole thing powers from one of the drive connectors on the PC power supply, and communicates with the PC via a serial port.
To keep an eye on it without having to stay in the workshop with it, I re-purposed this old wireless barbequeue thermometer. The probe input simply reads resistance. A couple resistors from my junkbox provided readings of 48 degrees and 205 degrees. Since the default alarm is set to 170 degrees, this was perfect. A small relay (shown in the photo) switches the resistance on command from the controller, and is activated by the PC software any time it determines that there is an unrecoverable problem (usually failure to pickup a disc due to the bin having emptied).
Use your browser BACK button to return to the previous page.