P-CNC Laser Engraver and Pen Plotter
by tuenhidiy in Circuits > Arduino
14650 Views, 180 Favorites, 0 Comments
P-CNC Laser Engraver and Pen Plotter


In this project, I'd like to share how to build a homemade 3 axis P-CNC machine with its frame and supports made of PVC pipes and acrylic sheets. It has two operation modes: pen plotting and laser engraving.
Please check the brief description and how P-CNC Engraver & Plotter works in the video below before getting started in detail.
Supplies
1. Main materials:
- 1pcs x 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 GT2 6mm Closed Timing Belt 200mm.
- 2pcs x GT2 Timing Pulley 20 Teeth.
- 2pcs x GT2 Timing Pulley 60 Teeth.
- 3pcs x Round Shaft Diameter 8mm, Length 400mm.
- 3pcs 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 Aluminum Flexible Shaft Coupling, Inner Hole Size: 10mm x 10mm.
- 1pcs x Power Supply 12VDC.
- 2pcs x Clear/White Acrylic, size A4, thickness at least 5mm.
- 4pcs x Copper Brass Pillars L-5/10mm.
- 1 meter x 8P/16P Rainbow Ribbon Cable.
- Some small cable ties, cable spiral wrap, M3/M4 bolts and nuts, some small neodymium magnets.
2. PVC pipes and its fittings (with some spares):
- 8pcs x PVC Pipe Elbow Ø42mm.
- 8pcs x PVC Pipe Straight Connector Ø42mm.
- 14pcs x PVC Pipe Tee Ø42mm.
- 3pcs x PVC Pipe Cross Ø42mm.
- 16pcs x PVC Pipe End Cap Ø42mm.
- 6pcs x PVC Pipe End Cap Ø60mm.
- 3pcs x PVC Reducer Ø60mm to Ø42mm.
- 2pcs x PVC Reducer Ø50mm to Ø42mm.
- 2 meter x PVC Pipe Ø42mm and Ø60mm.
3. Tools:
- Drilling machine with drill bit hole 8/22mm.
- Hand saw.
- Hand grinder.
- Soldering machine.
- Big scissor.
Connection
I used a GRBL-based controller for a 3-axis CNC machine and it supports laser control.Connection diagrams:

