Introduction: How to Make GRBL + CNC V3 Shield Based Mini CNC Machine From Scrap DVD Drive
This CNC is based on GRBL0.9 Firmware and CNC V3 shield GRBL is Hacked for Z-axis Servo.
CNC Shield & GRBL combinly works very preciselyIt is loaded with very useful functions like Hard limit, Soft limit, Homing, etc
This is about how to make
GRBL+CNCV3 shield+Arduino based CNC machine
This guide include all necessary instruction required
like How to assemble CNC machine
How to Load GRBL to arduino
Inkscape extension installation
GRBL Configuration & G-code streaming
It is loaded with very useful functions like Hard limit, Soft limit, Homing, i will guide you in detail how to Make GRBL Based mini CNC machine at home
Step 1: Watch Video to Know How to Make
Watch this video it will clear you how to make and operate CNC machine
Step 2: Material Required
This are the list of some use full material required
- Arduino UNO--------------------------------------QTY- 1
- CNC V3 Shield------------------------------------QTY-1
- servo motor----------------------------------------QTY-1
- A4988 Stepper driver shield--------------------QTY-2
- Old scrap DVD Drives---------------------------QTY-2
- Some push buttons as limit S/W---------------QTY-2
- A acrylic sheet for base
- Pen holder (slavege from DVD Drive)
- Some wires
- Hardware like nut bots etc.
Step 3: Software Required
1. Arduino IDE
GRBL LIBRARY :- Click here to download
--------------------------------------------------------------------------------------
2. INKSCAPE
SERVO CONTROL EXTENSION :-Click here to download
---------------------------------------------------------------------------------------------
3. UNIVERSAL G-CODE SENDER : - Click here to download
----------------------------------------------------------------------------------------------
Step 4: Machine Assembley
- Place X-axis Horizontally on the bolt mounted on acrylic sheet
- Four bolt mounted on a metal sheet to fit Y-axis on it
- Now place the Pen up down holder on y axis whit the help of A bolt through the center
- Now place Y-axis on metal sheet and place it vertically on X-axis
- Now fit servo motor so that it will move z-axis which is our pen up and down
- Now mount CNC shield on Ardunino
- Do wiring A shown in wiring circuit as in Next step
For better understand please watch Video & pic attached here
Step 5: Wiring Diagram
Do wiring as shown here in image
Limit switch are optional
You can use them by changing the GRBL setting as below
$21=0 (hard limits, bool)
to
$21=1 (hard limits, bool)
Step 6: GRBL Loading to Arduino
Link to download GRBL Setup
http://www.mediafire.com/file/c36xny4qw9b7s5k/MI_G...
Download the library file unzip it
and load to arduino
Now go to File>Example>grbl upload compile and upload code to arduino
Note:- delete any previously loaded GRBL library
Step 7: G-CODE Setup in Inkscape
Again we are using here 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 here some hack by doing so we can able to manage Servo works on Z-axis
you need to add MI Extension here to get it work with Z-axis Servo
Download link http://www.mediafire.com/file/nl4w871suk192x2/MI_...
after download add this files to the
inkscape directory>Share>Extension folder
Now open inkscape set page size 40 x 40mm
draw what you want to plot
select image go to convert to path
then go to extension click on MI GRBL Z-AXIS SERVO CONTORL
Servo up = M3
Servo down = M5
X-axis speed = 2000
Y-axis speed = 2000 S
ervo angle = 90
Delay = 1
Directory = as per you convenient or keep as it is
File name = as per you convenient or keep as it is
Clik on Apply now you G-code is saved @ location you mention
Step 8: GRBL Configuration & Streaming G-code
Download link for Universal Gcode sender
https://www.mediafire.com/?2l16dvqivwgc9el
Open Universal G-code sender (Arduino must stay connected with PC/LAPTOP)
Select COM port
Set Baud rate 115200
clik on "OPEN"
go in "COMMANDS" Tab
enter $$ for GRBL configuration
Example Suppose we want to change the $0(step pulse, usec) value from 10 to 20
so enter in command line $0=20 & hit enter its done
My GRBL SETTING
$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=5.000 (x, step/mm)
$101=5.000 (y, step/mm)
$102=100.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=40.000 (x max travel, mm)
$131=40.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
ok
Now time to stream Gcode to machine go to "FILE MODE" Tab Brows your gcode file and hit enter thats it
youR machine start plotting Hope you like this Comment below if any doubt
45 Comments
3 years ago on Step 1
Hello sir i found this error at InkScape
File "servo.py", line 52
def bezierslopeatt(((bx0,by0),(bx1,by1),(bx2,by2),(bx3,by3)),t):
^
SyntaxError: invalid syntax
Reply 1 year ago
did you solve this problem, i have a same situation just like you
Question 1 year ago on Step 1
i did this project just like you, but, when i make g code by inkscape, i get a error message like this,
File "servo.py", line 52
def bezierslopeatt(((bx0,by0),(bx1,by1),(bx2,by2),(bx3,by3)),t):
^
SyntaxError: invalid syntax
i find the solution for this error, there are some puzzled solutions.
how can i solve this problem ?
2 years ago
My servo is not working , everything is working fine except servo , Changed new servo , also tried using external supply for it , but ended up with result failed. Please help me in solving the issue. The last bug im facing now, help me in completing this problem. Thanks in advance
Question 2 years ago on Step 8
Tell me please, Y axis is holding pen? And i didnt saw in project what microstepping mode u using, 1/4,1/8,1/16, i made same constructions, and should be a same, if i put same grbl setting i must to put same microstepping mode as you to match the grbl settings, i wasnt saw in video or pictures where tou put jumpers on CNC shield for modes.
Question 2 years ago on Step 8
Plz provide the link for arduino program.
Question 3 years ago
Sir ,
I'm trying this project for a year , still not yet completed . Ive finished all the construction works , circuit works , and coding works . All are working . But i can't get the proper output . When the gcode is running , the stepper motor vibrates but not spinning in right way . X axis stepper works somewhat active , but y axis stepper doesn't respond for any commands , At start and at the end of the code it shows response . I don't know what to do , I can't even find what is the problem . I've changed stepper motors . Ive done this with two driver shields , (L293d driver shield and Cnc sheild v3 with A4988 sriver ) . Both shows this kind of output . And servo doesn't respond at all . Please someone help me out .
Question 5 years ago on Step 8
Hello. Servo SG90 is controlled by M3 code but angle was not 90º of action. it went to end of limit servo sg90. M5 code didnt work. servo couldnt turned manually when code M3 was active. Servo could turned by hand when M5 code active. What is the problem? can someone help me?
Answer 3 years ago
Same problem. Too bad...
Answer 4 years ago
same problem. Anyone got an answer? M3 and M4 moves same direction to max, but nothing moves it the other way
Answer 5 years ago
Hi! I have the same problem. Did you find the solution. I use programm GRBL Controller and I added the command M3 S200 the servo turned. Then I entered M5 and servo didn't move ((( I enter M3 S10 and I hear the sound of the motor but it doesn't move.
Does anybody knows what heppens?
Question 3 years ago
HELLO ONLY this istruction is??
I see in your video that you have a different file for the arduino that I downloaded
Question 4 years ago
encuentro esta solucion
Gracias por este informe. Ha pasado un tiempo desde que miré esta extensión y parece que el buen equipo de Inkscape ha roto la función unittouu nuevamente. La última ruptura fue la versión 0.91.
La buena noticia es que esto no debería ser difícil de arreglar, la mala noticia es que no tengo tiempo en absoluto esta semana para arreglarlo y realizar pruebas.
Si desea probar y parchear usted mismo, de acuerdo con esta página, todo lo que debe hacer es eliminar el "inkex". Prefijo cada vez que se llama unittouu:
pero no se como cambiar las lineas
Question 4 years ago
hola buen dia hace tiempo que lo e intentado pero aun
no e podido resolver el error de inkscape Traceback (most recent call last):
File "servo.py", line 3172, in <module>
e.affect()
File "inkex.py", line 283, in affect
self.effect()
File "servo.py", line 3156, in effect
self.orientation( self.layers[min(0,len(self.layers)-1)] )
File "servo.py", line 3085, in orientation
doc_height = inkex.unittouu(self.document.getroot().get('height'))
AttributeError: 'module' object has no attribute 'unittouu'
quisiera que me pudiaran ayudar gracias
4 years ago
thank you very much
Question 4 years ago
Can I use this program to engrave on metal sheets by replacing the blue pen with this type of pen. Will it cause too much vibration or load the Z Axis stepper motor heavily?
4 years ago
I have a 180x200 mm table. What to do to draw the whole table?
4 years ago
You forgot Something, You don't mention how to calibrate the Vref on the A4988 Drivers, in order to set the appropriate current that the DVD Servomotors need.
Remember, If you set a lower value than the motors needs, you will loose strength, otherwise if you set a higher value than motors needs, you will overheat the motors, or burn the motors.
Of Course, How many Current this DVD servomotors needs?
NEMA 17 Stepmotors uses 1.7Amps.
Regards
Question 4 years ago
Buen día gracias por compartir tu proyecto . Me podrás ayudar mi moto es un 28byj-48 pero alconectar solo gira hacia un lado a si de movimiento a la derecha o a la izquierda gira en una solo.direccion
5 years ago
Hi, thanks for the instructable. One simple question: What's the Vref at the driver for these type of motors, considering that my driver has an R100 resistor? My calculation is 0.24 8*0.1 = 0.192 Volt, but I want to be sure. Thanks!!