Poor man's Mini 3D Printer

3D Printer using upcycled CD drives, hard drives, and an ATX power supply.

Similar projects worth following
Reach me at:

This is a homemade 3D Printer that uses upcycled components found in an old computer like CD drives, hard drives, and an ATX power supply. Some were bought like the hotend, extruder motor, and the controller board.

This project is for makers who want to have a 3D printer but don't have the money to buy one.

See it in action here:

3D Printer Details

  • 40x40x40mm Print Bed Size
  • RAMPS 1.4 Microcontroller board


  • Why make this project? - Because I didn't have the funds to buy a commercially made 3D printer. Plus, I learned that it can be done so I did.
  • Why use CD Rom Drives? - CD roms have a stepper motor inside of them. It's a smaller version than the usual that most 3D printers use but it can be programmed the same way.
  • Can I use any kind of CD Rom Drives? - Yes. Drives from PCs are more easily available but other drives like DVD players and old consoles can also work. Slimmer devices like laptops may have a different CD Rom drive and may not have stepper motors.
  • How long did it take to work on this? - Almost a month to an acceptable state. One more month for calibrations and improvements. I logged the development of the whole project here:
  • Is this your original idea? - No. There are numerous makers who have already made this and documented it. I learned from them and made this version.
  • Is there a how to for this project? - None at the moment. I plan to make an instructional video in the future. For now I've listed the resources that I used to make this project below.
  • Are you selling this unit? - No. It's mine and it's for my personal use. I may make another one and might consider selling that.
  • Are you planning on making this into a product to sell? - It's not exactly plug and play and may suit tinkerers more. I may make this into a kit to make it easy for people to get started.


Here are the references I used that helped me build this project:

  • Tinkernut's Project - Video and text version- The video that first taught me about the possibility of a cheap 3D printer. Uses Arduino UNO, 3D Printer Pen, and A3967 Stepper Motor Driver. Here's an updated version of this project with a different approach.
  • Electronic Grenade - Based his project off Tinkernut's. Goes through the steps in more detail.
  • EWaste 60$ 3D Printer - Different from the first two by using RAMPS 1.4. This is also the only one that teaches about current intensity regulation to avoid overheating stepper motors (Check Step 6). Everything else is also good albeit a bit dated with broken links to important files.
  • Curiosity 80$ EWaste Educational 3D Printer - Similar to the EWaste 60$ Printer, this one is more detailed and easier to follow. as it is also targeted towards younger aspiring makers.
  • Joe Clinton's Project Log Playlist - A video playlist of a 3D printer from start to finish based on the Curiosity 3D printer. Starts with testing the circuits first before mounting the drives. It's a nice glimpse of what pitfalls to expect and avoid throughout the project.
  • RAMPS 1.4 Assembly Guide - Simple guide on how to assemble your RAMPS 1.4 board. This is crucial as some purchased boards may require some assembly.

  • 3 × CD Drive For the 3 axes
  • 1 × HDD Bearing For the spool holder
  • 1 × ATX Power Supply To power all components
  • 1 × Nema 17 Stepper Motor For filament extrusion
  • 2 × 12 Volt Fans For cooling various parts

