Help! Motor always over-stepping even with low accel and speed

I’m in the middle of building my CNC router. My electronics are just sitting on a desk here and I’ve been trying to get this to work for a few days. Even with no added resistance my motors seems to be constantly gaining steps. Around 2-5 degrees per rotation (4mm jog). The longer I rotate in one direction the more steps it goes out of whack even without stopping in between. There is a ticking sound coming from the motors 4 or 5 times a second. like driving on gravel. Guessing this is skipping.

It’s not like I’m accelerating or decelerating fast. Set to 30.

Speed set to 500mm/minute max, and no load on the motor really. I’ve tried stopping it by hand but it creates the same amount of missteps.

I have the “Enable” pins not hooked up so it does go into low power holding mode when stopping.

It’s all cheap ebay stuff from China.

TB6600 - I’ve found 1 link claiming that version of these have an H-bridge which some are saying is not a good way to run a stepper. And I also read GRBL does not support H-bridge drivers, yet I see dozens of people running these on youtube.

Nema 23 - 76mm 269oz

Arduino Mega2560 - I’m using the Mega2560 specific GRBL software with GRBL 1.1f, and Gcode Sender 1.9 (I also tried 2.0 nightly because I heard 1.1f compatible with that)

36v PSU

I’ve tried almost everything I can think of:

-Changing step size does nothing, and neither does the increasing AMP rating
-It gets worse with bigger steps, such as full steps.
-Added shielded wire to the 4 motor wires.
-I’ve tried lowering the baud rate, although the motor won’t respond no more, even though I can connect to the Arduino Mega with it lowered and I get the connection confirmation message.
-Tried switching out the motor and driver for a different one of the same kinds (have 3 total).
-I’ve tried using a RAMPS shield, but could only get the motor to move in both directions when jogging. Went in same direction for + and -.
…other things I can’t recall.

I’m not running any design. I’m simply jogging the motor to see if it responds accordingly.

Are my drivers just crap?


Fixed. Chinese TB6600 are total trash. Upgraded to $50 DQ542MA drivers and all my problems are solved. The TB6600 provides enough current (based on comparing them to the new ones at similar current rating they seem almost equally powerful), but the processor inside is too slow. Or maybe the electronics inside cause interference with something. I lowered the current on the new 542 drivers to 1.5a (regular set to around 2.7a) just to see what would happen and how they would compare, and they actually work BETTER than the Chinese 4 amp rated trash even when handicapped. They are weaker and really easy to stop when gimped like this, but don’t skip or add steps at any current rating. I can’t even sell the old ones, because they are so garbage I would feel bad for the buyer. New ones are also almost cool to the touch even at 3 amp settings compared to the TB6600 getting so hot they shut themselves down after 5 minutes.

If I had to do it all again I might actually get the 2h drivers from RobotShop because I paid $200 Canadian for drivers (3 of them) and shipping alone, but at least I know they were worth it.

Not necessarily ready for prime time. The 2560 version of grbl is a side project and is still in development. Marginally supported.

Are you using this term for the actual chip, or the generic “TB6600” type driver? A picture might help.


Chinese knock off tb6600. Probably nothing like that in there. I removed the plastic cover.

Not connecting the ENA+ and ENA- has the same effect as setting $1=255. I have hooked them up as well and played with Step Pulse and Step Idle Delay, but it does not seem to solve my problem.

Now I’m not sure if I should get myself an Arduino Uno, new drivers, or both.

Good news. It doesn’t use a TB6600 chip. That chip has some known problems. Most of the clones are now using a better driver chip.

If it were my decision I would get an Arduino UNO R3. The versions of grbl that run on the Arduino UNO are more thoroughly tested than the version for the 2560.

Have you tried calibrating your x,y, and z axis grbl settings?

Strange noises from the motors indicate a bad setting of some kind over/under current limit, speed/acceleration issues, thermal cutout, stalling, etc.

steps per mm (at 1/4 step setting that’s 800 steps per rotation. 1 rotation will lead to 4mm movement on each axes once connected)
max speed
max travels

It does not matter if I have acceleration to 10 or to 400. It’s the same result. always just oversteps by a tiny amount every time. The only thing I’m not certain about is the step pulse setting of $0=10. Do you have any idea how to measure current on these steppers? can i just splice my multi-meter in between one of the 4 leads? What result should I be expecting? Driver is set to 2.8 amp but I’m not sure if that’s per phase or what.

Set $1=255

Without an oscilloscope you can’t measure the current as it is “chopped” on/off by the current limit.

That is per phase. Check your stepper motors. 2.8 amps per phase is typical for that size motor, but there are variations.

Not sure about this. I would hook them up. Most likely these pinouts are hooked to an opto-coupler which uses an input diode to enable the motors. No current through the diode, not enabled.

It was the drivers after all. Cheap Chinese electronics are trash. Who knew. Upgraded to DQ542MA drivers (bought locally) for $50 a piece and all my troubles are gone.