Motors can only once in one direction before returning

From the original Synthetos forum (2011–2025)

Started by CNCmaker on in grblShield Support. 2 replies, last activity Feb 8, 2012.

#

Hi all,

I have a weird problem.

Preliminaries:

1) I'm using Arduino Uno R3

2) I'm using grblshield V2

3) I'm using 3 ROB-10846 stepper motors from Sparkfun (400 steps/rev).

(http://www.sparkfun.com/products/10846)

4)I have been able to flash grbl to the arduino and I'm able to communicate with it through as serial port monitor. (I've been able to modify grbl settings such e.g $2)

5)All three motors move well when I send them a G00 command. (e.g. g00 x10). I've adjusted the motor current on all three motors.

The problem I'm having is:

I can only move each motor once in a particular direction. After that command I can not ask it to go again in the same direction. But it can move in the opposite direction.

WORKS: "g00 x10" then "g00 x-10"

DOES NOT WORK: "g00 x10" then "g00 x10"

What works also is. moving the motor. Resetting the board. Then moving the motor again.

WORKS: "g00 x10" then "reset board" then "g00 x10".

Given that the motors can move twice in the same direction if I restart in between I don't think the problem is mechanical.

I think it might be some weird software issue, but I cannot figure it out.

Help!

#

BTW the movement in forward and reverse direction does not have to be equal

E.g. "g00 x5" then "g00 x-5"

I have been using the arduino serial monitor for communications for the most part.

I've also tried the simplestreaming.py file with the following gcode file

G00

Z2

Y2

X2

Z2

X2

Y2

#

In the 'G0' (and G1) command, the distances are the distance from the origin (absolute position), not a distance from the current position (relative position). For instance, G0X10 tells the controller to move to a point that is 10 mm away (on the x axis) from the initial starting point. Entering another G0X10 again tells the controller to move to a point that it 10mm from the initial starting point. But, since the first G0X10 command already positioned the motor to that point, it doesn't move because it's already there.

So, if go enter the following streaming command, it will move the motor 10mm, then another 10mm (total of 20mm), then back to zero again:

G0 X10 X20 X0

This topic is from the original forum (February 2012). Your reply starts a new discussion linked to it.

Reply

Different problem? Ask a new question

Back to grblShield Support or latest activity.