Slow Gradual Drifting of X Axis

Machine: Chinese Laser

Board: Cohesion3D LaserBoard

Firmware: Smoothie

Problem/ Question: Slow Gradual Drifting of X Axis. Have already slowed down speeds and accelerations as instructed on other posts, as well as upgraded hardware and installed external 4A drivers.
Is there another setting on the config.txt file that can be adjusted to address this? the drift is exponential.
Thanks in advance.

Can you please confirm what machine you have, and show how you have everything wired up, what settings you have changed, and what the drifted output looks like?

Hello, thank you for your reply.

Machine Webpage Link:


Config File:
config_2.txt (28.4 KB)

Screenshots (numbers represent speed mm/sec):

Really appreciate your expertise in getting this resolved.

Forgot to mention that last 2 images on right were optimized to reduce number of points.

Thank You

Additional example of X Axis shifting. See corners:

Thanks again for any direction in resolving this issue.

Which external drivers did you use? I’ve had some that also skip steps and did what you describe above. They’re definitely not all equal!

Make doubly sure that your motor drivers are set for the proper current as required by your steppers. The acceleration factor here will depend on this being correct (if it’s missing steps, it’s likely this, or a combination of the two factors - current being inadequate or too high, and/or acceleration being too high). I know you said you slowed things down and looked at acceleration, but it probably needs additional debugging in this area.

This is valid, I think he’s using the drivers from us but I’d like to be sure.

It is worth looking into whether steps are skipping, start by verifying what your motor model is, how much current it wants, and what you have configured on the DIP switches on the external drivers. Please provide that information here.

If the machine came an M2Nano style board and no external drivers (assuming you installed the drivers yourself), you should just be able to plug the X and Y motors into the LaserBoard itself (each motor output has a screw terminal to make this easy for you). For this application just increase the alpha and beta motor currents up to 1.2 amps and have at it. This is pretty much a “let’s cut to the chase and see if the external drivers are causing the issue or not.”

This is a difficult issue to track down and I have a very limited data set to work from, so will appreciate all the info you can provide.

Thank you both for your input. I will bypass the external stepper drivers and report back with results.

Thanks again.

Success! Bypassing the external drivers worked! These Amazon purchased stepper drivers failed me.
I’ve already placed an order for Cohesion selected and approved replacement drivers.
Thank you so much for your support. Great products and support.

1 Like

Now I’m REALLY confused. So bypassing the external driver achieved good results, so I ordered new stepper drivers from Cohesion to replace the Amazon ones. Just installed the new drivers and I’m once again having issues with the X Axis.
Of interest, when wiring up stepper motor to Ext Driver the white and yellow are reversed compared to when wiring directly to LaserBoard and wiring of Y axis motor, is this an indication of anything?

The drivers on the Cohesion3d board itself are actually quite good - if they meet the current requirements of your motors, why bother with outboard drivers at all? They’re far less flexible in terms of precise current settings. Which brings me to my next point: if you’re losing steps the dip switches selecting the current are probably set wrong for your particular motors. Can you get a close-up of the motor (including the model number) and the dip switches position relative to their labeling? Some of these drivers have a sneaky “half-current” setting which can be confusing.

About the best outboard stepper drivers I’ve found (most accurate, most precise) are the Leadshine DM442 for NEMA17-sized motors (like the ones you’d find in a K40 and medium-sized chinese lasers). An odd problem I had with scanning (and only scanning) was solved simply from moving from analog drivers to these.

As far as your question regarding the wire ordering - no, that shouldn’t make much a difference at all. If you find your motor is running backwards (e.g. moving clockwise when commanded counter-clockwise), then switch those two wires and it’ll start behaving.

Hello Loather, thank you for your reply. At this point I do agree that I may be unnecessarily complicating my setup, but have invested on these drivers and would like to use them (if possible). My intent has been to gradually upgrade motors and gantry system.
My X-axis motor link:
I’ve tried running it at 1.0A, 1.5A and 2.0A with same outcome.

Is there anything on the config.txt that may need to be adjusted? But interestingly these settings worked fine when using the LaserPCB drivers.

config.txt (28.4 KB)

Exact same test file, using exact same speed settings:

Current should be 2.0A for that motor. If you’re using the C3D drivers, S4, S5, S6 should be ON, OFF, OFF. The microstep setting might need to change a little though - we can determine this through trial and error. The higher the microstep setting, the more difficult it is for the stepper driver to remain accurate. Typically when using the smoother 0.9° motors, cut the microstep rate in half from what you would use for a 1.8° motor and tweak the (axis)_steps_per_mm accordingly. IIRC these are analog drivers, though it’s been a long time since I’ve opened mine up (I own probably 20 different step drivers of various make/model). However (read on) - we can probably fix this with acceleration.

Is that an all-vector drawing or are some of the areas raster scanned? Either way, it looks like what it does is consistent regardless of current. This looks to me like an acceleration problem. Some drivers struggle at starting a motor, especially for fast-move commands between cuts. Does it make a slight crunching, banging, or grinding sound when it fast-moves and loses position? Try setting the global ‘acceleration’ value to 1500 and the acceleration for the problem axis to 1000. That, coupled with the proper motor current, should knock some sense into it.

Good luck.

Also, from what power supply are you feeding your external drivers? They should be fed 24V from the brick that came with the C3D board (or another off-board 24-36V supply), not the 24V lines from the LPSU (those are often super weak).

@loather’s suggestions will be good to rule those things out, please give them a shot. The things I am wondering about are more advanced and, uh, complicated to explain outside of my brain right now. Will try to explain once we see the results of ruling some things out.

A quick correction though:

Separate 24v or higher psu with enough amperage to power all the motors/ drivers on it, the C3D brick just plugs into the board and only that.

Hello All,
Thanks again for your input on this issue.

I do have a separate power supply powering the external drivers:

I have tried different micro step settings in the past (without tweaking (axis)_steps_per_mm accordingly) which obviously had not worked. But my understanding is that it should be set according to motor degrees, which has always been 0.9° on this unit.

I’ve reduced the acceleration all the way down to 500mm/sec on default seek rate & alpha acceleration, while running my test file at 10mm/sec with exact same outcome. Im confident that this is not a speed or acceleration issue.

Is it possible that the X-axis pre-driver output on the Laserboard is the issue? It’s worth noting that Ive had no issues with the Y-Axis and Rotary unit which are controlled by external drivers.

Thanks again for your time and input.

I have also swapped around cabling to eliminate the possibly of bad wiring and shielded cabling to eliminate the possibility of RF interference.

Hi Ray,
Have you given any more though to this issue?
Would it be possible to send the LaserBoard back to you guys for testing?

Thanks in advance.