Circular Dimensional Accuracy, Out of Round

Anyone else have issues with circular errors?
I’m going over my machine to try and get it to the level of engineering prototypes.
Im a Mechanical Engineer by trade and just like precision.

Example if i currently print a high res stl with a 20mm Dia cylinder

It get a measured output of

Max: 20.11mm
Min: 19.79mm
For a tolerance delta of 0.32mm
I fear this is why i am failing some print in place tolerance tests.

Any one have ideas. Dimensionally accuracy for X and Y direction prints i have +/-0.05mm

Am i asking to much of this machine or is something else off?

Snapmaker claim that the machine only has a dimension accuracy of 0.04mm, so going to be tough to get it better than that. But there are some things that can be done to help it…

Have you measured and calibrated for the gear backlash of the linear modules?
Have you trammed all the linear modules to themselves, as well as trammed the bed frame and the beds you use to the rest of the machine?
Almost all of the linear modules need additional supports added to prevent them and their sliders from warping under stresses.
What 3D slicer are you using? They calculate line widths and dimensions differently, and some (Luban, Cura) intentionally overlap walls and make them bigger for added strength (a 0.4mm line width is actually printed as 0.44mm).

I am somewhat in the same boat as you. I work as an aircraft mechanic, and regularly have to meet tolerances of no more than 0.001in, and many of the inaccuracies in this machine drive me nuts. Would definitely love to see what you come up with for getting the tolerances of this machine tightened up.

Aircraft mechanic small world.
I was 1/2 of the team that designed the cirrus jet fuel system!

So its max is 0.04mm Good to know thanks for that info.

I have been working through allot of the issues over the last few weeks. Had some bowden tube drag issues in my dry box setup. getting material profiles working etc.

After working through those issues i had planned to continue down some of the same steps you recommend.

A good dial gauge is in the mail to measure directly the tram of everything i can.

I didnt know about the wall thickness in cura / luban, kind of evil i think. But i don’t think that would effect this issue directly since it would be even in each direction right? I really think its a liner step issue and will be worked out here when i get the correct tools.

Thanks for the input.

Also what linear supports are you talking about? links?


Ha! That’s awesome! I have worked on quite a few Cirrus piston poppers, but never the jet yet.

The only piece of the machine that have been able to verify is the true 0.04mm limit is the inductive proximity sensor used for the automatic bed levelling; mine tested as 0.043mm accuracy probing the same point multiple times one after another. Pretty disappointing considering the bed’s flatness delta is one of the biggest hurdles for the 3D printing.

So, all the ways that I can think of to tram and calibrate the machine…

  • Ensure y-axis rails are same the distance apart at front and back
  • Ensure bed frame and x-axis move parallel to each other (may require shimming)
  • Measure and set all axes steps and backlash
  • For 3D printing, measure and set heated bed & build plate flatness delta (does require shimming)
  • Measure and set extruder steps
  • Test and set linear advance (k-factor)
  • Perform hot end PID tune
  • Perform heated bed PID tune

And the following stuff needs to be tested and set for the individual filaments used (brand, type, color, etc.)…

  • Temperature
  • Retraction
  • Flow
  • First layer z-offset
  • Cooling
  • Bridging
  • Overhangs

A great place to get a jump start on it is the TeachingTech guides…

The supports I was referring to is better known as the “linear rail support mod” (or similar name) to prevent what is known as “z-wobble,” the bed edges bouncing up and down as the bed changes direction. It’s the DIY installation of SBR16 rails (or similar), slides, and adapters along the base plate next to the y-axis linear modules to support the corners of the bed frame.

been following teaching tech lots of very good info there. My issue has been learning / trusting g-code with this semi-closed system of snapmaker.

After looking some more at the cylinders it prints i think its is hitting the x-y coordinates correctly and is miss calculating the in between so measuring the cylinder in the direction of the x and y axis of the machine i get really close to the stated +/-.05mm. But if i measure the dia at the 45 deg split of the x-y i get a really low -.25mm to -.30mm delta. I mean the measurements of a plain 20mm cube that i printed right now i got x=20.01mm and y=20.04mm Pretty consistently with a very reasonable delta along the x-y specific directions.

