Motors stutter at low speed.

Since this is my first time I reckon I'm doing something wrong.
I'm using two Y motors, and one X motor.
I cloned the Y as like diagram below:

Image diagram

I’m using Nema 17 motors, when I go higher than 0.7A it will stall at high speed on the Y motors.
The X motor can handle a bit more, but will stall at high speeds at a 1.7A current.
I'm now giving all motors 0.5A and it can go fast and slow without stalling.

Throughout all tests and settings 1 problem persists, a stutter / jumping in the motors at low speeds.
It seems to be my only problem, but it's one that prevents me from having a working machine.
Here I'm drawing a circle, when it comes close to a stop it starts to jump and stutter.

Video

This is true for both X and Y, but especially important on the Y as they should end in the same way..
I'm using an Arduino Uno and TB6600 drivers.
Anyone here know what might be wrong here ?

myosis:
I’m using Nema 17 motors, when I go higher than 0.7A it will stall at high speed on the Y motors.
The X motor can handle a bit more, but will stall at high speeds at a 1.7A current.
I'm now giving all motors 0.5A and it can go fast and slow without stalling.

There is something very strange going on. Assuming you are not exceeding the current limit of the motor or the driver more current should mean better performance. Are you using acceleration?

Please post a link to the datasheet for your motors

Please post your program.

In the meantime try each of the motors separately with this Simple Stepper Code

...R
Stepper Motor Basics

Thank you for taking the time to help.
The motor spec sheet is as follows:

Model : 17HS4401
Phase : 2
Step Angle : 1.8
Voltage : 3.06 V DC
Rating : 1.7 A
Moment : 420 mN.m Min
Resistance : 1.8 Ohm + - 10%
Inductance : 3.4 mH
Weight : 290 g

Program:
Cncjs, or Openbuilds.

If I set the stepper drivers to the “recommended” settings for the motors:
Current of 1.5A peak 1.7A the stuttering at low speeds is way, way worse.

I am not using any acceleration as far as I know.
I will perform the test of your stepper program later, but I have a feeling the motors themselves are alright.

myosis:
I am not using any acceleration as far as I know.
I will perform the test of your stepper program later, but I have a feeling the motors themselves are alright.

If my simple program works it means that there is something wrong in your program - but you have not posted it.

...R

I flashed the Arduino and reinstalled GRBL.
My driver is set to 1 Mirco step en 200 pulse, 1.5A Peak 1.7A.

For this test I'm using a smaller power supply, 12V 6A.

In your program.
They all make half a rotation and then back, steps are matching the light.

(Using Universal Gcode, clean instal)
Each Individual motor’s stalls at a feed rate of 16 or more, and stutters with a rate of 1 or less.
The stalling goes away with a power supply of 24v 16a, but the stuttering doesn't..

myosis:
I flashed the Arduino and reinstalled GRBL.

That is the first mention of GRBL. Maybe you have not configured GRBL correctly?

Please post a short piece of GCode that causes the problem you are experiencing
[/quote]

When using GRBL im using stock settings.

Ah sorry I just figured out how to properly use your program. (I'm new to this)
When using your program the motor also stutters when millisbetweenSteps is set to 11 and lower, the worse being around 8. It appears to stop stuttering around 6-5.

Does this mean the motor is not good ?
They all seem to be exactly the same..

I’m new at this too, so I may well be off, but have you tried adjusting microsteps?

I’ve noticed that at certain settings, the motor power, smoothness, torque and ability to get past a stutter can all be affected by speed fast or slow… Microstepping seems to help with this

Thank you for your answer, I very much appreciate it.
The stuttering does go away when I set my stepper driver to Mirostep 2/A, pulse 400, but at the cost of a great speed reduction unfortunately.

To keep higher speeds (Mirco step 1), and no stuttering on low speeds, would a beefier motor be the answer, or is that not the problem?

For what it's worth, I was going to run 3 motors (same spec as yours), each with their own nano, as this system for three separate devices, however, I decided a central controller was a better approach, after discovering this 3 axis CNC Shield in the photo, although I was pulling my hair out until I discovered it has a bad circuit on the X axis DIR pin! I spent three days messing with code while it continued to turn pause turn in the same direction until I tried using the Y axis slot, which works great last night AAARGH! I've asked for a replacement which shouldn't be a problem, but they aren't that expensive.

I'm only working with one motor right now, the code will be indentical for all 3, although speed may be adjusted.

At present this motor is powered with 12.2v@2A, 16 microsteps (This is the state the board arrives, loaded with jumpers), and spins up fast and very slow (my setup requires is 3rpm, possibly slower in future), super smooth, quiet and plenty of torque tho I can stop it with my fingers if I press hard. Although there is plenty or torque for my requirements, I will mess with the jumpers below the motor drivers which set the microsteps although, when I was on X Axis, I was on 1 microstep, and it wasn't nearly as good...

I've moved on to attempting a limit switch, which is the two red wires in the foregound.

myosis:
Ah sorry I just figured out how to properly use your program. (I'm new to this)
When using your program the motor also stutters when millisbetweenSteps is set to 11 and lower, the worse being around 8. It appears to stop stuttering around 6-5.

If the motor works at slower speeds with millisBetweenSteps greater than 11 and also works at fatser speeds with values of 6 and 5 yet it misbehaves in between those speeds then you are experiencing resonances within the motor - a very common problem with stepper motors.

Putting a load on the motor can shift the resonant frequency to a range that does not matter. Using microstepping can also combat it.

Note, also, that my program does not use acceleration and using acceleration may help. However acceleration is standard in GRBL but you may need to tweek the settings.

If you are curious enough to want to explore the effect of acceleration you could try this Simple acceleration code. But be aware that it does not do acceleration in the same way that GRBL does.

...R