CNC From Recycled PC Parts




In this instructable I will show you how to make a very low cost CNC from recycled computer parts. This machine can do a lot of stuff depending on what you attach to it.

1. It can be used as a Plotter. (Attach a Pen as tool)

2. It can be a Laser Engraver. (Attach a Laser module as tool).

3. It can be used as a Router. (Attach a Drill Machine as tool).

4. It can be used as a PCB Plotter. (Attach a Permanent Marker as tool).

5. It can be used as a 3D Printer. (Attach extruder and hot end)

6. Possibilities are many.

This CNC is made up of recycled PC parts: old Printer, Scanner and CD/DVD drive.

It's based on Arduino and GRBL.

Step 1: Parts and Tools

1.1 Recycled PC Parts:

  • CD/DVD-ROM x 1
  • Printer x 1 (Canon S530D)
  • Scanner x1 (HP Scanjet 3970)


  • The older the printer the better.
  • The newer the scanners the better.

1.2 Parts I bought:

  • Arduino UNO R3 x1
  • Arduino CNC Shield V3 x1
  • A4988 stepper motor driver x 3

1.3 Tools:

  • Soldering Iron and Solder
  • Computer with Arduino IDE

Step 2: Get Useful Parts

CD/DVD Drive:

2.1 Get stepper mechanism from a CD/DVD drive

The CD/DVD stepper mechanism will be using as Z-axis here for a Plotter.

Getting the stepper mechanism from a CD/DVD drive has been documented in other instrutables very well already:


2.2 Get carriage movement mechanism from a printer.

The printer stepper mechanism will be using as Y-axis.

2.2.1 carriage movement mechanism w/ DC motor

2.2.2 Stepper from paper feeder


2.3 Get carriage movement mechanism from a scanner

The scanner stepper mechanism will be using as X-axis.

Step 3: Build X-axis

  1. The X-axis is the easiest step here. We don’t have to do much about it. Just need to disassemble the scanner and solder wires to the stepper motor.
  2. Put the metal board from CD/DVD on the carriage of the scanner.

Step 4: Build Y-axis

Remove the gears from paper feed stepper motor, and then put the pulley from the main DC motor on it. To match the size, I am using plastic food wrap, totally works.

Step 5: Build Z-axis

Make a pen holder and attach it to the CD/DVD stepper mechanism.

Step 6: Axis Assembly and Motors to Arduino CNC Shield Wiring

The assembly is very simple, please refer to the pictures.

The wirings are simple too. The point is to use multimeter to determine correct A+ A- / B+ B- for each motor.

For more information about Arduino CNC Shield, please visit

Step 7: Compile and Upload GRBL to Arduino

7.1 Download GRBL source code

Download source code (v0.9i) from Once downloaded, unzip it and you'll have a folder called grblmaster

7.2 Compile GRBL source code

7.2.1 Load GRBL to Arduino IDE (Version>1.6.1) as a library

7.2.2 Open the GrblUpload Arduino example.

Click the File down-down menu, navigate to Examples->Grbl, and select GrblUpload.

7.2.3 Compile and upload Grbl to Arduino

Connect your Arduino Uno to your computer. Make sure your board is set to the Arduino Uno in the Tool->Board menu and the serial port is selected correctly in Tool->Serial Port. Click the Upload, and Grbl should compile and flash to your Arduino!

Step 8: Settings for GRBL

8.1 X-axis

Stepper motor from HP Scanjet 3970 is 96 steps per revolution, and the timing belt pitch is 2.032mm. A4988 stepper drive is set to 8x micro step resolution. So it takes 96x8=768 steps per revolution now.

768/2.032 = 377.953 steps to make X-axis travel 1mm without gears, but it turns out it's a 1:2 gear ratio, so it takes 377.953 x 2 = 755.906 steps now.

Command $100=755.906 makes the correct X-axis settings for GRBL

8.2 Y-axis

Stepper motor from Canon S530D Printer is 48 steps per revolution, the pulley is 25 teeth, and the timing belt pitch is 1.5 mm. A4988 stepper drive is set to 16x micro step resolution. So it takes 48x16=768 steps per revolution now.

It travels 25x1.5mm=37.5mm per revolution.

768/37.5 = 20.48 steps to make Y-axis travel 1mm

Command $101=20.48 makes the correct Y-axis settings for GRBL

8.3 Z-axis

Stepper motors from DVD drive are 20 steps per revolution, and the screw is 3mm per turn. A4988 stepper drive is set to 8x micro step resolution. So it takes 20x8=160 steps per revolution now.

160/3 = 53.333 steps to make Z-axis travel 1mm

Command $102=53.333 makes the correct Z-axis settings for GRBL

Step 9: Power Supply

A 3-4A 12V laptop power supply works very well.

Step 10: Finish

This is the final result and I hope you like it.

Thanks so much for watching this instructable and enjoy!



  • Cardboard Challenge

    Cardboard Challenge
  • Toys Contest

    Toys Contest
  • Comfort Food Challenge

    Comfort Food Challenge

13 Discussions


1 year ago

Is there something easier I can do before attempting It?

6 replies

Reply 1 year ago

You can try to control just 1 axis, see if it moves as expected.


Reply 1 year ago

Thank You ...I have already dismantled a printer, scanner and a DVD drive, but what you said seems to be a more easily accomplishable task.. :)

By the way Your Instructables is Amazing.


Reply 1 year ago

How do I know If the Motors I have got are the right kind of Steppers


Reply 1 year ago

The easiest way is to google the model number on it and see how many steps per revolution


Reply 11 months ago

I made it, but the typings are going sideways and the movements are rough any idea why?


11 months ago

can a all in one printer and scanner be salvaged for this project?

1 reply

1 year ago

Does it have to be a Canon S530D, I have a couple of old HP injets with scanners.

1 reply

Reply 1 year ago

You will have to disassemble and see what stepper motor in it.

Sverd Industries

2 years ago

Nice look on how to calibrate the settings for GRBL.