CD Duplicator


I wanted an automated way of duplicating, burning, and ripping CDs that did not require drivers or specific software to be installed on the computer. This device should let me use any software I want for ripping audio CDs and DVDs as well as backing up files on my computer to disk. The device should be standalone; basically just act as my eyes and hands. Finally, I wanted something that didn’t cost $600+.


I started thinking about ways to build the device. My first thought was to use LEGOs. It would give me a great way to build up my designs and it is easy to drill and modify to integrate servos, metalwork, and other non-LEGO items. The first revision started off as a linear system with the CD drive, pickup pile, and discard pile all in a straight line. I was going to build the pickup armature on a LEGO car that traversed a set of LEGO tracks. Switches would be used to pinpoint the position of the car. This quickly developed into a cumbersome oversized design. The next revision led me to a radial design with a tall crane like device using LEGO Technic bars. This proved to be an unstable and inaccurate structure. Luckily I don’t have any photos of that version, just this sketch.

Then I decided to move to a radial design with a more solid base.While thinking about the core structure I was also brainstorming about how I would pick up the CDs. The mainstream method uses two stationary plastic supports with one movable metal gripper actuated by a solenoid.

This is a picture of a manufactured duplicator pickup mechanism.

I wanted to build something similar but I was not sure I could achieve the tolerances necessary for this to work without too many failures along the way. I would have designed the parts in 3D and then have had them fabricated but multiple failures would mean a lot of wasted money. I toyed with vacuum lifters, pushing mechanisms, and countless other ideas until I stumbled upon Matthias Wandel’s CD duplicator.

I decided to try out his pickup mechanism. It worked great!
I made some modifications such as using a larger pivot (nail) and I made the wood longer. I made those changes because I was not sure how much torque the servo would deliver and I wanted to be able to adjust it from a light touch to a large amount of force while testing the pickup strength. This longer design plus the nylon string used as a connection from the servo to the wood also gives the system some flex so I don’t pull too hard on the CD. You can see my design here.



I took all the pre-design work and combined it into the first design draft. I had purchased a rotational base platform from and put the entire LEGO platform on top of this base.

Which turned into

It was about this time when I bought my first Arduino. The first thing I did was program the servo to swing the arm back and forth. I found that spinning the structure from the bottom seemed a bit unstable so I made a modification.

I put most of the LEGO below the rotational base and made sure that just the arm was on top.

I had originally designed the lift mechanism with a worm gear to keep the lift from moving when the arm was paused. I didn’t think the servo could handle the weight of the lift and figured this would be a better design. It didn’t work as well as I had hoped. There was too much play in the gear, axle, and the way I attached them. There was also not enough torque and it moved too slowly. I went with a direct drive system instead. Here are some photos of the old worm gear assembly.

Direct Drive Assembly.


[Sidenote] I found a company selling LEGO Technic brackets for hobby servos. It made connecting the servos to the Technic blocks a snap. This was a great find.

[end Sidenote]


The first base was built entirely out of LEGO. It was solid but it was lacking the ability to secure the CD drive effectively. I was busy with another project at the time and asked my father if he could build the base. He came up with the design you see here. The wooden uprights keep the weight off of the CD drive. You can see right angle aluminum acts as a guide rail to allow movement for adjusting the CD drive position and serves as a way to secure the drive in place.

With that done, Dad and I took the CD drive apart and soldered on the wires for the relay control of the drive to close it once the new CD is placed into the drive.

We ran the wires for the CD button out of the back of the drive after making a channel in the plastic for the wires. Then we added a magnetic switch to the front to trigger the system to start the process of grabbing the old CD from the drive.

The electronics were finalized and soldered into place.


At this point I decided it was time to really dig into the programming of the system. I started looking into the way the Arduino programming worked and thought I made a mistake in choosing that microprocessor platform. The Arduino basically runs in one big loop and at first glance I thought I was out of luck because I had to build a very procedural program. I searched for about 45 minutes looking for ways to make a “if this, do that, then this” type of program. Finally it dawned on me that I could use “GOTO” calls with loops running inside them to achieve the same effect. From that point on it took me about 2 hours to get the logic for the button states, draw up a flow chart of what had to happen, and write the code to make the first prototype move around in the basic duplicator scheme.

After Build Thoughts:

I still have some minor modifications to make. Currently the switch that senses that the mechanism has reached a CD is a little too abrasive on the CD. I plan on using some LEGO to make a plunger that will hit the switch instead of the TY-Wrap and shrink tube. Also, I want to slow down the rotational speed a little. There is still a lot of mass in the arm and it is putting a lot of stress on the main LEGO structure. It’s been OK so far but I don’t want to come home to a fallen down duplicator because it was spinning too fast.

The other major modification left to be made is to the electronics. The cables on the back need to be neatened up.  I’ll probably throw on some Techflex braid sleeving to keep the wires together.  Then I need to mount the USB  to SATA adapter.  That will involve lengthening the SATA and power cable.  When I make that change I will also find a12 volt power rail and steal 12 volts to feed the Arduino so I don’t have to power that separately.



Arduino Code:  LEGO CD Duplicator Code v8

Future Plans:

II am currently in the process of designing a second duplicator. It will be smaller yet have a higher CD capacity. The new design uses a vacuum pump and suction to achieve these objectives. The goal for the next version is to be able to have all the parts 3D printable and have a total price less than $350. I’ll be posting the part files for everyone to download when I’m done and know they work. I will also have them up for sale at one of the 3D printing services at that time.

If anyone has any suggestions or comments please let me know.




