Introduction: CNC Made From Garbage

About: I make things, some of which work. Full Tutorials: Email:

**If you like this project, please consider giving it a vote**

Canadians produces 725 tonnes of e-waste annually. After seeing all of the electronics thrown away at my school, I am not surprised by this statistic. I believe that most thrown away electronics have a lot of hidden use. I wanted to prove this by building a machine entirely out of garbage.

After looking at the electronics that I hoarded...ahem...I mean collected, I realised I could build a CNC machine.

That's right, all of the components used in this project were thrown away. NO ARDUINO WAS USED TO RUN THE MACHINE! NO DRIVERS WERE PURCHASED TO CONTROL THE STEPPERS! All of the metal was salvaged from local scrap bins and all of the electronics came from my school's e-waste program. We did use some new solder, glue, and tape to put the machine together though.

The end result is a three axis cnc that can draw shapes on a wipe board. The CNC has 1.5 in of play in all directions.

I hope that this project demonstrates the enormous advantages of up-cycling and free-cycling.

Key Points

  • All of the components used in this project were thrown away; except for glue, tape, solder, and some wire.
  • I based the design off of what I found whilst dumpster diving. Your design will vary depending on your luck. Read the whole documentation first to get a general idea.
  • Eventually I want to turn this CNC made out of garbage into a 3D printer made out of garbage.
  • Building a CNC made from new parts would take less time and produce better results.
  • This project was started to prove that thrown away electronics have a lot of potential.
  • The purpose of this project is to show the benefits of up-cycling and free-cycling

Watch the video for a good cover!

Step 1: How It Works

The hardest part about building a CNC is designing the motorised linear slide system. Conveniently, all of this engineering is already contained within a CD drive. We are going to cannibalise some CD drives and mount them as needed on a piece of scrap wood. The specific part that we are removing from the CD Drive is called the "sled". The sled is the component that contains the linear actuator. The part of the sled that moves up and down is called the "tray".

The type of motor that drives the sled is a stepper motor. Controlling steppers can be tricky. We need a stepper driver to control the stepper motor. We are going to salvage stepper drivers out of old floppy drives.

I downloaded some CNC software (Mach3) on a thrown away computer. The computer will communicate with the stepper driver though the DB-25 port. The DB-25 port is a really old type of computer port. It has seven output pins that we are going to interface with the stepper drivers. It's easy to find computers with a DB-25 port. They are generally in a trashcan.:)

The computer used in this project does not need to be high quality. The computer that I used has 256mb of RAM and runs Windows XP. Using Mach3 (and Lazycam which comes installed with Mach3), we can convert a CAD file into gcode. Gcode is a file type that is used by most CNC software.

So basically...

CNC software (Mach3) on Windows XP computer -->

Motor controller taken from floppy drive -->

Linear Actuator taken from CD Drive -->

A robot that draws stuff :)

Step 2: Parts List

My parts list is based off of what I found in recycling bins. You are likely to find other parts that can also be used.

The e waste bin at my school was filled with old computers and monitors. This made collecting parts relatively easy. I made sure to test the parts, before I hauled them back to my dorm room.

Parts List

  • Three CD Drives
    • Source: Old computers in an e-waste bin
  • Three Floppy Drives
    • Source: Old computers in an e-waste bin
  • One Power Supply Unit
    • Source: Old computers in an e-waste bin
  • One Whiteboard Marker (Not Recycled)
    • I felt that an erasable marker would be more useful than a pen and paper.
  • PCB Board
    • The CNC needs a plate to write on. I made that plate out of pcb board. I salvaged the board from my school's pcb mill. I chose PCB board because dry erase markers worked well on it.
  • 5 L Braces
    • I had taken apart some furniture and salvaged the L braces. I used the braces to connect the CD Drives.
  • Nut and Bolts
    • Source: Objects that had been taken apart overtime. I preferred to use 8-32 fasteners throughout the project.
  • Sheet of Wood
    • Source: Scrap bin at Home Depot
  • Electrical Tape (Not Recycled)
  • Solder (Not Recycled)
  • Hot Glue (Not Recycled)
  • Breadboard (Not Recycled, Not Required)
  • Wire
    • Source: I found a box of wire in an e-waste bin. The box contained wire of various sizes. I mainly used a size close to 18 AWG. I believe the box came from the renovations my school did over the winter break.

*The solder, electrical tape, hot glue, breadboard, and dry erase marker were not up-cycled. I already has these components lying around.*

Step 3: Test Floppy Drive

