Build A Simple 3D Printed CNC Plotter Machine - 8 Steps (With Pictures) - Instructables
Build A Simple 3D Printed CNC Plotter Machine - 8 Steps (With Pictures) - Instructables
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 1/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
First, let's examine the design of this CNC machine. The two main components are MGN15H linear rails with
their corresponding sliding blocks. The motion for the X and Y axes is provided via two GT2 Belts and some
GT2 pulleys. As for the Z axis, we have a simple reciprocating motion where the moving part slides up and
down via two 6mm linear bars and appropriate springs. A small hobby servo provides this movement. A limit
switch is used for each axis for homing and safe movement. The 3D models are attached, the models that need
to be printed in two pieces are marked as ‘2x’.
Here is a list of components required for assembly. The list of electronic components can be found in the circuit
diagram section of the article.
We can start the first step of machine assembly. Secure the 2 base plates for the X-axis and the 2 linear rail
brackets together using a few M3 bolts. Once the two sides are ready, insert the X-axis linear rail into the
brackets on both sides and fix them with the help of M5 bolts. MGN15H rails are available in various
variations in some markets. As the name suggests, the width of all types is standard 15mm, but some linear
types may be different in height, hole widths, and distances between the holes. In this case, the linear rail
specifications I use:
In summary, some linear rails may differ, so you may have to drill the 3D bracket part with a drill according to
the ‘Hole Pitch (P)’ or you may have to update the 3D model. Other differences in dimensions should not be a
problem.
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 3/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
Now for the Y-axis linear rail assembly. The Y-axis must run above the X-axis linear block and a 3D part called a
mounting plate is used to join both axes. First, we can mount the two NEMA 17 stepper motors. One is mounted
on the top side of the plate and the other on the bottom side with M3 bolts. Then, two M5 bolts and nuts are
fixed to the plate to install the GT2 pulleys in place. The two idler pulleys here are used to provide engagement
for the X-axis GT2 belt and stepper motor pulley. It is recommended that the stepper motor gear pulley and the
idler pulleys be almost flush. I used several nuts to align the idler pulleys.
Next, I placed the Y-axis linear rail on the plate and fixed it with two M5 bolts. The linear rail hole spacing in the
X-axis applies to the Y-axis linear rail, if the hole widths and spacing are not compatible, you can create
compatible holes with the help of a drill. After mounting the Y-axis linear rail, the two axes are connected to each
other by fixing the mounting plate to the X-axis linear block using four M4 bolts.
Now that the machine has almost taken its main shape, we will add a pulley to the other side of the Y-axis linear
rail, that is, to its idle end. This pulley will allow the belt for the Y axis to be installed in a cycle. You can choose
this pulley as a toothed or idler pulley, I used a toothed pulley. For the assembly of the cycle pulley, I mounted
the 3D part called ‘Y-axis Pulley’ to the linear rail with an M3 bolt. I also designed a support part due to the
length of the Y-axis linear rail and the weight of the pen lifter part. In this way, I solved the wobble problem for
this axis. I also designed a wheel with a bearing for smooth movement of the support part. I fixed the wheel with
bearing to the support part with M5 bolt, and fixed the support part to the pulley part with M3 bolt. Now the Y
axis linear block can reach any position in the workspace.
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 4/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
Now, before the pen lifter, let's assemble the X-axis belt. The X-axis belt is passed between the stepper motor
pulley and idler pulleys to provide tension, connectors are connected to each end of the belt and these
connectors are fixed to the base side plates with an M3 bolt. If you need more tension, you can choose a
tension spring.
Now we can proceed to assemble the pen lifter part. This mechanism consists of two models; one model to be
fixed to the Y axis linear block and the other model to move the pen up and down. Firstly, I set the servo motor
to 180 degrees angle, and mounted it to the fixed model using the screws that come with the servo motor. Then
I placed the pen holder moving model with two springs and two 6 mm rods to the fixed model. When the servo
motor is at 180 degrees angle, the pen will stay in the down position, and when the servo motor is at 150
degrees angle, the pen will stay in the up position. The springs will provide tension to push the pen mechanism
down.
After assembling the pen lifter model to the Y axis linear block using M4 bolts, we can proceed to connect the Y
axis belt. Connect the connectors to both ends of the belt and then secure the belt to the pen lifter using M3
bolts by passing the belt through the stepper motor pulley and the other end of the linear rail. You can use the
bolt sliding slots to adjust the belt tension during fixing. You can also increase the tension level by including a
tension spring.
Actually this is all in the hardware part, finally I placed the X and Y limit switches in their locations using 2M
bolts.
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 5/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
You can optionally use Arduino UNO board and CNC shield in the circuit section, but I designed a printed circuit
board with all components together, I use PCBWay for circuit board printing service. You can choose PCBWay
for low-budget and high-quality PCBs. You can access the following details and files about the circuit for free
from
https://www.pcbway.com/project/shareproject/Build_a_simple_3D_printed_CNC_plotter_machine_dfd8b2d7.html.
1. Circuit diagram
2. PCB Gerber File
3. Bill of Materials
4. Input-Output PINs to which the components are connected
Only the CH340 USB communication chip on the board is SMD type, you may need to be a little careful when
soldering. Contact between the legs may cause a short circuit. All other components are easy to solder. If you
do not have soldering experience, you can get this board assembled from PCBWay, all you need to do is to
select the ‘PCB+Assembly’ option on the PCB page.
Note: The circuit is in 1/16 micro-stepping mode. That is, in full-step mode. So, Motors 17HS4401 Nema 17
rotates 1.8° per step, i.e. 200 steps per full revolution (360° / 1.8° = 200 steps). 1/16 Microstepping: 200 full
steps × 16 = 3200 micro-steps/revolution
The circuit board is Atmega328P based and provides control of 3 axes, 3 limit switches, and a servo motor. The
project includes two stepper motor axes and it is sufficient to install two standard A4988 stepper motor drivers.
Based on the datasheet of the stepper motors used, the required current value should be set with the current
screw on the driver. When measuring, you must provide 5-volt power to the card via USB.
If the card is ready, let's make the connections. Connect the X-axis, Y-axis, and servo motor. Then connect two
limit switches. Finally, connect a 12-volt and approximately 3-amp power supply. Now let's move on to the
software part.
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 6/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
First, we need to add and use a library called ‘grbl-mi’, which is specialized for servo motors. You can access
the library from this GitHub link - https://github.com/DIY-Machines/CNC-DrawingMachine
After the library installation is complete, find grbl-mi from the Examples and upload the grblUpload code to
the board. After uploading this code to the board, switch on the serial monitor, select the baud rate of 115200,
then enter the $$ command to list the grbl parameters. The parameters listed are specific to this machine. But
don't worry, many parameters are standard and a brief description of each parameter is provided. The important
point here is to make sure you enter the correct values for ‘stepper motor steps in millimeters’ and ‘device
dimensions’.
1. 17HS4401 Nema 17 rotates 1.8° per step, i.e. 200 steps per full revolution (360° / 1.8° = 200 steps).
2. 1/16 Microstepping: 200 full steps × 16 = 3200 micro-steps/revolution
3. Each tooth of the GT2 belt used provides a distance of 2 mm (tooth pitch is 2 mm).
4. Using a GT2 pulley with 20 teeth. This means that when the pulley makes one full revolution, the belt
travels 20 teeth x 2 mm/tooth = 40 mm.
In this case, I have set it to 80 steps/mm, which means that for 1.0 mm of movement, the motor has to take 80
steps, which will give exactly 1 mm of movement.
GRBL Parameters:
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 7/8
13/11/2024, 11:46 Build a Simple 3D Printed CNC Plotter Machine : 8 Steps (with Pictures) - Instructables
After uploading the code to the board, download and install the Universal G-Code Sender
(https://winder.github.io/ugs_website/) software for machine control. You can think of this software as an
interface for machine control.
After opening the software, select the USB port to which the board is connected, after the connection with the
board is established, you will see the machine parameters on the console screen again. Every change you
make in the software will update these parameters. Also, when connected to the machine, the software
switches to alarm mode and locks the machine for security purposes. You can switch to normal mode by
clicking Unlock.
Then open the ‘Setup Wizard’ section of the software. In the Motor Wiring section, check whether your motors
rotate in the correct directions by making small movements and use the reverse motion option if you want.
Step Calibration section, you can define the zero point of the machine by moving the machine axes. It would
be better to manually bring the machine to zero point every time you run it and click ‘reset to zero’. Remember,
when moving it manually you have to cut the motor power. If you want, you can check the limit switches in this
section and trigger them in the opposite direction. In the limit switch tests, the software will activate the alarm
mode and stop the machine.
Then let's do ‘Homing’, the important point here is to make sure that the motors are moving in the right
direction before starting the homing process and be prepared to cut the power to the motors just in
case. When the homing process is complete, cut the motor power and manually bring the machine to zero
point. Now the machine is ready, every time you open the software, bring the machine to zero and click the
‘reset to zero’ button.
To use the software we need a G-Code and for this, we will use Inkscape. Firstly download this version of
Inkscape and complete the installation. Then download a popular extension ‘4-xi Draw’ extension developed for
Inkscape (I could not add the ZIP extension file here, ZIP extension file uploading is not supported. You can
access the extension file by going to the link where PCB files are shared), then export the ZIP files and copy all
the files in the folder. Paste the copied files into Inkscape's extensions folder.
Open Inkscape and go to Page settings where you set the aspect ratio to close to the machine dimensions in
millimeters. Then import any image you want and place it on the page. Select the image and then open Trace
Bitmap. In this section, you only need to press the ‘OK’ button and then delete the first imported image. From
the Extensions section, go to 4-xi Draw and open the ‘Create Pen’ tool. In this section update the
servomotor up and down position angles, define the file name, and click on the ‘Apply’ button. In a few
seconds, the image will be created with G-Code and transferred to the specified directory. Now go back to the
Universal G-Code Sender software, manually move the machine to zero, select the port to which the
machine is connected, select "reset to zero" and then import the G-Code. Press the Run button and the
drawing will be started. That's all, we've come to the end of another project. Thank you for reading.
https://www.instructables.com/Build-a-Simple-3D-Printed-CNC-Plotter-Machine/ 8/8