Over the years I have had the need for a robotic DVD burner. A device I can load a stack of DVD into and unleash. Hours later, I have a neat stack of burned disks. Luckily for me, I had access to one at work. With the right permissions I was able to bring it home and use it. I burned several 50-100 runs of DVDs for various school functions and for the FIRST LEGO League movies I had made.
Then came the horrible day when a power supply in my work horse PC failed catastrophically. If spewed high voltage out the 5, 3.3, and 12 volt lines destroying everything except an 3 1/4 inch floppy drive. Included in the mayhem was my system drive, my data drive and my backup drive.
So let me pause by explaining my backup methodology. The system drive I do not backup as I can rebuild it fairly quickly from source disks I keep in a box for each computer. The data drive on the other hand includes documents and pictures and other files I can’t recreate. So these files get copied from one drive to another every night using a great tool called Handy Backup. Since the second drive powers itself down most of the time, its life should be much longer than the data drive. If my data drive fails, I have a copy (as of the previous day) of all my files.
Works great until you have an event that destroys both drives (and the mother board, CPU, fans, DVD drive, …) leaving you crying over your stupidity.
My first solution was to have the backup drive now be a USB device powered from the current limited interface. Still not ideal, but would see me through to the next phase.
Around this time I was playing with an older computer I had and converted it to a Linux box. I started to run Samba to allow other computers to see its hard disks as external mappable drives. I installed a second data drive and did the nightly backup this time with rdiff-backup that had further advantages over Handy Backup.
In this new scenario, I re worked all my other computers to dump data onto the file server. Email databases, document storage, pictures, all got transferred to the Linux file server. But now I had the same problem of multiple disks exposed inside the same case. A power supply failure could set me back again. So what is one to do?
My solution was to burn all the data from the data drive to a series of DVDs. Every time enough files changed or were added, I would burn the new data to another disk. But doing this manual was a lost cause. With a busy life, who has the time? Enter the robot.
After some searching on the web I found others who had taken the robotic approach. I looked into off the self products and found them to be either too expensive, or limiting in various ways. I then started to prototype my very own design and had gotten to the point of a pick and place robot controlled by an Arduino, but the finickiness of the design left much to be desired.
Plan-B: Monitor eBay and score a used Primera Composer.
Primera makes a line of duplicators. These tie to Window boxes for the express purpose of making duplicates. This was the device I borrowed from work. They come in various styles (CD, DVD, multiple drives, printer, ..). I only wanted the robot part as I would strip the unit of its over the hill DVD drives and replace the Firewire interface with USB2.0.
As is normal, I watched ebay sales of these units for a few weeks to get an idea of the prices. I then started bidding waiting to the last second to place my bids. After the 3 or fourth attempt I won a single drive DVD (x1!) unit missing the power supply, and the in and outfeed bins. Power supply was easy to find a replacement on line. The bins I had to hand craft from plywood and dowels.
Next I cleaned the whole device and connected it to a PC and installed their software. Using a serial port sniffer (FTE Serial Analyzer) I was able to reverse engineer the interface. Next I connected it to my Linux box and started writing the control software. In a week or two I had the ability to drive the robot from position to position, and pick and place disks.
Now I had to write the software to find the changed files, group them into discs, and burn them using the robot. This took a significant amount of time having little experience with burning disks from the command line. I also had to manage the files with a database and had to learn Sqlite (a great thing to have learned). After weeks of debugging in spare time, I have a functioning system.
As part of my nightly cron job, the software looks for all the new files and adds them to a SQL table of files to burn. It then makes a list of what will fit on a disk and if enough data has changed will call the robot to pick and place a disk to burn. Sometimes I can hear the robot kick in at two in the morning if I am having a bad night sleep.
And now for the last stage of my backup strategy; I mail the disks to my mother who lives out of state. Now even if my home were to burn down, I would have a full backup.
Now some may ask why I do not use an online service for my backups. The reasons are:
- I am a geek
- I have a terrabyte of data (mostly photos) to backup. You have to pay for that kind of service
- Can I trust them to not peek at my files? I have financial and other data I do not want to share with the “cloud”
Having multiple disks exposed within a case is not a problem if it is a redundant backup. Keep the data on the other computers as well, and just back them up (don’t move them) to the linux box. It is not very likely that both machines would go down at the same time, and if only one does, you have a copy on the other one. Now fire or theft are a different problem, and cloud backup, or other off site storage works well for this. I use a program called MirrorFolder that mirrors the data in realtime to a linux box, so no backups required. Set the linux box up to trap deletes using the recycle bin, and you are protected against them as well.
Backing up data from one machine to another is indeed the critical aspect. Trusting your data (on one or more disc drives) to one machine exposes you to the problem I had. One power supply failure and you lose everything in under a second.
Copying data from one machine to another (or to another media) is the solution. I use HandyBackup, but I will have to look at MirrorFolder.
Cloud backup is not really an option for me. With close to 2 terrabytes of data, cloud backups are expensive in the long run. Although the DVD robot set me back $150 by the time I was done, I could have spent that in just a few months of cloud rental fees.
Could you share how you are controlling the robot from Linux? One of my desires in the near future is to move a Bravo SE from the windows machine that currently controls it over to an Ubuntu server. Any insight into getting the robot to perform would be appreciated.
The robot is controlled via RS-232 and USB/IDE. The DVD burner is controlled via a USB to IDE converter. This allows Linux to open and close the drive door and burn the disk. The robotic arm is controlled via RS-232. The Linux box sends over ASCII commands that a small controller in the robot picks up. The controller than drives the arm to perform the various actions like “go to the input bin”, “Pick up a disc”, “Release a disc”, “go the the drive tray”, “Go to the output tray”, and “go to the discard bin”. If you were interested in remote control, an RF solution for serial communication would be a good choice. Look into the Xbee modules at Sparkfun. They also have a nice tutorial on all the different wireless solutions.