Notifications
Clear all

Ball Screw upgrade  

  RSS
peter.s2
(@peter-s2)
Eminent Member
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

Posted : 16/02/2016 5:26 pm
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 16/02/2016 10:20 pm
jack.z
(@jack-z)
Eminent Member
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.

Posted : 17/02/2016 8:55 am
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 17/02/2016 10:02 am
jack.z
(@jack-z)
Eminent Member
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

Posted : 17/02/2016 6:15 pm
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 18/02/2016 10:07 am
jack.z
(@jack-z)
Eminent Member
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

Posted : 24/02/2016 11:04 am
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 24/02/2016 12:23 pm
jack.z
(@jack-z)
Eminent Member
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

Posted : 28/02/2016 1:01 am
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 28/02/2016 10:52 am
jack.z
(@jack-z)
Eminent Member
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

Posted : 28/02/2016 12:25 pm
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 28/02/2016 5:47 pm
jack.z
(@jack-z)
Eminent Member
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.

Posted : 28/02/2016 9:22 pm
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 29/02/2016 9:45 am
jack.z
(@jack-z)
Eminent Member
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.

Posted : 14/03/2016 6:15 pm
PJR
 PJR
(@pjr)
Antient Member Moderator
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…

Posted : 14/03/2016 6:22 pm
jack.z
(@jack-z)
Eminent Member
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.

Posted : 14/03/2016 6:41 pm
joao.m
(@joao-m)
Active Member
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

Posted : 25/04/2016 2:50 pm
Share: