Facing Puzzling Print Layer Shifts
Hello
While printing a complex model, I've been encountering an issue where the layers seem to shift unexpectedly, resulting in misaligned parts. I've checked my belts, tightened screws, and ensured proper slicer settings, yet the problem persists. Has anyone else experienced similar layer shift issues? What troubleshooting steps did you take to resolve them? Any insights or suggestions would be greatly appreciated.
While printing a complex model, I've been encountering an issue where the layers seem to shift unexpectedly, resulting in misaligned parts. I've checked my belts, tightened screws, and ensured proper slicer settings, yet the problem persists. Has anyone else experienced similar layer shift issues? What troubleshooting steps did you take to resolve them? Any insights or suggestions would be greatly appreciated.
Comments
The printer is a RepRapGuru I3 clone, from a kit, purchased, built and put in service in Summer 2018.
The layer shifts are always in the +Y direction.
It those cases where I've witnessed the shift, there seems to always be a very rapid "jitterbug" motion going on, as in inter-wall infill or while laying down a long narrow section of the model or while building overhang.
I typically run with retraction (2.5 mm; 40 mm/s) and Z-hop (0.5 mm) turned on.
- I put an 80 mm muffin fan on the bench, directed toward the stepper drivers during printing. There was no effect on the layer shifts.
If the endstop is at y min this is in 99% crosstalk to y endstop preventing a move to y min when endstop is high from crosstalk of parallel lying cables. With moves toward y endstop prevented by firmware you shift away from the endstop.
Possible solutions:
- twist y endstop cable or shield it or move it away from motor/heater cables.
- disable endstop testing during moves, but this requires recompilation of firmware.
I've braided the three conductors to the Y endstop and encased the Y motor cable in braided copper sheathing which is connected to ground at one end only. There's no change in the behavior of the printer. With the test piece I'm using it layer shifts in the + Y direction when executing small, rapid moves while building overhang.
The most puzzling thing is that nothing has changed on the printer from the time I built the kit. I've never changed anything in the firmware. The M503 data reports a firmware date in 2017. I can't understand why acceleration and jerk settings that worked without problems for five years suddenly are problematic.
I put an o'scope on the sense line of the Y endstop, setting it to trigger at 2V on a falling edge. The sense line is high (5V) unless the endstop switch is actuated. I had several layer shifts but the scope never triggered, meaning that the sense line of the end stop remained above 2V even when layer shifts occurred.
In a different mode, the scope trace for the Y endstop at 5V during printing shows some low level "grass" in both the + and - direction, however the largest deviation I saw from 5V was about 300 mV. The 2560 should not interpret that as a low indication. Watching the scope in that mode while layer shifts occurred indicated nothing any different than during steady state printing. I understand that a layer shift transient may have been too fast for me to have seen it but the other mode using event triggering should have caught even a quick transient.
I also tried rolling Repetier back to the next earlier version and that did not resolve the problem. It's back at version 2.3.2 now.
Continuing to grasp at straws here.
- - - - - - - - - - - - - - - - - - -
Printer Reset and M503 output:
RESET
14:40:13.293 : Printer reset detected - initializing
14:40:13.294 : start
14:40:13.294 : echo:Marlin 1.1.6
14:40:13.298 : echo: Last Updated: 2017-10-10 12:00 | Author: (RepRapGuru Prusa i3 V4,11/27/17)
14:40:13.298 : echo:Compiled: Aug 6 2018
14:40:13.301 : echo: Free Memory: 4023 PlannerBufferBytes: 1232
14:40:13.306 : echo:Hardcoded Default Settings Loaded
14:40:13.306 : echo: G21 ; Units in mm
14:40:13.306 : echo: M149 C ; Units in Celsius
14:40:13.306 : echo:Filament settings: Disabled
14:40:13.310 : echo: M200 D3.00
14:40:13.310 : echo: M200 D0
14:40:13.310 : echo:Steps per unit:
14:40:13.313 : echo: M92 X80.00 Y80.00 Z4000.00 E90.00
14:40:13.314 : echo:Maximum feedrates (units/s):
14:40:13.314 : echo: M203 X250.00 Y250.00 Z2.00 E22.00
14:40:13.314 : echo:Maximum Acceleration (units/s2):
14:40:13.318 : echo: M201 X1000 Y1000 Z5 E1000
14:40:13.322 : echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
14:40:13.322 : echo: M204 P500.00 R500.00 T750.00
14:40:13.326 : echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
14:40:13.330 : echo: M205 S0.00 T0.00 B20000 X20.00 Y20.00 Z0.40 E5.00
14:40:13.330 : echo:Home offset:
14:40:13.330 : echo: M206 X0.00 Y0.00 Z0.00
14:40:13.333 : echo:Material heatup parameters:
14:40:13.333 : echo: M145 S0 H180 B70 F255
14:40:13.333 : M145 S1 H225 B100 F255
14:40:13.333 : echo:PID settings:
14:40:13.333 : echo: M301 P22.20 I1.08 D114.00
14:40:15.882 : FIRMWARE_NAME:Marlin 1.1.6 (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:REPRAPGURU PRUSA i3 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
14:40:15.882 : Cap:EEPROM:0
14:40:15.882 : Cap:AUTOREPORT_TEMP:1
14:40:15.882 : Cap:PROGRESS:0
14:40:15.882 : Cap:PRINT_JOB:1
14:40:15.882 : Cap:AUTOLEVEL:0
14:40:15.882 : Cap:Z_PROBE:0
14:40:15.882 : Cap:LEVELING_DATA:0
14:40:15.882 : Cap:SOFTWARE_POWER:1
14:40:15.886 : Cap:TOGGLE_LIGHTS:0
14:40:15.886 : Cap:CASE_LIGHT_BRIGHTNESS:0
14:40:15.886 : Cap:EMERGENCY_PARSER:0
14:40:15.891 : X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0
14:40:15.894 : echo:DEBUG:INFO,ERRORS
14:40:15.894 : echo:Active Extruder: 0
14:40:15.898 : echo:DEBUG:INFO,ERRORS
14:40:15.902 : echo:Active Extruder: 0
14:40:20.392 : echo:SD init fail
M503
16:24:56.537 : echo: G21 ; Units in mm
16:24:56.537 : echo: M149 C ; Units in Celsius
16:24:56.537 : echo:Filament settings: Disabled
16:24:56.537 : echo: M200 D3.00
16:24:56.541 : echo: M200 D0
16:24:56.541 : echo:Steps per unit:
16:24:56.541 : echo: M92 X80.00 Y80.00 Z4000.00 E90.00
16:24:56.546 : echo:Maximum feedrates (units/s):
16:24:56.546 : echo: M203 X250.00 Y250.00 Z2.00 E22.00
16:24:56.550 : echo:Maximum Acceleration (units/s2):
16:24:56.550 : echo: M201 X1000 Y1000 Z5 E1000
16:24:56.554 : echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
16:24:56.554 : echo: M204 P500.00 R500.00 T750.00
16:24:56.558 : echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
16:24:56.562 : echo: M205 S0.00 T0.00 B20000 X20.00 Y20.00 Z0.40 E5.00
16:24:56.562 : echo:Home offset:
16:24:56.562 : echo: M206 X0.00 Y0.00 Z0.00
16:24:56.566 : echo:Material heatup parameters:
16:24:56.566 : echo: M145 S0 H180 B70 F255
16:24:56.566 : M145 S1 H225 B100 F255
16:24:56.566 : echo:PID settings:
16:24:56.570 : echo: M301 P22.20 I1.08 D114.00
What is newer is the thin infill pattern at steep curves with many tiny moves. Several newer slicers generate this now to better support perimeters for better quality. So if printer is configured near edge it can be that these new situation push him over it. Acceleration of 1000 is normally no issue. Jerk 20 is for most printer no isse, you can try reducing to 10 to see if it helps. And if possible check if endstop check is disabled during print to prevent cross talk issues just to be sure. Also check slicer settings - especially prusa slicer I know can add own accelerations so check what it sets these to or if that is disabled in slicing.
Does the endstop checking only apply to the Y stop, or are the other endstops checked during printing as well?
Have a new RAMPS board coming. There are capacitors on the board near the endstop connections. Not sure of their function but if they're for filtering and one is bad, I guess that could be the problem. Still grasping at straws.
Have exchanged motors between X and Y and have exchanged stepper driver boards between Y and the unused E1 location earlier with no improvement.
Increased acceleration to 250, half original settings. Layer shift.
Decreased acceleration to 200. Layer Shift.
Rebuild did increase mass of Y carriage; original acrylic Y support plate was replaced with 3 mm aluminum plate, incorporating an extra linear bearing (now 4 aluminum pillow blocks vs. 3 plastic pillow blocks formerly); heated bed replaced with a 3 mm aluminum backed heated bed; glass build plate replaced with a magnetic build plate.
Rebuild was done in stages and the Y shift problems began early in the process, before anything was done that would increase Y carriage mass.
Seems OK now at 150 but wouldn't work at 200 in last test. I just replaced the X and Y stepper drivers with new ones yesterday but haven't bumped acceleration up to test them yet.
Set the current limits on the new stepper drivers somewhat higher than recommended by printer manufacturer. X at about 0.67; Y at about 0.71 (0.50 recommended).
Both X and Y carriage movement is very free. Layer shifts occurred anywhere on bed, not necessarily near ends of travel.
Travel speed 65/80 mm/s.
Printer operation is good at an acceleration setting of 150, but don't understand what's changed from five years of acceptable performance at 500.
Will bump acceleration up to 200 for another test soon.
Need to build a harness to do that safely. Won't happen for a while.
Motors are original; all five motors are the same. Swapped X and Y motors while troubleshooting this. Layer shift remained on the Y axis after swapping the motors.
Setting is a voltage but a knowledgeable friend informs me that for these particular drivers the resistor is sized so that there's a 1:1 correlation between voltage and current, thus 0.71 volts equates to 0.71 amps.
Motors are NEMA 17. Motor tag says KS42STH40 - 1024A. Don't know what most of that signifies, other than that the "42" means 42 mm, thus a NEMA 17.
Printer is operating OK now with acceleration at 150 and new X and Y stepper drivers. Haven't tried bumping the acceleration up yet but plan to after a few badly needed prints are done.
I really appreciate you sticking with me through all this.