Polar CNC Pen Plotter & Laser Engraver


I've done a 3-Axis Polar CNC Machine on the previous post. I've made some below modifications this weekend and would like to share in detail.


Change the CNC structure: the Y rotation axis is mounted on the X linear axis.


Pen plotting mode or laser engraving mode can be used. 


Test with DFRduino Mega2560 and Ramps 1.4.


Let's getting started.



a. Main materials:


Controller options:


1pcs x DFRduino UNO R3 - Compatible with Arduino Uno + 1pcs x Arduino CNC Shield V3 GRBL.


1pcs x DFRduino Mega2560 + 1pcs x RAMPS 1.4 Controller.


3 Axis Control Board GRBL With Laser Engraver Supported.


1pcs x 2500mW Laser Module.


3pcs x Stepper Motor Driver A4988


3pcs x Stepper motor NEMA 17.


2pcs x 50 mm L Stepper Motor Support.


2pcs x GT2 6mm Closed Timing Belt 200mm.


2pcs x GT2 Timing Pulley 20 Teeth.


2pcs x GT2 Timing Pulley 60 Teeth.


2pcs x Round Shaft Diameter 8mm, Length 400mm.


1pcs x Round Shaft Diameter 8mm, Length 200mm.


2pcs x 8mm Linear Rail Shaft Clamping Guide Support.


2pcs x T8 Lead Screw 2mm Pitch, 8mm Lead , Length 400mm with Copper Nut.


20pcs x Ball Flanged Shielded Bearings 8 x 22 x 7mm.


1pcs x Aluminum Flexible Shaft Coupling, Inner Hole Size: 5mm x 8mm


1pcs x Power Supply 12/24VDC.


2pcs x Clear/White Acrylic, size A3, thickness at least 5mm.


4pcs x Copper Brass Pillars L-20mm.


1 meter x 8P/16P Rainbow Ribbon Cable.


Some small cable ties, cable spiral wrap, M3/M4 bolts and nuts, some paper clips.


b. PVC pipes and its fittings:


4pcs x PVC Pipe Elbow Ø42mm.


8pcs x PVC Pipe Straight Connector Ø42mm.


16pcs x PVC Pipe Tee Ø42mm.


3pcs x PVC Pipe Cross Ø42mm.


16pcs x PVC Pipe End Cap Ø42mm.


8pcs x PVC Pipe End Cap Ø60mm.


4pcs x PVC Reducer Ø60mm to Ø42mm.


2pcs x PVC Tee Reducer Ø60mm to Ø42mm.


2 meter x PVC Pipe Ø42mm and Ø60mm.


c. Softwares:




tkCNC Editor


Universal Gcode Platform (UGS)


Step 1: Build Rotary Y Axis


Cut an A3 sized acrylic sheet into a circle form with a diameter 297 ~ 300mm. Two motor L-shaped supports and two 8mm linear rail shaft clamping guide supports were mounted on acrylic sheet so that the shaft supports center hole and acrylic sheet center were aligned together.



Assemble the rotary motor support, it included:


3pcs x PVC pipe cross Ø42mm.


1pcs x acrylic sheet for mounting rotary stepper motor.


3pcs x PVC end caps Ø42mm.


2pcs x bearings at top and bottom of middle cross.


Step 2: Build Linear X Axis


From rotary support, I continued to build up the linear X axis by:


-Mount two PVC pipe tees Ø42mm to left and right crosses of rotary base.


-As picture below, left tee will thread a lead scew and right tee for a round shaft. So they were installed copper nut and bearings on their end caps, following their functionalities.



Install rotary working plate on this base.


Thread a lead screw and T8 round shaft through copper nut and bearings.


Step 3: Build CNC Frame


Assemble main CNC frame, included: PVC tees Ø42 & Ø60mm, straight connector, elbows, reducer Ø60mm to Ø42mm, pipe Ø42 & Ø60mm.



On the main frame, one wooden support was installed. The X stepper motor and CNC controller will be mounted on it.

Step 4: Build Linear Z Axis


Mount Z stepper motor on the base which was built of 2pcs PVC end caps Ø60mm, connect the motor shaft to a lead screw by flexible coupling 5x8mm. The Z working base was also built of 2pcs PVC end caps Ø60mm and connected to the motor base by lead screw and shaft 400mm.