We are going to test the stepper driver inside of the floppy drive. Currently, the driver is connected to a small motor.. If the driver is working correctly, we should be able to actuate the motor; as seen in the video.

First, rip the cover off of the floppy drive. This allows you to see the sled of the floppy drive.

To control the floppy, you need to manipulate the back header. The floppy drive has many pins on the back header. We only care about three of them.

  • The Drive_Set_B (Pin12) pin turns the stepper motor on. Enable the pin by connecting it to ground. Ground is any pin on the bottom of the header.
  • The Direction pin (Pin18), controls direction. 0 for backwards, 1 for forwards. We want the motor to move forwards. So, connect Pin18 to ground.
  • Connect the floppy drive to the power supply. Do not turn the power supply on.
  • The Step Pin (Pin20) sends one pulse to the stepper motor each time its triggered. You can trigger Pin20 by briefly connecting it to ground. I used a screw driver to complete this task.

Test the floppy drive:

  • Wire the floppy as seen in the diagram
  • Turn the power supply on, the floppy drive tray should move to its default position.
  • Trigger Pin20. Each time you trigger Pin20, the floppy drive tray should move slightly forwards.
  • The floppy drive tray will continue moving forwards until it reaches the delimiter. You can move the tray the other way by disabling Pin18.

The floppy drive sled only has 0.5 in of travel. We'll need a bit more for our CNC. So, we will sub the floppy sled out for a CD drive sled, which is much bigger.

Step 4: Test Parallel Port

We are going to try controlling a floppy drive with a computer's parallel port. This is a good thing to test before you commit to the project. We want to ensure that the parallel port is working correctly. And, that we know how to use it correctly.

Using Parmon software, we can move the floppy drive sled up and down. Install Parmon on your WindowsXP computer, from this link.

Wiring Steps(or just look at the image above):

  • Connect ground of the floppy drive to ground of the parallel port.
  • Connect floppy drive Pin12 to ground.
  • Connect floppy drive Pin18 to parallel port pin2
  • Connect floppy drive Pin20 to parallel port pin3

Boot up your machine and run Parmon.

As seen in the video, clicked pin3 should actuate the motor. Clicking pin2 should change the direction.

Step 5: Cannibalise CD Drives

All we need from the CD drives is the sled. The sled is the component that contains the linear actuator and housing. We are going to remove everything from the CD drive except for the sled.

We will need three of these for our project.

Step 6: Assemble CNC Part One

I bolted a small piece of metal to the frame of one of the sleds.

Preferably, this is your lightest sled.

Step 7: Assemble CNC Part Two

I attached the first slide to the movable section of another slide. The slides are attached with the piece of metal. The slide should be able to move up and down.

I connected some L-braces to the bottom of the second slide. I secured the L-braces to a piece of scrap wood.

At this point, the second slide should be able to move up and down while the first is fixed in place.

Step 8: Assemble CNC Part Three

I secured the third sled to the the top of the mechanism with some more L brackets.

Now, the machine has three axis.

Step 9: Cannibalise Floppy Drive

The motors inside of the CD sleds are stepper motors.

To run the stepper motors we need stepper drivers.

Floppy drives contain stepper drivers.

Strip the floppy drives down to the PCB. You can cut the leads that connect the floppy drive to the motors.

HOWEVER, do not cut the leads that connect the floppy drive to the limit switch. A picture of the floppy drive limit switch is shown above. We need to use the limit switch for our project. It is important not to lose or damage it.

Step 10: Mount Floppy Drive

Mount the floppy drives to the base. I have secured my floppy drives with some hot glue and used popsicle sticks

I have added a small breadboard for convenience as well. This is not necessary.

Step 11: Mount Power Supply

Mount the power supply to the base. Connect the appropriate cables of the power supply to the floppy drives.

I wrapped up the PSU cables with tape first though.

Step 12: Wire Up the Motors

You need to wire each of the stepper motors to the appropriate pins on a floppy drive.

Find the four pins on the floppy drive that were connected to a stepper motor. We need to connect these pins to the CD drive stepper motor. There are twenty four possible combinations to connect the CD drive to the floppy drive. Eight of these combinations will work.

I used trial and error to wire the stepper motor to the floppy drive. I soldered four wires to the stepper motor and four wires to the floppy drive. I randomly connected each set with a breadboard. I connected the floppy drive to the power supply and turned the power supply on. If the system is wired correctly, the CD drive will move as seen in the video. If the system is wired incorrectly, the motor will stall.

