Hi all I am new to this and just building my first CNC machine, I have it all built and ready to go however nothing works as advertised. The board is Arduino Uno powered from 12v PSU with a CNC Engraving Shield on top, 3 axis motors are connected with drivers plugged into appropriate slots, 3 endstops connected to correct pins. I have flashed GRBL firmware via Arduino IDE and Universal Gcode Sender is installed. GRBL is successfully uploaded as I can access the settings easily, Universal Gcode sender is functioning with no alarms showing, if I jog an axis using the arrows the coordinate display shows movement on that axis but nothing is happening on the CNC. Its as if there is no power getting to the motors, I have 3 jumpers under each of the drivers but no others. Am I missing something here; is there something else I should have or other settings needed, do I have a dodgy shield? All advise appreciated as I have already lost weeks of time trying to sort this out. Thanks ToolUser
Check to make sure that you have all the power you need. For me, this happens all the time when I have power to my Uno controller but no power to the actual driver. Look to see if there is a separate power plug input to the driver. The other thing to check is to make sure that wiring is hooked up. The easy way to test this is to: (a) Turn everything off. (b) Each stepper has four wires. These are separated into two pairs. One pair wires up next to each other on one side of the screw terminal. The other pair is wired up on the other side. So your screw terminal looks like this: Screw <-> A1 Screw <-> A2 Screw <-> B1 Screw <-> B2 Where 'A' and 'B' are the pairs. (c) To find out which wires need to be paired next to each other, unplug all the wires for that stepper and make sure none are touching one another. (d) Turn the stepper rod. It will go fairly smoothly with just a little resistance. (e) Now touch two of the wires to each other and leave the other wires free. Try to turn the stepper rod. Is it harder to turn? If yes, then these wires are a pair. (f) You now have two pairs. Wire up one Pair (A) next to each other and the other pair (B) next to each other. (g) Turn on your driver power and your arduino. Try to jog that axis. If it goes in the wrong direction, then you need to swap sides. Turn off the power again. The A wires still go together, but put them on the other two terminals. Same with the B wires. Hope this helps. -D
Like Jonathan said, check for a power input on your shield. I do not know what shield you have, but when I used an Arduino with a shield, I powered the Arduino from the computer's USB port, and the shield that powered the motors had its own power input. In my case I was using a 36 V power supply wired to the shield. As soon as I turned the power supply on, I could hear the motors energize.
Thanks guys for the help, it seems that not all the libraries were installed. Problem with being a newby is that you just don't know what you don't know! New Problem is I can't compile the file in Arduino without errors, I have tried versions 1.6.9 and 1.1.2 and get the same gibberish; is there a standard Arduino/GRBL file out there that will compile and upload without problems? Thanks all
yes of course there is.... follwo the 'how to compile it' detailed instructions at Compiling Grbl · grbl/grbl Wiki · GitHub some notes: make sure you copy the correct grbl folder into your Sketchbook/libraries folder. now open arduino and open the uploader File|Examples|grbl|grbluploader make sure you select the Arduino Uno under 'boards' now upload. now, note that what you just installed on the Arduino is a standard version that does not have limit or home switches enabled. thus, it will not home, nor error on hitting a limit switch. make sure everything moves correctly before enabling home switches! what is 'moves correctly'? this means that the TOOL must move in the correct directions in all 3 axes if you stand facing an OX type machine with gantry left to right. X positive moves right Y positive moves away from you Z positive moves away from the table. The easiest way to change directions is to change the motor wires. Swap any pair to change direction. So you have a pair on A and a pair on B, say red-green and yellow-blue. swap to green-red and the motor will turn the other way. (yes, you can do it all in software settings in GRBL, but this makes setting up homing a lot harder)
I am embarrassed to admit that, as a newby, I had the coordinate system right, but I kept making the bone head mistake of using negative coordinates when I shouldn't have. Example: I would jog my Y-axis 300 mm in the positive direction then, wanting to return it to the 0,0 point, I entered G0 Y-300 because 300-300=0, right. Don't be like me.
oh ... that does work...... IF the machine is in relative mode G91 ; set relative mode G0 Y300 ; go somewhere 300mm from where we are G0 Y-300 ; back where we came from G90 ; back to absolute mode This is used for all the jog commands in GRBL GUI's (-: (for now, V1.1 will change that) Which is why you must have a G90 at the beginning of every Gcode file, most of the G codes are 'modal' = they stay set, even through power off/on (on some controllers) so every file must set what it wants. knowledge is power, RTFM