Build a tee reducer (Ø60mm to Ø42mm) support which included copper nuts and bearings. This support was used to mount the Z-axis to the main frame.


Install laser holder at Z axis working base.


Install laser module on the pipe support & Z axis was done!


Step 5: Assembly


Mount XY axes to main frame, connect stepper motors to lead screw and rotary platform by closed timing belts 200mm plus 60 teeth pulleys.



Adjust a top middle pipe support to mount the Z axis so that the laser head center should come across the rotary table center when moving the X axis back and forth.


Mount Z axis to main frame.




tep 6: Connection & Controller Options


I have connected & tested my polar CNC on the following hardware options:


DFRduino UNO R3 + Arduino CNC Shield V3 GRBL.



With the hardware selection: DFRduino Mega2560 + RAMPS 1.4, we can apply built-in polar kinematic that can convert directly to polar coordinates without extension software. And there are some good references with RAMPS 1.4 that has been applied to 3D printers, such as:





Step 7: GRBL Parameters


Download and install GRBL firmware for Arduino: https://github.com/gnea/grbl


GRBL settings:


Set $32 =1 to activate the Laser Mode.


⦾ X axis travel resolution ($100):


The X stepper motors steps per revolution: 200.


Micro-stepping: 2.


The pulleys ratio: 20:60 (or 1:3)


Leadscrew pitch: 2mm.


$100 = (200 x 3 x 2)/2 = 600 STEP/mm.


⦾ Y axis travel resolution ($101):


Stepper motor step angle: 200 steps per revolution or step angle 1.8°.


Pulleys ratio: 20:60 (or 1:3).


Micro-stepping: 1/8.


$101 = STEP/ANGLE = (200 x 8 x 3)/360° = 13.333 STEP/°


⦾ Z axis travel resolution ($102):


The Z stepper motors steps per revolution: 200.


Micro-stepping: 2.


Leadscrew pitch: 2mm.


$102 = (200 x 2)/2 = 200 STEP/mm.


Step 8: LaserGRBL


⦾ Download & install LaserGRBL in your computer.


⦾ Open a picture with LaserGRBL.


⦾ Select “1bit BW dithering” tool from conversion tool options.


⦾ In Laser Options, select:


Laser ON: M4.


Laser OFF: M5.


Type S-MIN (0) and SMAX (150) based on Laser Module power and plywood.


⦾ Click File ➡ Save Program. This picture's G-code is generated and saved with Cartesian coordinates.



Step 9: Cartesian to Polar Conversion Tips


Open file GCODE file by tkCNC Editor software.



As we can see in the GCODE file above, S0 is a command to turn off the laser module and command S150 is to turn on the laser with a power 150 compared to the maximum power 255.


We need to replace S0 and S150 with M5 and M4 before performing the conversion to polar coordinates. Otherwise tkCNC Editor software will not understand G0 or G150 commands and they will disappear after conversion.


Go to "Modify" ‣ Select "Cartesian to Polar Conversion..." ‣ Set-up polar parameters in window pops up ‣ Click "OK".


Note that polar coordinates are represented by X and C in this software. So we need to replace "C" by "Y" and "M5 & M4" by "S0 & S150" ‣ Click "Save CNC file as" with difference name. Finally, we open this modified GCODE in LaserGRBL, it looks like this:


With pen drawing mode, we do the same as above, with:


-Replace S0 by pen lift up command, eg: G0 Z1.000


-Replace S150 by pen lower down command, eg: G1 Z-1.000 F500

Step 10: Pen Plotting Mode Testing



With pen plotting mode, my polar CNC works quite well through the images above.


For laser engraving, I've tried on plywoods and cardboards. It also gave good results.

Step 12: Conclusion



With this version, my polar CNC machine combined rotational and linearal movements on one common axis, so its operation looked very attractive.


Thank you for reading my works! Thank to DFRobot for supporting me on this project as well.

The article was first published in instructables, September 27, 2021

cr: https://www.instructables.com/Polar-CNC-Pen-Plotter-Laser-Engraver/

author: tuenhidiy

All Rights