Y-axis layer shift FIX plus explanations
Posted: Thu Sep 17, 2020 12:38 am
What's up everyone,
I've been running a Geeetech A20M for about a year now, alongside a Robo3D R1+ I've had for over 5 years now.
The A20M is a great printer, I've had a lot of success with it. I quickly discovered how much I didn't like the buildtac type print bed surface that came with it, so I installed a nice thick borosilicate glass plate.
Everything was awesome! For months!
Then out of nowhere it seems, this goofy Y-axis layer shift thing starts ruining nearly every print. Its always intermittent, sometimes it shifts on layer two by like 50mm, most other times it'll wait until around layer 50 or 60 before starting to shift, and not by much. Just enough to ruin the print. It continues shifting through out if I don't stop the print.
First I read all the way through these forums. Lots of info, some good stuff like adjusting VREF. It was a bit nerve racking at first, but it quickly became comfy to do. But what do I adjust them to? All I could find were ranges of voltages.
I taped a tiny Phillips bit to the positive lead of a multimeter so I could get real time readings of the Extremely minute adjustments I was making. I saw the X and Z drivers were at 1.020+vdc, but the Y driver was different at 1.010+vdc.
Is that enough to make it do these weird shifts?? I don't know. So I made them all equal at 1.020 and printed a 20x20x20 test cube. Printed perfectly.
I used this test cube to calculate the perfect steps/mm adjustment so that the cube measures a perfect 20.00mm on all three axes. (Actual steps/mm × desired dimension ÷ printed dimension = new steps/mm) So I try to print something larger, and the shift returned.
I think the driver must be bad then. Right?
So I got new replacement motor drivers. I changed the Y axis motor driver and adjusted it to 1.020+vdc. Test cube shifts on layer 2 by a lot. That was unusual. I try again and it prints fine. Bigger piece: fail.
I took a few days away from it. I looked through these forums again and saw someone mentioning a correlation to "equipment weight" and VREF. It all clicked.
Stepper motors move according to their last position, but never report their actual position. Every move after home is calculated, so if something changes, the machine would never know.
I added a big glass plate that adds to the weight of the Y axis workload a while ago. I believe that the VREF was set too low for the extra work the motor has to do, and it's like sometimes steps are sent but not used by the motor.
VREF or Voltage REFerence, adjusts the constant voltage going to the motor. Stepper motors should have their operating spec range listed on them, for the A20M the included steppers are 1 - 1.2v. The higher the VREF, the more power the motor has for motion and for holding.
More power means more heat though. Too much and the motor burns itself up.
So, I adjusted the VREF of all 5 motor drivers to 1.18vdc and there is no more layer shifting. I used a non contact thermometer to ensure the motors are within a healthy operating range, generally 10-100°C.
Hours into a print they reach almost 50°C which is warm to the touch but well within limits.
I spent plenty of time trying to figure this out, so I hope this helps you all.
I've been running a Geeetech A20M for about a year now, alongside a Robo3D R1+ I've had for over 5 years now.
The A20M is a great printer, I've had a lot of success with it. I quickly discovered how much I didn't like the buildtac type print bed surface that came with it, so I installed a nice thick borosilicate glass plate.
Everything was awesome! For months!
Then out of nowhere it seems, this goofy Y-axis layer shift thing starts ruining nearly every print. Its always intermittent, sometimes it shifts on layer two by like 50mm, most other times it'll wait until around layer 50 or 60 before starting to shift, and not by much. Just enough to ruin the print. It continues shifting through out if I don't stop the print.
First I read all the way through these forums. Lots of info, some good stuff like adjusting VREF. It was a bit nerve racking at first, but it quickly became comfy to do. But what do I adjust them to? All I could find were ranges of voltages.
I taped a tiny Phillips bit to the positive lead of a multimeter so I could get real time readings of the Extremely minute adjustments I was making. I saw the X and Z drivers were at 1.020+vdc, but the Y driver was different at 1.010+vdc.
Is that enough to make it do these weird shifts?? I don't know. So I made them all equal at 1.020 and printed a 20x20x20 test cube. Printed perfectly.
I used this test cube to calculate the perfect steps/mm adjustment so that the cube measures a perfect 20.00mm on all three axes. (Actual steps/mm × desired dimension ÷ printed dimension = new steps/mm) So I try to print something larger, and the shift returned.
I think the driver must be bad then. Right?
So I got new replacement motor drivers. I changed the Y axis motor driver and adjusted it to 1.020+vdc. Test cube shifts on layer 2 by a lot. That was unusual. I try again and it prints fine. Bigger piece: fail.
I took a few days away from it. I looked through these forums again and saw someone mentioning a correlation to "equipment weight" and VREF. It all clicked.
Stepper motors move according to their last position, but never report their actual position. Every move after home is calculated, so if something changes, the machine would never know.
I added a big glass plate that adds to the weight of the Y axis workload a while ago. I believe that the VREF was set too low for the extra work the motor has to do, and it's like sometimes steps are sent but not used by the motor.
VREF or Voltage REFerence, adjusts the constant voltage going to the motor. Stepper motors should have their operating spec range listed on them, for the A20M the included steppers are 1 - 1.2v. The higher the VREF, the more power the motor has for motion and for holding.
More power means more heat though. Too much and the motor burns itself up.
So, I adjusted the VREF of all 5 motor drivers to 1.18vdc and there is no more layer shifting. I used a non contact thermometer to ensure the motors are within a healthy operating range, generally 10-100°C.
Hours into a print they reach almost 50°C which is warm to the touch but well within limits.
I spent plenty of time trying to figure this out, so I hope this helps you all.