I have 4 U1’s and am printing small parts that require a tight tolerance to work. I noticed that parts weren’t fitting the same when printed on different machines so I’ve been printing calibration cubes.
The 20mm cubes are about 0.1mm off and I have been able to adjust this on past machines in Klipper’s printer.cfg file by changing the rotation_distance. I tried this last night on a U1 but all of a sudden had tool head docking/undocking issues.
I’m guessing this is from the taught parking distance now being different due to the rotation_distance changing. I have found where the parking distance is stored and think I could use the new rotation distance to calculate the new, corrected park position but I’m still nervous about doing this.
Question is, is there a better way to compensate for machine to machine differences than changing rotation_distance? If changing that parameter is best, is there anything else I need to adjust other than park position?
Why not compensate in your slicer?
In Marlin the possible solution would be to adjust the steps but i am not sure, it could even be a belt tension thing, isn’t it?
Let us know your solution please.
Hi @xchrisd! Thanks for the reply.
I’m using Snapmaker Orca and thought about slicer solutions as well. To me though, a firmware or hardware change is preferable because it allows machine-level tuning and keeps the slicer more simple.
-Scaling models in the slicer could be used but it would require a separate model for each machine which seems like a lot for 20+ models and a growing # of printers.
-For flow, I did weigh the cubes and found the largest cube weight slightly more so maybe there is a flow difference. That may be something easier to tune on each machine.
I also remember Marlin e-steps and was trying to do the same here. In the Klipper documentation though, I found that rotation_distance is usually a whole number (snapmaker defaults to 40 for X/Y and 8 for Z) so I don’t think I should change it after all.

TBH, if you require that close a fit you’re expecting too much from FDM printing. Design for manufacture should use strategies which avoid that kind of tolerance issue. In any case, set up the printer exactly right one day and it will be different the next – the subtleties go right down to the room temperature and any drafts, to the exact properties of any particular length of filament.
This covers that point:
Thanks for the video and thoughts. I agree that chasing 0.1mm over a 20mm cube may be a lot to ask and there are a ton of variables to consider. However, I was able to improve to within 0.01-0.02mm with a single rotation_distance adjustment across all 4 machines so a tighter spread is possible.
The issue for these specific parts are that they fit into 3rd party hardware (bearings, etc) without many options to adjust the design to increase allowable tolerance.
I think I’m going to try to start by resetting the tension on the X/Y belts and do a flow calibration to see if those make a difference.
Sure, but when I’m doing that I build in some compliance – eg the extra slits shown in that video allow for a bit of stretch when the bearing gets pressed in.