I have an idea i am going to test. Im going to print the common 20mm cube both orthogonal to the axis and rotated 45 deg off the axis and see if there is a measurable difference.

For discussion from your lists.
Need to do all the the accurate measurements you mention, i bought this machine used so i actually never put it together.
Its isolated on a foam pad underneath a 150lbs piece of granite, has the enclosure and is pre-heated fully before trying these high accuracy tests. It is in its own room with nothing else going on while printing. In doors not the garage.

Once i get my dial indicator ill take a good look at the tram and parallelism of the whole system

Have the material dialed in really well i believe. Since i have not adjusted the flow % and are still getting the results that i get.

I saw those liner systems, intriguing but didn’t want to go to that step just yet. Anyways all my tests so far have been center plate in a 40mm sq area so i think the plate it self is not the factor for this specific issue. Also i don’t really plan on using the CNC but we will see how well the audit of the system makes the plate move up and down.

Mxbrnr I am having these open discussion with you to hopefully help others to if they find this topic. Thanks for being a sounding board.

Edit for results of off axis print.

Orthogonal 20mm Cube X= 20.02mm Y= 19.99mm
CW Rotated 45deg 20mm Cube X=20.17mm Y=20.01
So a little change but nothing to nail down any single issue on i believe.

1 Like

So just FYI for everyone a quick early measurement.

Backlash (xyz) is repeatable to +/-.01mm and i would even say more like +/-.005mm :slightly_smiling_face:
X-axis 10mm move command = 9.75mm actually moved :frowning:
Y-Axis 10mm move command = 9.86mm actually moved :frowning:
Z-Axis 10mm move command = 9.85mm actually moved :frowning:
no wonder all my circles are on the tight side.
And i can see a combination of .1mm longer in the Y-axis then the x axis would go along way to the .2mm out of round that i am seeing. depending on max min conditions.

So looks like some step calibration is in order.

But i have to give credit to all the precision machinists out there. Dialing in 0.01mm takes some skill and any i have watched make it look so easy.

Those step numbers are rather astonishing. I have only tested my z-axis for steps and backlash so far, and it came in at barely 1% off on the steps but 0.05mm of backlash. Good to see your backlash is so much smaller. I will have to test my other axes soon.

What model is your machine and how old is it? Mine is an A350, purchase new in Spring 2021, original linear rails.

Yeah i was surprised by the repeatability back to the original spot myself. Dial indicator only has a 25.4mm range so i could only of course go forward and back 2 x 10mm jumps but it would go back to zero (0.00mm) 75%+ of the time and only .01mm 25% of the time. And yes it wasn’t bottomed out. i zeroed the dial at a location that wasn’t the end of its travel. Maybe I’m interpreting precision wrong if i am correct me. Im an engineer not a machinist. I only say the words about how accurate something has to be. Machinists have to actually do it.

My worry now is currently with the 9.82mm average delta in movement im getting x and y individual dims that are pretty accurate on final printed shapes. Aveage +/-.1mm overalls along x-y. If I re calculate the xyz stepping will it throw off my overall size to be worse? I mean i can always take note on the steps now and just re-program them if it dose get worse.

Machine is an A350, Bought used off a coworker (fellow engineer) July of 21’ and he said he had had it for 6 months.

I haven’t set up a good system for parallelism yet. This was all taken from a dial indicator magnetic stand. Connected to a flat steel plate that was screwed down to the two holes where the screen stand is when you don’t have a enclosure. Im printing a dial indicator holder to connect to the x axis bracket so i can see if the z axis is in sync. And how ugly the level of the bed is.

Sounds to me like you are being quite thorough. I have a calibrated dial indicator that only has a 12.7mm range and a display resolution of 0.001mm, but even at its worst it is still accurate to within 0.005mm.

