Motors can only once in one direction before returning

Home Forums gShield grblShield Support Motors can only once in one direction before returning

Tagged: 

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #1699
    CNCmaker
    Member

    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!

    #1700
    CNCmaker
    Member

    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

    #1701
    jmnoeth
    Member

    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

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.