arkypita / LaserGRBL

Laser optimized GUI for GRBL
http://lasergrbl.com
Other
1.23k stars 487 forks source link

Cant get steppers to move #732

Closed ockray83 closed 4 years ago

ockray83 commented 5 years ago

No matter what I try my steppers will only twitch slightly with any jog command without turning. So far I have tried: Three different boards: v3 w/UNO, v4 w/nano, eleksmana v5.2 4 different nema 17 steppers from different suppliers Multiple cables Multiple usb cables Multiple 12v 5a power supplies Multiple a4988 drivers Every conceivable setting combination in lasergrbl I can think of. Every combination of motor pinout possible

The driver current has been set, there is power on vmot, the motor coils have been identified, I've tried versions of grbl from 0.8 to 1.1f with no success. I have no homing sequence set up, lasergrbl connects to my boards fine and the screen animates as though it is moving but all I get is holding torque and a twitch during a direction change.

I've been beating my head against this wall for three days now and I cant think of anything else to try.

arkypita commented 5 years ago

Simplify your test up to the elementary unit.

Run tests on a single engine, with a single driver attached. Test the engine mechanically removed from the engraver.

Use cnc shield v3. No microstepping (all jumper removed).

If you want you can upload this sketch to your UNO, so you remove any grbl/lasergrbl/setting issue from the test system. This sketch will move Y motor by 100 step. Change Y with X in "loop" if you want to test X motor.

#define EN        8

//Direction pin
#define X_DIR     5
#define Y_DIR     6
#define Z_DIR     7

//Step pin
#define X_STP     2
#define Y_STP     3
#define Z_STP     4

int steps = 100; // Step to execute

void setup()
{
    // Pin mode setup
    pinMode(X_DIR, OUTPUT); pinMode(X_STP, OUTPUT);
    pinMode(Y_DIR, OUTPUT); pinMode(Y_STP, OUTPUT);
    pinMode(Z_DIR, OUTPUT); pinMode(Z_STP, OUTPUT);
    pinMode(EN, OUTPUT);
    digitalWrite(EN, LOW);
}

void loop() 
{
    for (int i = 0; i < steps; i++) 
    {
        digitalWrite(Y_DIR, HIGH);
        digitalWrite(Y_STP, HIGH);
        delay(1);
        digitalWrite(Y_STP, LOW);
        delay(1);
    }
    delay (2000);
}

Be aware that a4988 drivers are very delicate and burn easily when the motor is connected/disconnected while the system is powered. They risk burning even if the cable/terminal that connects the motor makes false contacts.

ockray83 commented 4 years ago

Thank you, I will give this a try when I get home tonight.

Interestingly enough I did have the seller of the eleksmana board reach out to me to say he had gotten a bad batch of boards and that he would be offering an exchange or refund.