- Wavelength: 450nm.
- Power output: 2.5W.
The NEXTPCB support me for this project. If you have a PCB project, please visit the NEXTPCB website to get exciting discounts and coupons.
- Only $0 for 1-4 layer PCB Prototype: https://www.nextpcb.com/pcb-quote?act=2&code=tune...
- New customer get $100 coupons, register at: https://www.nextpcb.com/register?code=tunendd
Here are mid-summer sales at NextPCB:
- Up to 30% off for the PCB orders.
- Up to 20% off for the PCBA orders.
Building P-CNC Frame
I assembled a PVC frame, with horizontal dimension L480 x W480mm and vertical dimension W480 x H550mm.
It was made of:
- 10pcs x PVC tees Ø42mm.
- 6pcs x PVC elbows Ø42mm.
- 8pcs x PVC straight connectors Ø42mm.
- 2pcs x PVC reducer Ø60mm - Ø42mm.
- And some PVC connecting pipes Ø42mm & Ø60mm.
With PVC fittings, I could built a frame easily which had 4 pairs of pipes that were completely symmetrical each other. My arrangement idea was as follows:
- The X and Z axes: mounted on the vertical frame.
- And the Y axis: mounted on the horizontal frame.
Drilling Works
I used PVC pipe end caps plus bearings/copper nuts to mount/ thread the CNC round shafts and lead screws. For drilling works, I used a normal drill bit 8mm & a punch drill bit 22mm in this project. Detail is as follows:
- One drilling hole - Ø22mm - on the end cap Ø42mm: total 14pcs, for mounting round shafts and lead screws of X and Y axes.
- One drilling hole - Ø10mm - on the end cap Ø42mm: total 2pcs, for copper nuts of lead screws. I used 8mm drill bit, then I made these holes a little wider carefully, until copper nuts could be tightly inserted to the holes. Their pictures are as same as above pictures with 10mm holes in the center.
- Two drilling holes - Ø22mm & Ø8mm - on the end cap Ø42mm: total 4pcs, for mounting Z axis.
- Two drilling holes - Ø22mm & Ø8mm - on the end cap 60mm: total 4pcs, for mounting Z axis stepper motor and Z axis working base. One of them is used to mount the stepper motor so it has been drilled 4 more small holes.
Z Axis Assembly Work
- All end caps Ø60mm for mounting Z axis should be cut to proper length to extend Z axis working space.
- Mounting Z stepper motor and connecting to 400mm lead screw by flexible coupling 5 x 8mm.
- Connecting motor base to a remaining end cap and installing a shaft into 8mm diameter holes.
- Fixing it by two end caps at the opposite of Z stepper motor.
X Axis Assembly Work
- X axis was built from 2pcs x PVC crosses. After cutting & connecting 2 crosses together, I installed 6pcs x end caps Ø42mm with bearings & copper nuts at the six ends of PVC crosses.
- The Z axis will be mounted on this X axis movement base. It carries one stepper motor and its support on top as described in previous step.
- To prevent it from slipping during operation, I installed 2 copper nuts on the top and bottom end caps.
- I cut one acrylic plate size 150 x 230mm, drilled 8 small holes for mounting X stepper motor and P-CNC controller. This acrylic plate was then connected on the P-CNC frame by 2 big holes whose diameter is equal outer diameter of pipe Ø42. Based on the 200mm closed timing belt and 60 teeth pulley used, I had to carefully measure the distance from stepper motor shaft to the big hole center before drilling.
- Threading connecting pipes through these holes and locked them by end caps at stepper motor working side.
- Mounting the Z axis to the working base of the X axis.
- Pre-assembling with 20 & 60 teeth pulleys and closed timing belt 200mm and check if it had any mistakes.
- Mounting X and Z axes on the main P-CNC frame. With a PVC frame arranged symmetrically, it was easy for me to do the alignment and it worked very smoothly by hand.
Y Axis Assembly Work
- Y axis was built from 2pcs x PVC tees which were connected together. I installed 4pcs x end caps Ø42mm with bearings & copper nut at the four ends of PVC tees.
- As same as X axis, one acrylic plate size 50 x 230mm was drilled 4 small holes for mounting Y stepper motor and 2 big holes for mounting to main frame.
- Pre-assembling Y axis with 20 & 60 teeth pulleys and closed timing belt 200mm and check if it had any mistakes.
- Mounting Y axis on the main P-CNC frame.
Y Axis Working Platform
- I reused a black and white board, A4 size for kids as a working platform which had a plastic border at outer edges. Before connecting X axis base to working platform by bolts, I inserted 2pcs x acrylic sheets thickness 5mm to make a gap between working platform and other supports.
- Because the thickness of outer border is bigger than the black & white board, so all bolt heads will be located lower than the red outer border.
- Mouting Y axis including working platform to main frame.
Laser Module Holder
- Drilling 2 holes and installing 2 bolts on the Z working base. With these 2 bolts, I can easily switch between 2 operating modes: pen plotting or laser engraving mode.
- Cutting a PVC reducer Ø50mm to Ø42mm at the diameter 42mm side.
- Measuring the size of laser module then cutting 2 grooves along the pipe 42mm (which had been cut above) following laser module dimension. It looked like this.
- Checking with laser module.
- Laser module with 42mm diameter pipe would be inserted and pushed into the 50mm diameter part until the laser head sticked out. In this way, the laser module was fixed firmly and I could easily mount or remove the laser module from the P-CNC chassis.
- Drilling 2 holes and connecting 50mm diameter support to Z working base by bolts.
- Inserting the laser module into the 50mm pipe support as described above.
Pen Holder
- Cutting a small acrylic sheet and drilled 4 holes on it. Two holes were used to mount flexible coupling 10x10 mm for pen clamping and the other two holes were used to connect to the Z working base.
- Connecting pen holder to Z axis working base.
- Another blackboard was used to create the plotting surface.
CNC Control Board Mounting and Wiring