35 thoughts on “CD Duplicator

  1. Pingback: Automated CD ripper build from Lego and other parts - Hack a Day

  2. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) | Digital Brain ; Science and Technology News

  3. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) «

  4. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) « chatroulette torch

  5. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) – Get Opinion

  6. Pingback: Social Computing » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  7. Pingback: Nikki Chamberlin » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  8. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) | chatroulette french Lego CD / DVD ripper lets you drop your physical media — literally (video) | frogs like chat roulette!

  9. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video)

  10. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) | GameBooze – Bottoms up! Aggregated gaming news, guides, cheats and fixes to quench your gaming needs.

  11. Pingback: Trojan Capital Funds » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  12. Pingback: Lego CD / DVD ripper lets you drop your physical media — literally (video) | Soccer Images

  13. Pingback: Richard Sapp » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  14. Pingback: Kate Cutting » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  15. Pingback: Haley Geier » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  16. Pingback: Celine Bickoff » Blog Archive » Lego CD / DVD ripper lets you drop your physical media — literally (video)

  17. Pingback: This Arduino-Equipped Lego Robot Will Rip Your DVD Collection for You

  18. Pingback: This Arduino-Equipped Lego Robot Will Rip Your DVD Collection for You | Small Notebook Computer

  19. Pingback: CD Duplicator: masterizzatore robot con i Lego | Hardware |

  20. Pingback: » CD Duplicator: masterizzatore robot con i Lego-La Notizia Giusta

  21. Pingback: Arduino Controlled LEGO CD Duplicator |

  22. Pingback: High Technology » Blog Archive » Arduino Controlled LEGO CD Duplicator

  23. Pingback: Homebrew LEGO CD Duplicator Copies CDs On The Cheap | CisforComputers

  24. Pingback: Electronics For The Everyman: 25 Kick Ass Arduino-Powered Projects « Tech Reviews « Technology « Theory Report

  25. Pingback: 아도이노로 제어하는 레고 CD 복제기 | Make: Korea

  26. Pingback: Arduino Controlled LEGO CD Duplicator / Cooking Hacks Blog

  27. Pingback: DIY CD Duplicator | HACKOLOG - Amazing Hacks and Mods

  28. Great project, well done!

    I have been searching around a bit to find a good project idea for my next Arduino project. I have a lot of old CDs that I need to rip, so this one might be a good option. How is v2 coming along?

    • Version 2 is on hold. I have two other projects I’m working on and version 1 is working well enough for me at the moment. I do have to say that this CD pickup mechanism needs to be reworked. Every now and then it picks up two disks at once.

      The concept for version 2 should work well enough. I had tested the suction cup pickup method and all the electronics worked with little to no issues. It’s the actual physical structure that needed work and that’s where I put it on hold. I wanted to make it in a way that could be easily reproduced either out of Lego or a combination of 3D printed material and Lego together. I might get back to it sometime this year. I can dig up the manufacturer for the suction cup if you’re interested.

      While I was working on all this I had bought a commercial disk duplicator off of ebay for 40 dollars. I thought about ripping out the internals and replacing them with servos and stepper motors that an Arduino could control. The CD pickup mechanism is well created on a commercial device. You might want to look into finding one on ebay and modifying that if you can.

  29. I am interested in the sliding/telescoping mechanism of your project. I am constructing one similar to yours and I’m stuck at that point. I am going to use the spinning mechanism of an old laptop disc drive for my disc pick up and am trying to decide if I want a servo to raise and lower it or do something similar to yours. Any help is appreciated.

    • I modified a servo by removing the end stops and the potentiometer. I ran into one problem that I only noticed recently. When I power the arduino from a computer USB port (which I do when I program the micro controller) I would set the rotational speed by putting in a large value to spin it one direction, then put in a low value to spin it the other direction. Eventually I would find the mid value which would stop the servo. The problem came in when I would power the Arduino with an external 12v supply. The zero stop point I found while using the 5v of the USB port would not be the zero stop when using the 12v supply. I also found that all the other servos would be off alignment as well. I have not done any research yet to figure out why this happens.

      The choices that I played with were using a servo modified modified for continuous motion or using a stepper motor (requires extra stepper motor driver circuits). As far as the mechanics go, I was torn between a linear motion rack gear (like I used), or using some kind of lead/ball screw linear motion. The system I came up with worked well since it was all Lego and I wanted a quick build. The new version I am slowly building uses a threaded rod and a nut epoxied to a movable platform. Both systems have their advantages and disadvantages but I think both are well suited to task. Take a look at the link I included in the article to the web page of the gentleman who created the grip mechanism that mine is based on. He used a cylinder/strap/gravity system to raise and lower his. It’s an interesting method of linear motion.

  30. How’s your progress on version 2?
    … it seems that $350 is a lot. I would think that all the parts could be done for less than $200 ore even $100. How much would you estimate this lego prototype cost? Perhaps I’m missing something…
    I’d like to build this as well. Perhaps we can build a community devoted to making this and improving it. Like the diybookscanner project, it can have a goal of being in every hackerspace (
    Frankly, I think that disks are obsolete, and the thousands of disks lying around need to be ripped onto hard drives. I figure that if it costs $200, and takes a minute of human labor per disk, then it would be worth it if you have more than 250 or at most more than 1000 disks. If it were to be in a hackerspace, people could use it or loan it out to people.

    • I have not started work on v2. I’m still mulling over ideas on how to make it efficient and use off the shelf items at the same time. I’m probably going to have to make a laser cut structure to hold everything.

  31. Just took apart an old printer/scanner, found some really interesting mechanisms that used belts, pulleys and motors to move things along a track (like for the scanner lamp and the ink head), I think I’m going to use those as the lift mechanism. Thanks for the great project idea, as I was in need of a cheaper solution for copying a lot of CDs.

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook