Welcome! Log In Create A New Profile

Advanced

Marlin introduces backlash and skipped steps?

Posted by lukie80 
Marlin introduces backlash and skipped steps?
September 30, 2016 07:22PM
There is a possibility that Marlin introduces backlash and skipped steps.

Because my printed parts suffer from backlash (oval circles) and ripples (skipped steps which catch up later) I investigated the movement of my printer. I attached a long pen to the axis of my X-motor to be able to clearly see all microsteps and removed the belt to have no load.
Then I ran test-steps.gcode which rotates the motor by one microstep (0.0125mm @ 80steps/mm), waits a second and moves a step again 32 times total. Then the direction reverses. The result can be seen in the figure . The motor does not rotate for each 5 steps and catches up at the 6th step. The same occurs in backward direction and a backlash of 5 steps (0.0625mm).
Then I ran another backlash test test-hyst.gcode which rotates the motor by 5 steps back and forth a few times. This time I did not use single step commands but a single move command for these 5 steps. No movement of the motor can be observed.

I tried different stepper drivers (a4988, drv8825, tmc2100), different currents and two versions of Marlin (RC4 RC7). All exhibited the two problems.

Finally I hooked up the motor to an isolated driver on a breadboard. The driver was controlled by a Arduino UNO and a simple self written custom program: A sequence of LOW-HIGH signals for the STEP pin and a LOW or HIGH for the DIR pin allowed to reproduce the two gcode files. Now NO skipped steps and NO backlash was observed for all three drivers.

The only explanation is, that either my Chinese GT2560 board or Marlin cause these two problems. Is Marlin maybe limited in resolution? Are these internal rounding errors? Or am I doing a mistake somewhere?

Has anybody experienced this before? Could somebody try the two files? You maybe have to change the numeric values if your steps/mm is not 80.

Edited 1 time(s). Last edit at 09/30/2016 07:23PM by lukie80.
Re: Marlin introduces backlash and skipped steps?
September 30, 2016 09:27PM
"The motor does not rotate for each 5 steps and catches up at the 6th step"

welcome to microstepping, this is how it really works. (though the numbers look odd)

People presume that since they have micro stepping that they can position the stepper to any position of the (presuming 1/16th micro stepping and a 1.8 degree stepper) 3200 positions. This is not correct. The stepper is only stable for full steps, half steps and if your lucky 1/8th steps, beyond the limit of your stepper it just doesn’t move and catches up on the next value it can actually do.

If your needing real 3200 position steppers you need a mechanical gearing system
Re: Marlin introduces backlash and skipped steps?
September 30, 2016 11:15PM
and if your lucky 1/8th steps

Dust is correct! However... if you are moving at a somewhat steady speed, the micro stepping really does help to keep the speed constant. It just sucks when you are trying to stop (or position) on a particular micro-step.
Re: Marlin introduces backlash and skipped steps?
October 01, 2016 05:28AM
Thanks for your reply. The strange thing is: Steps are not skipped if I operate the drivers manually via the STP pin on the drivers. All the 16 microsteps work quite well: No steps are skipped, they are only not completely equally spaced.

I forgot to mention that steps are not skipped if Marlin gets an single(!) order to move from A to B. However hysteresis still remains. I tried Repetier firmware and it does not exhibit these two errors. However, it can be that these two errors do not occur in real printing conditions. Because print results from Repetier and Marlin seem to be equal.

An interesting side note: If periodic single step commands are given manually to a4988 or drv8825 the motor jumps from step to step. The TMC2100 moves smoothly from step to step, which beautifully demonstrates the 256 microstep interpolation.

Edited 1 time(s). Last edit at 10/01/2016 05:29AM by lukie80.
Re: Marlin introduces backlash and skipped steps?
October 04, 2016 03:58AM
There is no cat in a box. Any firmware can step and unstep a stepper driver. Or in other words, put 5V (most AVR will set 5V) to step and 0V to end this step. If the firmware doesn't do this, it makes something wrong and you will miss steps.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Marlin introduces backlash and skipped steps?
January 30, 2018 07:43AM
After digging into the code of Marlin as a beginner, I assume that Marlin just waits to fill the command buffer to be able to calculate the acceleration profiles. This requires at least 3 position commands in the buffer, but I assume Marlin accumulates 6 commands to reduce the risk of emptying the buffer.
Sorry, only registered users may post in this forum.

Click here to login