Present Perfect


Picture Gallery
Present Perfect

Overy 0.1

Filed under: Hacking,morituri,Music — Thomas @ 23:41


I' m finally making some progress on one of my 2010 goals - making a Lego robot that can take CD's and feed them to my computer to rip.

What am I trying to do ?

I'm making a computer-controlled robot out of LEGO that will allow me to rip multiple cd's onto my computer, using morituri.

The goal is:

  • to use Lego Mindstorms for the robot
  • only use regular lego pieces, like Technics, for everything else
  • work with my computer, but preferably with any
  • rip 50 cd's or more in batch

I've been asked a few times why I'm doing this. The main reason is because by now I own over a thousand CD's. I have most of them ripped by hand to Ogg Vorbis, but disks are big enough these days that I really want to rerip all of them just once to FLAC. I've spent quite some time writing an accurate CD ripper for Linux, and I want to have all my audio CD's in correct digital bytes on a computer, so I can use the files to transcode to whatever format is useful for whatever player I'll have.

This probably sounds strange, but a while ago I got to wondering what I would not like getting stolen from my apartment, and my CD's are pretty high on that list, if not number 1.

Some people ask 'why not just do it by hand? You'll probably get it done just as fast as it would take you to make the robot.' I guess people who ask that question don't understand the joy of making something. But there's another reason to do a robot - I'm planning to offer my friends a remote digital backup of their music. Ideally, I could drop this robot off at a friend's house with a Live CD and some instructions, and I would then transcode their music for their iPod or whatever they have. And keep an offline copy at my place purely for archival reasons, of course.

In any case, I am working on my first attempt at robot after building two of the sample ones from mindstorms.

The base mindstorms set is a bit limited piecewise, so I started by getting a really big Technics set that has sawtooth pieces (because that's the mechanism I wanted to try to use for the CD loader)

After looking at a few other approaches out there, I decided I wanted to try one of my own before trying to reproduce someone else's.

After lots of thinking and discussing with some friends, the following ideas fell into place:

  • If I want 50 cd's at once, grabbing one is going to be a problem. After considering pneumatic pumps, arms, some fingers going through the middle and opening, or a wheel at the top of a stack, I went for a simple approach using the sawtooth pieces to space the cd's, and a little axle going through the middle
  • Peter had a great idea to use a USB drive - this way the robot is self-contained and should work anywhere with any computer
  • I wanted to use the CD drive itself as much as possible, so I came up with the idea of rotating the CD drive, so that I can drop ripped CD's by ejecting the CD when it's 180 degrees rotated. I also want to insert the CD when the drive is either at 90 degrees (facing down) or some other angle, before loading it.
  • Mindstorms has 3 motors, so you can roughly (without weird tricks) create three kinds of movements. So I'm using one to pull in the CD rack, one to rotate the first CD 180 degrees into the drive, and one to rotate the drive after ripping.

Here's the CD loader I made; it doesn' t fit 100% but rubber bands finish the job for now. I'll need more sawtooth pieces if I want to load 50 cd's - anyone know where to get some ? The LEGO site doesn't sell those pieces individually.
This was with 2 motors but without CD drive; it already has the mechanism to pull in the CD rack, and the axle (with wheel rim) to pick up the first CD in the rack. It's mounted on a touch sensor so I can stop pulling in the rack when the rim hits a CD. The motor will then rotate the disc 180 degrees around the axle of the sensor, and drop it into the CD drive.
This is the first complete build that I finished tonight. The CD tray is mounted and opened so you can see where the CD is supposed to go. After loading, the CD drive would rotate back to horizontal, then eject the CD the other way around to get rid of it.

I thought I was ready to start trying it for real, but when I went through the process by hand, I noticed two pretty fundamental problems...

First of all, the external drive I used is one of those where you have to firmly press down on the CD so that it fits tight around the round bit in the center. My robot cannot press down. It would be very wobbly anyway because at the point where it hits the tray the CD reader is floating at an angle.

Second, it seems this external USB CD reader has no way of triggering a load electronically, something I had not thought of. It turns out most external drives don't, and again, my robot cannot press on the tray to close it.

So, I guess tomorrow I'll try to shop around for external USB CD readers that can eject and load electronically, and that have a normal tray in which I can drop the discs, like my desktop PC's have.

Backup plans are:

  • Getting one of those hoover CD readers, that suck in and spit out CD's. There again I don't know if you can spit out electronically.
  • Getting one of those 3.5 inch carcasses and put in an internal CD drive. That will probably make it really heavy though, so that might give stability problems with the robot.

If any of you out there know about an external USB CD reader that has computer-driven eject and load, please let me know! For example, this LaCie Lightscribe drive looks like it might be one that would work - if you have it, let me know.


  1. Hello.

    Your project seems to be very interesting and the idea about a roboter ripping your CDs is really cool :) And I really wonder how the complete thing look like.

    Kindest regards

    Comment by lineak — 2010-11-20 @ 00:06

  2. This is a really neat project you have going! My CD collection is much smaller than yours, so I don’t think I’ll ever need to automate it, but I look forward to seeing your ideas progress. I’m more of an appreciator than a doer, so I enjoy appreciating doers like you!

    On the topic of morituri, have you put any thought into getting it into Fedora as an official package? I recently put F14 on my main desktop, and I hope to start using morituri to archive my music soon, but the only RPMs you have available for download are quite a bit older. Being able to install it from the repos would be ideal.

    I’m getting excited about using morituri, and I may have a couple more questions for you before I start ripping my CDs (if I can’t answer them by looking at the documentation and code). Thanks for your work on this stuff, and for sharing!

    Have fun with Overy!

    Comment by Gideon "Gnafu" Mayhak — 2010-11-20 @ 03:07

  3. bricklink.com unofficial Lego marketplace

    Comment by Raf — 2010-11-20 @ 04:28

  4. http://lossestenen.nl/index.php?option=com_render&productlist=productlist9&Itemid=262

    Comment by E. — 2010-11-20 @ 18:24

  5. An interesting project, and one I will watch most closely. Have you thought of using a small vacuum motor and suction cup to puck up the CDs ?

    Comment by Moldor — 2010-11-21 @ 21:57

  6. Yes I have, but I can’t figure out if any current LEGO sets have the pneumatics stuff to do so… Any idea?

    Comment by Thomas — 2010-11-23 @ 09:50

  7. I’ve actually thought about doing this very same thing before (many moons ago.. never materialized for me though) :D — some one already mentioned bricklink.com.. but I found it curious that you choose the saw tooth pieces.. I had actually planned to use a worm screw, with a gravity feed, so I’m curious to see how your project turns out! Good luck!

    Comment by Shawn — 2010-11-23 @ 02:44

RSS feed for comments on this post. TrackBack URL

Leave a comment