What is a layer-shift, physically?
What actually happens that makes a layer shift? I'm not asking for the definition of a layer shift, or the cause of a layer shift. I'm asking what happens that results in a layer shift? Is it mechanical, like the belt skipping a gear? Is it electromechanical, like a stepper motor miscounting a rotation? Is it software, like some homing variable changing? Is it physical, like gcode causing a jerk that causes inertia on the print head to move more than it should?
In trying to diagnose layer shifts, it would be good to understand what's happening while troubleshooting the cause. If there are multiple ways layer shifts can occur, it would help to know the different types and their specific effects.
Layer shifts have a lot of causes, and unfortunately definition even varies a bit.
This is a typical single axis layer shift. The cause was an improperly installed belt drive gear. "Almost right" isn't good enough.
This layer shift - cause unknown - I suspect is due to an oddity in the firmware and how it calculates Linearity Correction for the Y -Axis.
These layer shifts (not really shifts) are due to slice and printer directionality, and an unexpected print speed change.
This shifting is due to print speed:
This is a layer going from 15% infill to solid infill that the first solid layer is curling and often leads to nozzle/part collision crashes and shifts caused by a stalled motor.
So -- is this close to what your were looking for?
most layer shifts are either a belt slipping a tooth ( or a loose drive pulley) or a x/y motor losing one or more steps.
one "feature" of most common stepper driven positioning systems is that they depend on the controller keeping track of the stepper position with no feedback other than the home switch system. if the controller drives the motor but the axis is jammed the controller will assume the the motor moved as commanded. On fancier drive systems there are either rotary encoders on the motor that that provide position feedback to the controller or an independent linear encoder that provides position information. so from cheap to very expensive that options are plain steppers , steppers/servos with rotary position feedback and linear encoders with servo motors
Thanks, tim-m30. Super helpful to see the different types of shifts for known causes.
Thanks, david-a66. I wonder about the idea that a shift is caused by a belt skip. Since the belt moves with the bed, a belt skip should result in a shift equal in size to a belt's tooth distance. Instead, the shifts I've seen are much smaller. You also said, "if the controller drives the motor but the axis is jammed the controller will assume the the motor moved as commanded," This sounds right to me. But the shifts are much larger than the step resolution, so I guess the controller misses multiple steps.
Let's say full motor steps are about 0.16 mm (a guess). Microsteps are 1/256th that. When a motor stalls at speed, many steps are missed. How many is variable to the degree of the blockage, friction, or whatever is causing the stall. A cat bumping the platter as it is moving, for example (been there - great cat toy). The electronics send out 5000 steps, the motor stalls for 48 of them... then going the other direction the electronics send 7400 steps, the motor hits the same snag and stalls for only 11.
micro steps are used for positioning but have no effect on skips. stepper motors work by varying the voltage on 2 coils . by cyclically varying the voltages between the coils the motor moves. stepper motors are spec'ed by how many changes it takes to make 1 revolution. the motors we normally use make 1 revolution in 200 steps (1.8 deg. /step). microstepping changes a "digital" stepper into an analog one by using varying voltages instead of just full power ones, but for each microstep voltage arrangement there are still only 200 positions the motor will go to . this means when steps are skipped the motor will move the difference in microstep angles + some number of 1.8 deg steps
Except that when you stall in a microstep operation, the motor may snap forward or backwards to the closest quadrature current stable position. They won't always fail forward. But then, that's also true of full steps.