I am actually doing a whole bunch of bed level testing right now for a write-up I will post to the forum, and it’s definitely its own animal. Most of the 350-series beds have a flatness delta (difference between highest and lowest points) between around 0.5 to 0.4mm. Depending on certain factors, I have seen some people with it as high as 0.8mm.

My machine has about 1000hrs of use on it, and considering the backlash between mine and yours, I am wondering if my linear module lead screws are just that much more worn out.

The quick sweep I did with no data taken, of the bed. (trammed the bed under the dial indicator in a single spot) and yeah I would agree with you that the bed level has allot left on the table.

1000 hrs wow I’m probably half of that or less I would think.

When i think what the machine costs for the whole system. Yeah i would hope it would be a little better out of the box.

But in honest the parts seam stout. and if it takes some work, some shims, some understanding of the system and the end of the day you get a nice machine out of it I’m okay with that.
The cost is already a sunk cost. I bought the machine that’s done and gone. But adjustments, programing, etc. I’m willing to do.

If you want a machine with a guaranteed accuracy, easy use and setup. Well guess what they cost a hell of a lot more than 2500 bucks…

Ill look forward to your write up on your results.

1 Like

Had a thought.

I doubt snapmaker reinvented the wheel (no one ever really does) so to speak at the level of a lead screw nut. You might have to do some research and looking around. But i bet its a purchased part somewhere.

Screen shots taken from Snapmaker V2 A350 Linear Module Assembly and Disassembly - YouTube

From Snapmaker 2 Linear Module Check - YouTube

Not willing to take my working one apart. But if it was damaged or worn out i defiantly would be taking some measurements and seeing if its more common then we might think.

just a thought.

1 Like

Yeah, I have had all 5 of my linear modules apart to replace the u-groove bearings in them; they were pretty horribly worn. The lead screw nut is something I have not considered looking into replacing or upgrading, but certainly a good idea.

So… After 3 hrs of 1-2-3 blocks and repeated testing. I think at the end of the day im actually impressed.

Now to be honest i havent done a detailed bed leveling yet, thats this weekend.

This is just XYZ step calibration.


I’m pretty impressed like I said.

1 Like

Fantastic! My z-steps came in right around 405, so these numbers look pretty spot on to me. Great work! Let us know how it affects project outcome, and what other procedures you take to dial this thing in. Hopefully you will think of something that I have been missing.

Well sorry to disappoint. All that and the original issue still is there and even slightly worse like i thought it might be.

Recap Printed Cylinders are not round.

Re printed the same test file after the XYZ step calibration.

20mm dia Cylinder Sliced on Luban
MAX 20.37mm
MIN 19.87mm
For a roundness Delta of .5mm :sob:

Trying a sliced from Cura version right now. Will try some more tests. But this wasn’t the magic fix…

@Spaced how do you measure the roundness?

Well due to the limitation of the tools I have at home. At work this could be a totally different explanation.

I am defining roundness as the max delta between the smallest and largest dimension measured across the reference 20mm dia cylinder. Measured by a linear caliper laying flat on a reference surface in which the cylinder is all sitting on.

A perfectly round cylinder should always measure the dia same at any line that is perpendicular to and point intersecting the center line axis of the cylinder.

In normal terms i put the cylinder on my desk and put the caliper on the same surface and spin the cylinder while looking for both the max and min measurements shown on the caliper.

1 Like

Now I’m curious to measure the roundness of mine.
I had printed M43x0.75 and M26x0.7 threads, had to play with custom thread profile in fusion360 and print 3 test threads to figure out clearance. I used the final design to print adapter for mitutoyo microscope objective to a lens. Worked out great but I never actually measured the roundness, maybe could save me a test print.

I will give you a nice friendly warning.


If its good enough then its good enough. Im trying to actually use it for work prototyping so fit and accuracy is pretty important. X, Y, and Z axially are pretty good its just this roundness issue. Im using a very high count STL if anyone is curious to lower the chance of an artifact.

M43x0.75 geesh i think at that size even steel parts may be out of round :laughing:

1 Like