- Etching an Instructables logo on the top of the P-CNC machine.
- Cable ties, cable spiral wrap were used to fix all wires. For safety reasons, I prepared a paper to test the pen plotting functionality before working with the laser.
GRBL Parameters
GRBL parameters setting for my P-Engraver & Plotter are listed in table below:
$32 | 1.000 | Laser-mode enable |
$100 | 1200.000 | X-axis travel resolution |
$101 | 1200.000 | Y-axis travel resolution |
$102 | 400.000 | Z-axis travel resolution |
$110 | 500.000 | X-axis maximum rate |
$111 | 500.000 | Y-axis maximum rate |
$112 | 500.000 | Z-axis maximum rate |
$120 | 20.000 | X-axis acceleration |
$121 | 20.000 | Y-axis acceleration |
$122 | 10.000 | Z-axis acceleration |
$130 | 200.000 | X-axis maximum travel |
$131 | 200.000 | Y-axis maximum travel |
$132 | 80.000 | Z-axis maximum travel |
Notes:
- Set $32 =1 to activate the Laser Mode.
- Laser Mode also enable you to use M4 Dynamic Laser Power Mode. As refer from guidance of LaserGRBL developer: "This is a unique feature that automatically adjust laser power based on the current speed relative to the programmed rate. It essentially ensures the amount of laser energy along a cut is consistent even though the machine may be stopped or actively accelerating".
Inkscape & Universal Gcode Platform
For pen plotting mode, I used the following softwares:
- Inkscape and Gcodetools extension: create the G-code files from texts or images.
- Universal Gcode Platform (UGS): send the G-code file that generated by Inkscape to P-CNC controller and monitor the P-CNC in action on its Visualizer tab.
For the first testing, I created a G-code file for a text "NEXTPCB" because NEXTPCB has always supported me on my projects.
Pen Plotter Testing



The pen plotting mode has worked quite well through the images above and in my introduction video.
LaserGRBL Software
To engrave on plywood, I used LaserGRBL software, detail description at: https://lasergrbl.com/. LaserGRBL can load and stream Gcode of images to GRBL based engraver by its internal conversion tool.
We can enable PWM control to produce grayscale tones if our laser module support TTL control connected to Arduino PIN D11.The plywood composition is not homogeneous so after a few tests I used the “dithering” tool as suggested from LaserGRBL original information and it really worked well to create a nice engraving photo.
For each specific type of plywood, the laser engraving may be different. I had an A4 size plywood and it is itself divided into 2 parts: one easy to be burnt and the other part not easy to be burnt with the same setup. My setting is as follows:
- Open a picture with LaserGRBL.
- Select “1bit BW dithering” tool from conversion tool options.
- Adjust Brightness, Contrast and White clip by sliders
- Select Dithering Options from the drop down list. I have tried with below options:
- Dithering: Atkinsion.
- Direction: Horizontal.
- Quality: 10 Lines/mm.
- Click "Next" then one small window pop up.
- Enter Enraving Speed, select Laser Options, adjust Image Size and Position on the popped-up window. Here below is my settings:
- Click "Creat" and it's ready to transfer Gcode to my P-CNC controller.
Laser Engraving Testing




The results were amazing for me as it was my first time working with a laser engraver.
Conclusion








Because PVC pipes and its fittings occupy a lot of space, it is rarely used for applications like this. With this project, I think we can expand it to a bigger size, more than 1 meter, then we would have a A0 size P-CNC plotting & engraving machine for our own home with cheap price and its quality is not bad!
Thank you for reading my works and hope you enjoyed my post this time!!!