Ball Screw upgrade
I'm considering upgrading to ball screw on all axes, but are a little unsure!
What would you recommend the size of the ball screw, pitch, stepping motor, etc.?
What do I need to change? Do I need to change the firmware or it is enough to change the slicer program
Happy printing 🙂
Best regards Peter
Re: Ball Screw upgrade
Hi Peter
Not sure that you will see very much benefit. You will have to change your firmware and possibly your layer height to maintain full step increments.
I have 4x8mm lead screws directly connected to stepper motors, but have yet to install them. I may build another printer and use them for that.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Hi Peter,
Yeah, it's agreed that using full steps is the best configuration for the Z axis, because these positions are where the Z motors naturally rest. This makes it easy to keep consistent layer heights; however, I recently switched to motors with lead screws, as Peter mentioned, and have seen a nice improvement in my layers.
If you can get ball/lead screws with the correct lead, then you can obtain full steps for each layer height increment. (i.e. The 5mm threaded rods work well because they have a 0.8mm pitch and thus, a 0.8mm vertical travel per rotation. If the motor has 200 steps, this translates to .004mm vertical travel per step. Using 50 full steps, you have 0.2mm layers.)
I purchased TR8x8 lead screws, so I get 8mm travel per full rotation. If I want to full step, I need 5 full steps per .2mm layer height.
If you use microstepping, you will need to make sure you update to the latest firmware, which makes sure the Z axis is powered throughout the entire print, thus locking the motors at each successive layer increment.
Bottom line: I would recommend the upgrade simply because lead/ball screws are designed for linear motion and should be used where linear precision is desired.
Re: Ball Screw upgrade
Jack
This issue of using full steps has been rolling around my head for some time now. The theory is great, but it only works if the home position is at a full step. Unfortunately, there is only 6.25% chance of that being the case, so unless microstepping is turned off, it is unlikely to happen.
Which means that the Z axis is always using microsteps for positioning; that is not ideal, even with the latest firmware.
However, with a pitch of 0.8mm microstepping will have less of an effect on the finished print than with an 8mm pitch.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Peter
Yeah that is true, but I assumed that you would change the firmware to full step mode for the Z axis if you were planning to use full steps.
I like the idea, but I haven't tried it yet. You are right that an 8mm pitch allows for more error with less noticeable results. I might give it a try in a little, but for now my lead screws are giving excellent results with the Z axis configured to lock between moves.
Jack
Re: Ball Screw upgrade
Jack
Yes, that can be done in Configuration_adv.h. But with an 8mm pitch, the best accuracy achievable would be 40 microns and the first layer would be out by (average) 19 microns. Don't know how that would work out.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Peter
Sorry, meant to say 0.8mm pitch if you want less chance for noticeable errors. And I think 40 microns is more than enough for the layer height, definitely don't see it causing any problems.
Why would the first layer be out by 19 microns?
Jack
Re: Ball Screw upgrade
Jack
Typical lead screw threads have 4 x 8mm pitch. Working to full steps (rather than micro-steps) would mean that each step would be 40 microns. The Z endstop would therefore be activated at 40 micron intervals and would only be correct when positioned precisely at at full step (highly unlikely) the average of 0 microns (precise) and 39 microns (maximum difference from full step) is 19.5 microns - the average error in Z calibration.
The latest firmware (2.2.3) goes some way to overcoming this issue as it contains the possibility of micro-step adjusting the Z axis calibration, but in reality 16 microsteps are not the same as 1 full step unless they start at the full step position.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Peter
The way I envision full stepping on the Z axis, is to first change the code in the firmware so that the driver is set to full step mode.
Next, you calibrate the Z axis using the new firmware. Since the motor is now only capable of taking full steps, once it hits the Z end stop, it will position itself at the lowest possible, full step position. This would be defined as zero for the Z axis.
Then you level the bed as you normally would. This should be done at .2 layer height, as the firmware is programmed to use this height for Z calibration.
When you're done, I would imagine that the zero position should be consistent every time you home the printer head. That position does not change, and should be even more accurate since there is no microstepping. Therefore, as long as your layer heights are set to a number that can be achieved through full steps, there should be no issues with the initial layer height or any subsequent layers.
Jack
Re: Ball Screw upgrade
Hi Jack
Yes, you are correct except for one thing. The Z home position is set in firmware to 0.23mm, which is not a multiple of a full step.
Ian any event, this is easily changed. I have amended the firmware to Z-home at 0.00mm, thus enabling me to have first layers less than 0.25mm. Main reason I have done this is because of the slicer I use; that doesn't have a setting for "first layer height", just a machine "bed roughness" setting which I would have to remember to change whenever I changed layer heights.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Peter
Yep, that would be the necessary change I forgot to mention.
However, I'm not sure if .23mm is the home position or if that's just the height used for bed leveling. I could be wrong, but i believe the firmware only uses that height for leveling, as it is compatible with the thickness of card paper. I think it can still easily use lower heights for the first layer; it just needs to move the appropriate number of steps lower than that .23mm.
So if using full step mode, I would set the leveling height to .2mm. Then that should allow 4 more possible heights below that height (assuming 5 full steps per .2mm), each at 40 micron intervals, as you said.
What do you think?
Jack
Re: Ball Screw upgrade
Jack
#define Z_MIN_POS 0.23
This is the minimum position the Z axis can be located after a Z Home (ie end stop hit).
Personally, I have set this to zero:
#define Z_MIN_POS 0 //PJR 0.23
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Peter,
You are right that is the minimum position, but I believe that's only where the Z axis holds when you home. You are still able to manually move the Z axis to the zero position from the LCD control panel.
The reason I say this is because I am able to still print with sub .2mm first layers.
Jack
EDIT: Peter, I take that back. You are correct, the Z axis will not go lower than .23mm during the print. I never actually payed attention to this detail. I guess I will need to make the same change to the firmware that you did.
Re: Ball Screw upgrade
Jack
#define MANUAL_Z_HOME_POS 0 // PJR 0.25
That's another change I have made. For reference, here are the other changes I have made:
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,179} // PJR 174.2}
#define Y_MAX_POS 200 // PJR 198 - note that I have stretched the Y axis slightly...
#define HOMING_FEEDRATE {1500, 1500, 120, 0 } // PJR 3000, 3000, 240, 0} // set the homing speeds (mm/min) - note that this may give better end-stop accuracy.
#define DEFAULT_PWM_MOTOR_CURRENT {450, 500, 450} // PJR 270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {450, 500, 450} // PJR 540, 450, 500} // {XY,Z,E} - these are settings know to work consistently for me
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
I went ahead and took your advice and set the Z min to 0.0. Much better. Although, I wish there was a way to manually increment the Z axis less than 1mm at a time. It would make leveling much easier.
I also tried switching the firmware to full-step mode, but it surprisingly didn't seem to make a difference. So I'm back at micro-stepping instead.
I'd like to see if you get an improvement with full-stepping the Z. Let me know if you get a chance to try that out.
Re: Ball Screw upgrade
Hi Jack
Thanks for the update. Does the latest firmware enable Z adjustment whilst printing the first layer? I think that was one of the major features of 2.2.3.
OctoPrint does have a facility to move each axis by 0.1 mm; I home Z then raise by 0.2mm and use a 0.2 mm feeler gauge to calibrate. This would also be possible with something like Pronterface or any terminal program using GCode.
I would guess that the firmware also could be changed to allow tenths of mm adjustment. Will have a look at that one.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Ball Screw upgrade
Not sure, haven't bothered to update yet. While I'm aware that those options exist, I think it would be much easier if this could be done directly from the LCD instead of having to connect a computer.
I tried searching the firmware for a way to change this to .1 increments, but had no luck. Let me know if you have any.
Re: Ball Screw upgrade
Jack,
I did a fork from the Prusa code, and added support for changing the axis mode scale. On the axis move menu you will find a new entry "Scale" here you can make the change.
Source code https://github.com/amadeus999/Prusa-Firmware.git
Feedback is welcome =D