X/y backlash compensation

  • Hi! Does anyone know if there is a backlash compensation function in firmware? Some thing like the M99: Set axis_hysteresis_mm command. With the M556: Axis compensation and auto bed level this firmware is really powerful but i feel that the backlash compensation is missing?


  • What sort of setup do you have? How much backlash do you estimate you are seeing? The only reason I ask, is that I've only come across this as an academic discussion, not actually seen it implemented in 3D printing as it seems that eliminating backlash mechanically or removing it using elastic/springs seems to be the preferred option.

  • It's a Ultimaker style printer. I have measured it to about 0.1mm x and 0.15mm y. I have seen a lot of discussion about removing mechanical fault, but its really the same as bed leveling and square up xy axis. It can be done to a great length mechanically and it should. But having the possibility to dial in the last bit in firmware helps a lot!
    Other firmware's does it already, look at this as a example : http://www.thingiverse.com/thing:2040624

  • administrators

    It's already on the wish list as item #10 at https://www.duet3d.com/forum/thread.php?id=961&p=1. I haven't counted up the votes yet, I'll do so after firmware 1.18 is released.

  • Backlash compensation will be useful for those of us running ballscrews. I haven’t pulled the trigger on the duet WiFi, duex10, plus daughter board, extended thermistors yet however this will be an important feature if we continue moving forward with development of this printer using duet products. It has been difficult finding resources online with dozens of hours researching duet and the lack of overall descriptive content describing its capabilities however it does seem to be an overall good candidate for our servo based commercial printer using external drives. Even some self proclaimed industrial controllers do not have the features and potential this system has without going to a pc based controller.

  • @dc42 hi

    Have a backlash function been added for the X and Y axes?

    I assembled a large 3D printer and in it I use 1: 4 planetary gearboxes for the X and Y axes. Due to play in the planetary gearboxes and the HTD-3M timing belt, layers are printed in waves. That is, they do not go one on top of the other, they are constantly shifted relative to the previous one. This can be seen in the photo.

    IMG_20191007_104548 (1).jpg



    Acceleration costs 900 mm / sec and jerks are malnye default. Filament PLA, fan on. I use feedback servo stepper motors and the print speed is only 40 mm / s so there can be no skipping steps.

    I know that even in the match 3 program there is this function, since many use a gear rack and because of it there are backlashes. Also in planetary gearboxes there are backlashes.

    backlash function implemented in mariln www. marlinfw.org/docs/gcode/M425.html

    please tell me how to solve my problem?!!

  • Hi,

    Getting rid of the gearboxes would seem to be the simplest approach.


  • administrators

    Also for more details about the issues see: https://forum.duet3d.com/topic/4665/backlash-compensation

  • How do you know the problem is backlash in X and Y and not some problem in the Z axis?

  • administrators

    following up on @mrehorstdmd's post. You could design a test which kept the same X but moved X or Y along the other axis while printing to test backlash, assuming it was repeatable.t

  • A 45 or 135 degree infill pattern on the first layer will usually reveal backlash in the XY mechanism. In a machine without backlash, the lines will be evenly spaced and just touching each other. If there's backlash, the lines will be in pairs, with gaps between every other line.

    Here's a rather extreme example: https://vimeo.com/173202575
    Notice that the nozzle lays down a new line as it moves away from the camera, but on the return path the line is almost on top of the previous line, leaving gaps between the lines.

Log in to reply