CNC Plotter
In this project, I'd like to share how to build a homemade 3 axis CNC machine with its frame and supports made of electrical wire casing/duct and plywood sheet. Basically it is a pen plotter and can be used as a laser Engraver with a plot area of 25cm X 25cm. The idea of making linear rails with the electrical wire casing/duct makes the whole machine cheaper and of less weight. Hope you like this Idea.
Step 1: Material Required
· 1pcs x Old Plywood
· 3pcs x Stepper Motor Driver A4988 with CNC Shield V3.
· 2pcs x Stepper motor NEMA 17.
· 1pcs x Arduino Uno.
· 1pcs x Servo Motor.
· 1pcs x Cardboard(28cm X 26cm)
· 2pcs x GT2 6mm Closed Timing Belt 200mm.
· 4pcs x GT2 Timing Pulley 20 Teeth.
· 1pcs x Electrical wire Casing/duct (4 meters).
· 20pcs x Screws.
· 2pcs x Springs.
· 1pcs x Power Supply 12VDC.
· 4pcs x Small Neodymium Magnets.
Step 2: X-axis, Y-axis
The X-axis and the Y-axis of the plotter are made up of plywood and electrical wire casing/duct. The making of linear rail from casing/duct came from the idea that the upper part of the casing with small length slides smoothly on the other part of the casing.
For the support of linear rails I have used old piece of plywood, which is to be cut in two pieces of dimension (35cm X 9 cm) each. As the dimension of casing to be used as linear rail is (35cm X 3cm) and a piece of plywood (16cm X 10 cm) used as a Base .
Here you also need a plywood piece of same dimension i.e. 35cm X 9cm to support X axis.
All Other parts like slider for all three axis and supports are made up electrical wire casing.
Total casing/duct parts required:
16 pcs X 10 cm each.
4 pcs X 35cm each (for linear rail).
Step 3: Z-axis
The Z-axis is controlled by Servo Motor. The parts for lifting pen in Z-direction are made of casing and a small piece of PVC pipe as shown in image.
Step 4: Preparation of All Parts
After cutting plywood and casing with a hand saw and drilling holes, the all parts first assembled separately. The X-axis rail, Y-axis Rail, Servo motor as Z-axis and other supporting parts.
For the Work table I have used a cardboard with metal sheet of thin layer pasted over it and covered with White Paper Sheet. The cardboard size is 28cm X 26cm.
Step 5: Assembly of All Parts
With the help of screws all final parts are assembled together to form basic structure of the machine. The NEMA 17 Stepper Motor with pulley belt mechanism is used for both x-axis and y-axis. Here Casing Parts are used to support X-axis.
Step 6: Connection Diagram
The Connection should be made as per the diagram. Plugging stepper motor drivers A4988 on the CNC Shield V3 and connecting steppers motor to it. The Servo motor signal wire should be connected to Z+ pin of CNC Shield and the power supplied to it by 5V pin and GND pin of CNC shield.
Step 7: Software Used
· Arduino IDE
· Inskcape.
· Grbl Controller.
Link to download GRBL file:
https://github.com/grbl/grbl
Download the library file unzip it and load to arduino as:
File > Example > grbl upload compile and upload code to arduino
Step 8: G-CODE Setup in Inkscape
We are using INKSCAPE software to make G-code. As we are using GRBL & CNC Shield for this machine s
o it will not support a servo motor as a Z-Axis so we can use MI Extension here to get it work with Z-axis Servo
You can Download MI Extension from inkscape page.
After download add this files as:
inkscape directory > Share > Extension folder
Now open inkscape set page size 100mm x 100mm
select image go to Trace Bitmap then convert to path
then go to extension click on MI GRBL Z-AXIS SERVO CONTORL
Step 9: GRBL Controller
Open GRBL Controller > Select COM port > Set Baud rate 115200 > click on "OPEN"
go in "COMMANDS" Tab
enter $$ for GRBL configuration
Example: Suppose we want to change the $100 value from 100 to 50
so enter $$ in command line and write $100=50 and press enter.
GRBL CONFIGURATION:
G21
$$
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=100.000 (x, step/mm)
$101=100.000 (y, step/mm)
$102=250.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
Step 10: Working
Now time to stream Gcode to machine go to "FILE MODE" Tab Browse your gcode file and hit enter. Your machine starts plotting.