After figuring out the correct way to wire each floppy drive, I made the connections permanent.

To increase durability, I glazed the solder joints with hot glue.

Step 13: Test CD Drives

Ensure the floppy drives are connected to the power supply.

When you turn the power supply on, all of the axis should move.

*In the video, I am testing the X axis only.*

Step 14: The Limit Switch

Each floppy drive has a limit switch attached to the PCB. When the limit switch is triggered, the floppy drive turns off the motor. The limit switch is triggered when an object is inserted in the switch's gap.

We need to mount each limit switch on the corresponding axis of the CNC. When the CNC is turned on, each linear actuator moves in a certain default direction.The limit switch needs to be mounted on the side of the sled that the tray moves towards. We want the limit switch to be triggered, when the tray reaches the end of the sled.

I started off by extending the cables that connect the limit switch to the floppy drive. I hot glued each limit switch to an axis. I hot glued a small stick of PCB board to each tray. I hot glued the PCB board so that it would trigger the limit switch when needed.

Step 15: Connect Floppy Drives to Parallel Port

Wire up the floppy drives and parallel port as seen in the diagram.

Step 16: Make Base

The CNC machines needs a base plate to write on. Any rigid piece of material that is roughly 4"x6" will do.

I used a scrap piece of PCB board.

I cut the board to size and mounted the board to the X axis of the machine.

To mount the board, I :

  • Drilled and tapped two holes in the X axis tray
  • Drilled and countersunk two holes in base
  • Bolted the base in place with two 8-32 countersunk bolts.
  • Covered the holes with a large piece of duck tape.


You can just glue the base in place. Your call.

Step 17: Install Mach3 on Computer

Use this link to install the demo version of Mach3 on your Windows XP computer:

Step 18: Setup Mach3

We're almost down! Open up Mach3 and navigate to the Port and Pins tab. Change the motor settings as seen in each page.

We need to calibrate the motors as well. This means telling Mach3 how many steps it takes to move each axis by one inch. We can do this in the Setup page. Click on the Calibrate Axis tool and follow the given instructions.

Step 19: Make Pen Holder

We need to make a component that will hold our dry erase marker in place.

This component will need to connect the marker to the tray of the x axis. There are lots of simple ways that you can accomplish this. Feel free to be creative. I went with the above design.

I designed the above part in Inventor and then machined it out of a scrap piece of aluminium. It is a fairly simple design, only three holes.

I drilled and tapped an 8-32 hole in the tray of the x-axis. I used this hole to secure the metal piece to the tray.

I have attached all necessary CAD files for replication.

Step 20: Test Your CNC!

I have attached some example gcode to test your cnc with.

Download the gcode on your windows xp computer. For your first test, i recommend using circle.tap.

Load the g code into Mach3.

Insert your dry erase marker in the pen holder.

Click Run and ensure that the circle prints correctly.

Congratulations, you have successfully built a CNC. Take a moment to test the CNC with other example files. Also you can use the arrow and page up/down keys, to move the CNC around.

In the next step, I'll show you how to make your gcode.

Step 21: Autodesk to Gcode, Turn Your CAD Files Into Gcode (Optional)

In this step, we are going to be making our gcode. I'll be using Autodesk Inventor for this process.

  • Make a new sketch in Autodesk Inventor.
  • Extrude the sketch.
  • Right click the face of the sketch that you would like the CNC to draw.
    • Click export as
    • Save file as a .DXF
  • Transer the .DXF file to your WindowsXP machine.
  • Open the file in LazyCAM. (LazyCAM came installed with Mach3)
  • Ensure that the file looks correct, and then export the file as gcode.
  • LazyCAM software will create a .tap file. This file type is a form of gcode that you can load into Mach3.
  • Run the gcode file in Mach3 and watch your creation print your other creation.

Step 22: Conclusion and Future

Currently, I am turning my CNC made out of garbage into a 3D printer made out of garbage.

There are other ways to expand this project as well. Below are a few ideas that I am excited about.

  • Using the linear actuator found inside of a paper printer.
  • Hacking the Arduino IDE to control the DB25 port
  • Controlling stepper drivers with USB ports
  • Connecting sensors to the DB25 port.

I hope that this project convinces others about the potential in up-cycling and free-cycling.

If you have any questions about the project, I would be happy to answer them.

Trash to Treasure Contest 2017

Grand Prize in the
Trash to Treasure Contest 2017

Epilog Contest 8

Participated in the
Epilog Contest 8

Green Electronics Contest 2016

Participated in the
Green Electronics Contest 2016