DIY project which consists of the construction and the implementation of a CNC plotter using old DVD writers. The final plotting machine consists of three axes. The x-axis and y-axis work together to draw a 2D image or text on the paper. While the z-axis is used to lift and lower the pen onto the paper. Please have a look at the video project on my youtube channel.
- Servo motor
- Two step motors (from old DVD/CD drives)
- Motor shield L293D
- Arduino Uno board
- Jumper cables and connectors
- USB 2.0 cable to connect Arduino to PC
- Power supply. We use 6-12V power supply with 1000 mA peak current (see Ardafruit tutorial on powering motor shield)
- Screws and nuts
- Cables
- Pen holder. We use a chewing gum box, but you can use anything else which is able to lift and lower the pen
- Arduino IDE
- Processing IDE
- Inkscape (optional)
- GCTRL processing program from Damellis. It is used to send G-Code data to Arduino
- Dismantle the two DVD-DRIVES and obtain the step motors from them.
- Prepare the platform for mounting the step motors and the servo. It should consists of two planes, one horizontal and one vertical and they are perpendicular to each other.
- Install the pen holder that is used to attach the pen to the vertical plan.
- Install the surface on which we can mount the paper.
- Wiring the steps motors and servo to the motor shield and then connecting the motor shield to the arduino board.
The software task is some codes written in the Arduino IDE to control the operation of the microcontroller. Our code is based on Adidax code source
- Connect Arduino and PC via the USB cable
- Plug in the power supply to the Arduino DC jack
- Install the paper on the platform
- You will need a G-Code file describing the pattern to draw. You can create it yourself or you can use inkscape with gcodetools extension from cnc-club to generate the G-Code file
- Open the G-Code file and change pen up and pen down lines
- 'G00 Z........' by 'M300 S30'
- 'G01 Z........ F100.0(Penetrate)' by 'M300 S50'
- Start GCTRL processing program, press 'g' for file selection option and select your G-Code file. NB : we configure GCTRL with the portname = "COM7", you may need to change it in case your arduino is using another port
![]() |
![]() |
![]() |
![]() |