Arduino Uno connects to universal Gcode sender or Processing but doesn't work

Hi there. I’ve been making a tiny CNC machine based on different tutorials for arduino. I have Arduino Uno original Italian board. with motor shield, 2 steppers (for DVD drive) and a servo and a DC adapter (12V, 800 mA). When I use Arduino IDE software, it works fine, 2 step motors work with adafruit motorshield library and move fast. Then I upload GRBL library to the board. I noticed it can communicate with the board just with 115200 (not 9600) serial. And then I installed universal Gcode sender or Processing software. I set the serial to 115200 and it connects to the board (the message Grbl 0.9j [’$’ for Help] appears).

But it can’t move the stepper motors when I upload gcode file or use the x, y buttons manually.

  • I noticed a small sound comes from the steppers when I press x or y buttons manually and the led on the board blinks by pressing the buttons, but the steppers don’t move.
  • I don’t think the voltage and current is the problem because Arduino IDE can move the steppers fast. And I used another adaptor with higher current output, too.

I would appreciate if you help me with this? I think everything seems OK but the steppers don’t work.

Images from Original Post so we don’t have to download them. See this Image Guide





The first image is an attractive picture of what you have achieved. Looks good.

The other two pictures are useless. Post text as text, not as a picture.

  • Have you been able to get the motors to move with your own program without using GRBL?
  • Have you been able to get the motors to move at all with GRBL?
  • Have you tried sending a GCode command from the Arduino Serial Monitor?

My wild guess is that something is not connected the way that GRBL thinks it is connected.


I just can move the motors by Adafruit motorshield library and they move fast!
Then I uploaded different versions of GRBL (even the latest 1.1) to arduino. It seems it is connected on 115200 baud rate. I use arduino serial monitor and the commands below in new line:

G00 X100 Y100
G00 X50
G00 Y200
G00 X800

After pressing enter, the message “OK” appears on the screen (after adding each command) but the motors don’t move (exactly the same as universal Gcode sender or Processing). when I press $ the settings are as below:

$0=250.000 (x, step/mm)
$1=250.000 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=250.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=192 (step port invert mask, int:11000000)
$7=25 (step idle delay, msec)
$8=10.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

above is the setting for GRBL with baud rate 9600 and below is the setting for GRBL 1.1 with baud rate 115200:


I think sth is wrong with the settings… I should add that by clicking the controllers in processing or universal gcode sender, the led on the board blinks.

I think sth is wrong with the settings...

That may be a reasonable guess but how do you expect anyone here to know what it is?

You need to ask your question of the people who develop GRBL or perhaps on some CNC Forum where people are familiar with the settings.

GRBL is a very complex ready-made program - like a commercial program, but free. This forum is for helping people write their own Arduino programs.


The problem is solved.
It seems dafruit motorshield is not a good choice for grbl becauss of H-bridge connection and...
So I used Cnc shield V 3.0 and the problem is solved.
P.S: you can use 3.5 axel for your cnc which is not applicable by adafruit.