You see since I stopped using the Amiga regularly (this sounds like a meeting of Amiga Anonymous, of which I'm sure there'd be many many members ;p).. I've "looked after" the disks by storing them in some large wooden crates, I've got 6 of these crates, each holding around 500 disks, plus a couple of large shoe boxes, and an old 80 capacity smoked plastic lid box, each crammed as full as can be.. all in all there's somewhere around 5000 disks.. That's rather a lot to go through.. especially when you didn't label many of them appropriately..
Around 3 years ago, I tried reading the disks manually.. I made it through a hundred or so, before I realised my brain had gone numb, and I was at risk of chewing my tongue off and needing replacement eyeballs. In short, it was one of those tedious repetitive tasks that everyone really enjoys ;p
10 Insert disk, run capture program
20 Wait a couple of minutes
30 Eject disk
40 Insert new disk, run capture program
50 Rename last captured disk
60 Goto 20
Ideally line 60 would read
60 If bDisksRemaining Goto 20 Else Print "All Done!"
But that would just be hopelessly optimistic, given the quantity of disks to get through.
So roll forward to 2 years ago, when I rediscovered the Lego Mindstorms kit I had sitting in a cupboard (probably couldn't find it due to all the floppy disks). I had an idea that if I could get it to do the Insert/Eject part, that pretty much I could deal with the rest 'later'.. and that the entire process could be automated.
Cue the fantastic Lego Mindstorms Floppy Autoloader..
Building this was an entertaining challenge, as Mindstorms has a few things working against it for designing a Floppy Autoloader..
- Lego only supports fixed divisions of it's dimensions, which are not aligned with 3.5" media.
- The Mindstorms kit has only 3 motors (ok, 2, but I found a spare)
- The Mindstorms kit has 2 push sensors, and 1 light/color sensor.
- The RCX is fairly dim.
The motors & sensors let to the odd design above, rather than trying to create a set of lego 'fingers' to insert, and eject & extract the disk, the drive rotates, allowing just one linear motion to insert the disk, cause eject, and extraction for free via gravity.
Did it work? yes. Was it reliable enough to use? Not really, the tolerances for accidentally getting 2 disks from the stack instead of one, were a little fine, and the Lego would drift over time.. after just a few disks, it would generally mess up. I'd make better progress manually.
So I put the whole thing in a cupboard.. figuring I'd revisit it another day..
And then I saw one of these on ebay.. It's a commerical disk duplicator.. with one of these, I could take each of my 5000 disks, and copy it onto a million more disks, until I could take over the world!!!
So I bought it.. and I won't revisit the surgery I performed on it here, as that's well covered in this post and this post, and the more recent update here.
In summary, I ripped out the controller, replaced it with an arduino, a motor controller, and a kryoflux Mounted the entire thing on a custom stand to improve the eject chances with badly labelled disks, added an expanded capacity input chute, repurposed the solenoid from inside to act as a disk stop in the eject chute, wrote some code to control the whole thing, and added a camera to photograph the disk as it exited.
This last part finally meant I could just load it up with disks and leave it to it. It will hold around 80 disks a time in the hopper, and each one is fed into the drive, ripped to stream & adf format by the kryoflux, then ejected. As it pops out, the solenoid blocks it from going too far, the camera takes its picture and then the solenoid fires letting the disk fall to the ground. Check out a few more pictures of the oddball woodwork & the unit here.
So far in over 300 disks, it has had 1 disk cause a blockage (am I glad I carefully wrote the code to check that!!) which was due to a badly torn and peeling label. We'll ignore the 20 or so disks I had to redo after I turned out the light in the room where it was running & thus had nice black images instead of disk photos.
It takes around 3 to 4 minutes per disk, so I've got a few weekends ahead of me with it running as much as possible.. meanwhile, I need to write some software to let me browse & catalogue all this data!