M425 Backlash compensation happens too slow even with S1
-
I have a machine with 1Z cantilever bed. I'm using a Stepper Online 10:1 precision planetary gearmotor for Z.
I'm measuring a backlash of 0.044mm. (which is about 80% of the datasheet max backlash). 22% of a standard 0.2mm layer height
With a M425 Z0.044 S1
There's too much lag in compensating the backlash to make bed mesh really useful.
Ideally i'd like it taken up as fast as the stepper motor driver can take the steps on the reversal. Can we have an option for that? Like -S0 says do the backlash comp as soon as is possible?
-
@wesc backlash compensation isn't really intended for use in 3D printers, it meant for CNC machines. The problem is that when 3D printing we can't suddenly stop extrusion while the stepper motor takes up the backlash and then suddenly start it again. If we try to command the stepper motor to take up the backlash instantly, that it likely to result in missed steps unless the amount of backlash is small (well under one full step). The belt-driven axes used in most 3D printers don't usually have much backlash anyway.
Backlash compensation in CNC machines is easier. The speeds are generally lower and there is no extrusion to worry about; so backlash can be taken up without rushing.
How much is the backlash in your Z axis, converted to motor full steps?
-
@wesc do you actually need the backlash compensation in Z?
Typically the weight of the bed will always keep the gearbox loaded on one flank even when you reverse directions. You'd only go across the backlash if you are using z accelerations approaching 10000 mm/s^2 (I.e. 1g) where you are outrunning gravity. Granted a bit of friction might make that number smaller in practice, but I doubt you'd be anywhere near those limits if your motor has to run through a 10:1 ratio.
It's different on X/Y axes where you don't have gravity always pulling in one direction. I know I've seen many printers with 'anti backlash' nuts on the z lead screws, but they just don't make sense to me from a physics point of view!
-
@engikeneer
Adding a 2.2kg load to the bed (which weighs approx 1.2kg) changed the backlash from about 22 microns to about 14 (there's a variance of a few microns). -
@dc42
So i did another round of tests with a better setup.Backlash is approx 20-24 microns with empty bed weight 1.2kg. With 2.2kg on the bed the backlash is approx 14 microns. Backlash is pretty much the same (within 10%) when reversing either direction.
200 step motor, 10:1 reduction, 20T pulley at 16i means 800 steps/mm
.024 * 800 = 19.2 microsteps = 1.2 full steps. Could that be applied instantaneously without issue? M425 with S0 could enable this if feasible from a code standpoint.
-
I'm currently modifying a printer that has belts on all axis , to have additional micro Z adjustment using small lead screw motors on each print head - which on reading your thread makes me think I might be introducing some backlash problems too.
Due to multiple print heads not being supported by firmware mesh levelling - I was planning when I get to the stage of refining print quality to address micro Z mesh adjustments using a GCODE post processor.
I was thinking the post processor could reads in the bed mesh file and then make any necessary tiny adjustments to the Z coordinates of the layers within the mesh compensation scope . If necessary splitting up any long moves that span irregular areas of the bed into smaller chunks that can have the appropriate MicroZ compensation applied.
Thinking about mesh compensation I think a post processor should take backlash in to account too - I guess it might not be that hard to allow for the fact that moves in a certain direction might need a tiny little bit of extra or less Z adjustment made to them to take in to account the backlash.
My Bed is fixed - so I don't think I will be affected by backlash amounts changing depending on the weight of print on the bed - but I guess that could also be included too in a post processor - although I am guessing that printed object weight would only start to become significant when you are well above the normal bed mesh compensation layers.
-
@dwuk3d does your printer have the facility to make small Z adjustments independently on each head? If so, please create a feature request to support this at https://github.com/Duet3D/RepRapFirmware/issues.
-
@dc42 Ok thanks - Yes my printer has separate Z adjustments for each print head - have raised enhancement request.
Referenced Multiple Motion System Mesh Adjustment and Z hopping in the same request - but could separate them out if that would be better.
https://github.com/Duet3D/RepRapFirmware/issues/1106