Polar CNC Plotter V2
In this session of Instructables, I will show you the new version of Polar CNC Plotter with all three axes works with Stepper Motors. It controlled with Arduino UNO Microcontroller and CNC Shield V3 A4988 driver board. The materials used for this project are old CD ROM’s linear stepper motor, old plastic sheet, PVC pipe fittings like elbows and sockets, 3D printed parts and wooden piece. I designed a unique way to create a rotating work table for this CNC using CD ROM’s BLDC Motor. This plotter is compact, easy to operate and looks cool. Let’s get started!
Supplies
- Arduino Uno Microcontroller (1pcs)
- CNC shield V3 (1pcs)
- A4988 stepper motor driver (3pcs)
- Bipolar Stepper Motor (2pcs)
- CD ROM’s linear stepper motor from old CPU
- GT2 6mm Timing Belt (1pcs – 300mm Length)
- GT2 Timing Pulley 16 Teeth (1pcs)
- SC8UU linear bearings (4pcs)
- Smooth steel rods (8mm Diameter- 2pcs)
- 1/2 inch 90 Degree PVC Pipe Elbow (2pcs)
- 1/2 inch PVC Pipe Socket (2pcs)
- 1/2 inch PVC Tee Fitting Socket (2pcs)
- 1/2 inch PVC pipe (200mm length)
- 15mm X 15mm Square iron pipes ( length = 375mm)
- Laptop CD ROM’s BLDC Motor
- GT2 Rubber Timing Belt Closed Loop 6mm Width
- Cable zip ties (4pcs)
- Aluminium fibre circular sheet (20 cm diameter)
- Black Matte Vinyl Sheet
- Old Plastic Sheet
- Jumper wires
- 3D printed parts
- Wooden piece (29cm X 10cm X 1.2cm)
- Power Supply 12 VDC
- Super glue
- Double sided foam tape
- Straw (spiral cable wrap/ cable sleeve)
- Screws
- Paper clips
- Color pens
- A4 White paper sheets
- Smooth steel rods (3mm dia. and 82mm length)
- 2.1 x 5.5mm DC Power Jack Socket Female (1pcs)
- Sand Paper
Tools used:
- 3D printer
- Drill machine
- Screw driver set
- Soldering iron
- Vernier Caliper Digital
- Measuring tape/ scale
- Mini Hand Saw
Base Plate
Take a 5mm thick plywood. Cut a Plywood piece of size 40cm X 13cm with the help of mini handsaw.
Make the corners round with the help of sand paper.
On the back side of plywood piece two 15mm X 15mm Square iron pipes of length = 375mm are attached to keep straight the plywood piece.
Drill necessary holes on the plywood sheet to hold the PVC pipe pieces (15mm length) 300mm apart from each other.
I used old metal parts and washers to attach the PVC Pipe pieces to the plywood with the help of two 27mm length screws.
However, you can use 3D printed parts to hold up inside the PVC pieces and can easily attach to Plywood.
This PVC Pipe pieces are required to hold PVC fitting stand set.
PVC Fitting Stand Set
It consists of :
- 1/2 inch 90 Degree PVC Pipe Elbow (2pcs)
- 1/2 inch PVC Pipe Socket (2pcs)
- 1/2 inch PVC Tee Fitting Socket (2pcs)
- 1/2 inch PVC pipe (200mm length)
Cut this 1/2 inch PVC pipe (200mm length) into 4 PVC Pipe pieces (30mm length). The 2 PVC pipe pieces helps to join 3 different PVC fitting pieces to make PVC fitting stand set as shown in images.
PVC fitting stand is consists of 1/2 inch 90 Degree PVC Pipe Elbow at the top, 1/2 inch PVC Tee Fitting Socket in the middle and 1/2 inch PVC Pipe Socket at the bottom all connected together with 2 PVC Pipe pieces.
We have to prepare two such type of stand set. These PVC Stands play a key role to support smooth steel rods.
The inner diameter of the PVC fittings is very large to hold up smooth steel rods of 8mm diameter. So I prepared 3D printed parts to hold up the rods inside the PVC fittings.
The PVC fitting supports are attached to the wooden piece (base) with the help of PVC pipe cut pieces hold up with screws.
Build Linear X-Axis
Linear X-axis consists of two Smooth steel rods (dia. = 8mm and length =300mm) mounted on the PVC Fitting supports on both sides.
A plastic sheet (size = 7.5cm X 4cm)is used to hold Stepper motor with the PVC fitting stand on the left side.
A 3D printed idler pulley is attached on the right PVC Stand to carry the movement of belt and a timing Pulley is attached to the shaft of stepper motor on the left PVC stand.
The whole set is hold together with the help of screws.
You can download STL files of 3D printed parts provided at the end of this tutorial.
Circular Work Table
I prepared a circular work table by cutting a Aluminium fibre sheet of size 20 cm diameter.
I covered this fibre sheet with Black matte Vinyl sheet. On the back side of the fibre sheet a soft iron strip is attached with the help of super glue and a Compact Disc is attached with the help of double sided tape. This is done to easily attach and detach the rotating work table from the magnetic top of the BLDC motor.
Build Rotary Y-Axis
I designed a unique way to create a rotating work table for this CNC using CD ROM’s BLDC Motor. I got this BLDC Motor from my old laptop CD drive. Eventually I found that on the top of this motor a neodymium magnet is already present. From this I got the idea to make a detachable work table.
Assemble a Y-axis rotary table, it consists of:
A CD ROM’s BLDC Motor and a Bipolar Stepper Motor is fixed on a plastic sheet (size = 11cm X 7cm) with the help of screws as shown in images. Two 3D printed driver and Driven pulley mounted on stepper motor shaft and the BLDC Motor respectively. A GT2 Rubber Timing Belt Closed Loop 6mm Width Length = 23cm is attached to both pulleys.
The circular Aluminium fibre sheet (size 20 cm dia.) is attached on the top of driven gear with the help of magnet.
The body is now attached to the wooden piece with the help of screws.
Build Z-Axis (Pen Holder)
Z-axis consists of a CD ROM’s linear stepper motor and a pen lifting mechanism which consists of a 3D printed slider on smooth steel rods (3mm dia. 82mm length) and two pen springs. i got these two smooth steel rods from the sliding mechanism of CD-ROM drive.
The whole assembly of the Z-axis i.e. CD ROM’s linear stepper motor is attached on a plastic sheet (9.5cm X 5.5cm) and which slides on the X-axis with the help of 4 Linear Bearings.
Assemble All Parts Together
Assemble all parts together. Put the smooth steel rods inside the linear bearings, which holding the z-axis linear stepper motor.
Tie the timing belt with the long screws of z-axis plate and tie them with the help of zip ties.
Place the whole x-axis assembly on the base plate by putting the PVC fitting stand on the PVC holding piece present on the plate.
Attach the circular work table on the rotary Y-axis.
Wrap up the wires of all X-axis stepper and CD ROM’s linear stepper motor together with the help of a plastic straw. I converted a plastic straw into a spiral cable wrap/ cable sleeve with the help of a pencil sharpener.
Hold this cable sleeve with one of the PVC stands with the of zip ties. Make sure that the hanging cable sleeve do not touch the rotary table.
Adjust the X axis and Z-axis (pen holder) so that the pen tip should coincide with the center of rotary table.
The Assembly of all parts is done.
Schematics and Circuit Diagram
The Polar CNC Plotter V2 general parts includes two Bipolar stepper motors and a CD ROM’s linear stepper motor controlled by Arduino Uno Microcontrollerwith the help of three A4988 stepper motor drivers mounted on CNC Shield V3.
It consists of Y axis as a rotary table, X axis move linearly forward and backward relative to the centre of rotary table and Z axis (linear stepper motor) move linearly up and down to carry out lift a pen up/down.
Make proper connections of stepper motors, A4988 stepper drivers and Linear stepper motor with the CNC Shield V3.
The A4988 is capable of microstepping at 2X, 4X, 8X, or 16X the full-step resolution, configured using pull-up jumpers located beneath each driver module on the CNC Shield board. To get 1/16 step pulse of a motor step connect all three Jumpers.
The CNC Shield V3 is powered with an external power supply (12VDC) via 2.1 x 5.5mm DC Power Jack Socket Female.
GRBL Firmware
Download and install GRBL firmware for Arduino Uno:
Download and install Arduino IDE:
https://www.arduino.cc/en/software
After installing the Arduino IDE, unzip to extract the files of GRBL firmware.
Inside GRBL firmware folder > Copy grbl folder > paste it into C:\Users\Your PC\Documents\Arduino\libraries
Now Connect Arduino Uno via USB cable > Open Arduino IDE > Tools tab > Choose Correct COM port and Board type
Go to File Tab > Examples > grbl > Upload
GRBL Configuration and Calibration
X axis travel resolution ($100) : It is calculated on the stepper motor’s step angle - steps per revolution
To calibrate X-axis, we need to know current values of $100 which denotes steps per mm for the axis.
To get this value we need to open UGS and connect it with Arduino uno. After successful connection enter $$ in commands tab. Note down the current values of $100.
For Ex:-
Current $100 value = 100
Enter 10mm to commands to run X-axis and note own the distance travelled by X-axis. In my case
Desired Length = 10mm
Actual Length = 8mm
To Calibrate X-axis use this formula to get the new value of $100 value
New $100 value = (Desired Length / Actual Length )* Current $100 value
(10 / 8 ) * 100 = 125 = New $100 value
Y axis travel resolution ($101): The Y axis rotates, so we have to calculate it. Steps/mm of rotary Y axis is defined by angle in polar coordinates i.e. steps/degree (STEP/° ):
Similarly, to calibrate Y-axis, we need to know current values of $101 which denotes steps per mm for the axis.
It is a rotary axis so we need that value of $101 for which we get 360° rotation when we enter 360mm in UGS.
To get this value we need to open UGS and connect it with Arduino uno. After successful connection enter $$ in commands tab. Note down the current values of $101.
Stepper motor step angle: According to the data sheet, the stepper motor is operated in full-step mode, each step corresponds to a rotation of 3.75°. This means there are 96 steps per revolution (360°/ 3.75° = 96).
My Plotter’s Gear ratio= 12:40 and stepper motor microstepping on CNC shield V3 = 1/16
Y axis STEP/mm ($101) = STEP/ANGLE = (96 x 40 x 16)/ (360° x 12) = 14.22 STEP/°
NOTE: This value does not work for my machine. So, I put different values for STEP/°in the UGS by sending command in UGS to move 360mm. After several attempts the Rotary Y-axis rotated exactly one revolution. The value of STEP/° is 17.312
STEP/° is the key for the CNC machine to work properly in polar coordinates based on GRBL firmware.
Z axis travel resolution ($102): Linear Stepper Motor steps Per Revolution = 48
Downloads
Generate SVG Files
I used Inkscape software to generate SVG Files.
Steps for generating SVG File in Inkscape:
Download older version of Inkscape i.e. Inkscape 0.92.2 from the following link:
https://inkscape.org/release/0.92.2/windows/
After downloading Inkscape software extract all the files in a folder.
- Open Inkscape.
- Click on File tab > Document properties > change Width and Height to 150mm each.
- Drag and drop the particular image in Inkscape > Select Image > Convert to Path > Delete the original image > Path tab> Object to path
- Go to File tab > Click on Save As > file name.Inkscape SVG (*svg), > Click on Save button.
Cartesian to Polar Gcode Conversion Using GRBL- Plotter
GRBL- Plotter Software
A GCode sender for GRBL under windows, using DotNET 4.0 (should also work with Windows XP) Written in C# Visual Studio 2022 developed by svenhb. I used this software for Conversion of G-code from Cartesian to Polar coordinates and to stream Gcode.
You can download and install the GRBL-Plotter Software from the following link:
https://github.com/svenhb/GRBL-Plotter/releases
Steps to convert Cartesian Gcode to Polar Gcode using GRBL- Plotter:
- Open GRBL- Plotter Software
- On the right side Click on Router tab > tick the box of Spindle On and Tool is in Spindle.
- Go to File tab > open SVG file
- A Select use Case dialog box open up > in Current settings Click on example_router.ini > Click on Load and apply settings
- Go to Origin XY and click on centre circle
- Now Click on G-code Transform tab > Click on Convert to Polar Coordinates, the Polar Gcode is ready.
- Click on Play button to stream the Polar Gcode.
Working
Connect USB Cable to Arduino Uno port and 5V DC power to the power port.
Cut a 20cm diameter circular paper sheet from a A4 white paper sheet.
Hold this paper sheet on rotating Y-axis plate with the help of paper 3 paper clips.
Put the color pen in the pen holder of the plotter.
Open GRBL-Plotter, select Port and set Baud to 115200, click on Connect tab.
Set the original coordinates by button Reset Zero. It should be located in the center of rotary axis.
Click Open ‣ Browse to the G-code file "Hello_World.gcode".
Click on Play button and Polar CNC Plotter V2 will start drawing the image.
STL Files
All the STL files are prepared using Tinkercad CAD online.
Conclusion
I made this project from easily available materials such as smooth steel rods, linear bearings, timing pulley and belt, PVC pipe fittings and some 3D printed parts.
If you have any query regarding this tutorial, feel free to ask in comments section.
Hope you enjoyed this session of Instructables. Thanks for reading my work. I feel glad if you make your own Polar CNC Plotter V2 with the help of this tutorial.
Stay tuned to my Instructables channel for more upcoming exciting projects.
Thanks again.