View all 6 components

  • Showcase at Manila Mini Maker Faire 2019

    AccidentalRebel06/19/2019 at 13:10 0 comments

    I'll be showcasing the 3D printer at the Manila Mini Maker Faire 2019 to be held this weekend at Bonifacio Global City.

    I'll also be building another 3D printer onsite which I'll be streaming online via Twitch.

    If you are attending the event or joining me on the stream feel free to say hi!

  • 2019-05-06 to 2019-05-13

    AccidentalRebel05/13/2019 at 08:33 0 comments

    I'm at the point where I am satisfied with the state of my project. Sure, there are still a couple more improvements that can be made, but as long as it prints then I'm happy.

    I still had to deal with a couple of problems that seem to have appeared suddenly out of the blue.

    One problem I encountered was the motors suddenly started skipping. After weeks of using it, this only just happened now and it kept on happening. I looked into a lot of possible reasons but it ultimately pointed to the actual cause: the motors were turning too fast

    Now this boggled my mind at first. I never changed the speeds and it worked perfectly. My hunch is that my motors may have deteriorated slighlty due to constant use that it cannot handle fast speeds anymore. I am not a hundred percent sure with this but things slowly break over time and this is no exception.

    To fix this I have updated my firmware and set the maximum feedrates to an amount where there are no more skipping. I've also made sure that the current towards the motors are at a safe amount, around 200mA for axes with no heavy load (like the y axis), and 300-400mA for those that do (like the x and z axis).

    Read more »

  • 2019-05-03 to 2019-05-05

    AccidentalRebel05/04/2019 at 15:26 3 comments

    I managed to increase my machine's bed size from 35x35x35mm to 40x40x40mm. It may seem small but the 10mm increase in dimension is huge for me. Every millimeter helps!

    It all started when I learned that there are stepper motor sliders similar to the ones found on CD-Rom drives but are longer. The screw length of the one below is 90mm, while the ones I found for my printer are only 50mm long.

    This is when I realized that if the screw length of my sliders are supposed to be 50mm, why am I only able to print at 35mm?

    I investigated my setup and learned that CD drives were designed to have physical endstops to limit the movement of the slider. I'm actually unsure as to the reason for this, my guess is so that the teeth of the slider that comes into contact with the screw would rest at a proper position that would not allow it to misalign. If this were the case, I don't think it would be an issue for me as I don't seem to get any problems even if I move the sliders past their limits.

    So I cut off these endstops and the slider can now go way farther effectively making the range of movement up to 40mm.

    Read more »

  • 2019-04-30 to 2019-05-02

    AccidentalRebel05/01/2019 at 11:24 0 comments

    I've been printing at a layer height of 0.2mm and it has been giving me good and consistent results. I wanted to find out how high a resolution my machine can reach so I've done some tests to find out.

    The picture above shows three test prints. From left to right 0.2mm, 0.175mm and 0.15mm. You would need to look at the object closely to see the differences between the prints. 0.15mm is definitely finer which makes it perfect for small scale objects like the one I designed below:

    I tried lowering the layer height to 0.125 but the extruder was not extruding anymore. I reckon that the finer movement required to extrude such a small amount could not be achieved anymore by my cheap knockoff stepper motor. It may also be possible that the retraction distance and strength might be sucking the pressure too much that the extruder could not get the pressure back. I'd definitely be looking into this again in the future. Right now I'm actually quite happy with a 0.15mm layer height.

    Read more »

  • 2019-04-28 to 2019-04-29

    AccidentalRebel04/29/2019 at 15:36 0 comments


    I was afraid of getting tangles because my filament spool was getting loose, so I decided to fix it by untangling the filament and carefully wrapping around the spool again. Sadly, I wasn't careful enough that I ended up with the mess above. Took me a whole hour (and an aching back) to get the mess sorted out.

    I decided to 3D print myself a filament filter to filter out dust and body oils that I have introduced while wrapping the spool. Not sure if it would work but the idea is sound and I needed another thing to print.

    I also finally got around to changing the printbed as the old one, seen below, was already a bit worn out.

    The new one is cut from thick acrylic which is stronger and is more resistant to burns. It's also red and transparent which makes it stand out from the dull gray and metal motif that I had before. I found out early on that filament is harder to remove because of it's smooth surface so I bought a couple of glue sticks to put on the bed so they can be easier to remove.

    Read more »

  • 2019-04-25 to 2019-04-27

    AccidentalRebel04/27/2019 at 16:12 4 comments

    I have narrowed down the cause of the constant hotend clogging to a loose bowden tube coupling. Because of this the tube eventually gets tugged out of place leaving a gap inside the hotend throat, which then causes a clog.

    Thankfully, there's a fully printable replacement which has a better design and fits perfectly to my hotend.

    Thanks to this, I've never had a clog ever again. I do need to double check if it's tight from time to time. Also, I'm a bit worried if the heat from the heatsink would affect the coupling since I printed it with PLA. We"ll see if it gives.

    Another improvement that I made is I added springs to the screws that I use to level the bed. The spring is always pushing on the bed which makes leveling easier as I only need to adjust the top screws.

    With the setup before I had a top screw and a bottom screw, which I both need to adjust when leveling. It's now easier to do last minute micro adjustments thanks to this.
    Read more »

  • 2019-04-24

    AccidentalRebel04/25/2019 at 02:17 1 comment

    One problem that became glaringly obvious as soon as I printed a torture test object on my printer is the abundance of strings similar to the one found on my previously printed frog:

    I printed a pillar test and found out just how bad it was.

    Initially I thought strings are not a big deal as they can easily be cut off. But turns out they can be a huge headache if left unchecked.

    Read more »

  • 2019-04-21 to 2019-04-23

    AccidentalRebel04/23/2019 at 00:43 0 comments

    Since the printer can now print objects properly, the next step is to do advanced calibrations using this guide.

    Here's the video of final result after all the calibrations. I never thought I'd reach this level of quality, to be honest.

    The print uses 0.2mm layer height resolution and you can still easily make out the layers. The advanced calibrations went through various factors like optimal temperature and speed, extrusion multiplier, retraction distance, and handling overhangs. It's rather extensive and the results are very noticeable as can be seen below:

    The above shows the before and after. If you would look closely the resolution of the second one is better as it uses a 0.2mm layer height. It also printed faster too thanks to the increase in speed. The first one took around an hour while the second one took 20 minutes.

    Read more »

  • 2019-04-17 to 2019-04-20

    AccidentalRebel04/20/2019 at 14:20 0 comments

    Behold, the result of countless hours of calibrations, problem solving, and wasted filaments:

    It's not perfect yet. But it's the best out of all the tests I've done so far. Look at all the other failed attempts.

    I knew going in that calibration would be challenging, especially for a home made 3D printer. I had to go through a lot of options both through firmware and slicing program to get to the result above. It's cumbersome but very enlightening to be forced to understand every bit of the machine you are learning.

    Read more »

  • 2019-04-16

    AccidentalRebel04/17/2019 at 05:04 0 comments

    Today I focused my attention on making sure that the printer can properly draw an image onto paper using a pen. I figured that this is an important step that would help weed out problems early. And it did. Lots of them.

    One problem that I noticed late was that one of my axes are actually flipped. It was only when I tried printing a word did I notice it.

    That's supposed to read "Dianne".

    This was easily fixed by changing a setting in firmware that sets if an axis is inverted or not.

    You will also notice that there are extra lines that the printer draws to get to one point to the next. These are supposed to be non-print lines where the hotend does not extrude filament. Since I'm using a pen I had to manually add gcode before and after these non-print commands to raise and lower the pen when needed. The solution worked beautifully but is useless once I do use an hotend.

    Read more »

View all 16 project logs

Enjoy this project?



Ahron Wayne wrote 04/18/2020 at 03:20 point

I'll like anything that's made out of CD players. Good deal. 

  Are you sure? yes | no

Gerfel Philip Gonzales wrote 06/23/2019 at 14:51 point

Visited your booth at Manila Mini Maker Faire. Cool project!

  Are you sure? yes | no

AccidentalRebel wrote 06/23/2019 at 22:05 point

Thanks for dropping by! Hope I was able to inspire :)

  Are you sure? yes | no

Elliot Williams wrote 04/23/2019 at 07:15 point

Marvelous!  Your post-calibration frogs look soooo good.  

Great work, and thanks for sharing it.  Looking forward to further adventures.

  Are you sure? yes | no

AccidentalRebel wrote 04/23/2019 at 07:24 point

Hey, thank you! I honestly did not think I'd reach this level of quality from a homemade 3d printer. Yes, there will be more to come!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates