Jump to content
Ultimaker Community of 3D Printing Experts
Jakeddesign

Getting Better Dimensional Accuracy - Calibration

Recommended Posts

There are a few other topics floating around that discuss accuracy and calibration of the printers, but my issue seems to be above and beyond.  First off, I am running a UM3 with 0.4mm Cores, mostly MatterHackers PRO PLA and PRO Nylon material.  The issue is that my parts are consistently 0.010" (0.25mm) over size on outside dimensions (OD/PIN), and 0.015" on inside dimensions (ID/HOLE).  I have spent a lot of time printing calibration cubes and if I print a single wall cube with 0% infill, my print comes out perfect - as in, +/-0.001 with the occasional 0.005 outlier - but I can live with that, this is a CNC machine.  However, as soon as I add multiple walls, the part grows (consistently) to +0.010 overall.  This is true for 2 walls, 3, 4, and so on.  I can print 6+ walls with the same result.  Since the single wall part prints perfect, I have to assume that my material calibration is correct - right?  Hopefully this describes the issue thoroughly enough.

 

To combat this issue I have tried:

 

-->negative horizontal expansion

This *sometimes* works, but some surfaces (typically inner diameters) and angled surfaces do not get adjusted, so they end up being oversized pins and undersized holes if the surface is not perfectly vertical.

 

--> outer before inner walls

this  helps, but does not seem to do enough

 

--> adjusting line width

I have 0.4mm cores, which default to 0.35 line width.  lowered it a few 0.01mm increments with no success.  This seems obvious to me since cura just shifts the shell thickness over and you are left with the same "over extrusion"

 

--> Model parts with 0.010" smaller pins, and 0.015" larger holes

works, but is pretty inefficient.  A lot of the jigs and fixtures I print are typically meant to be machined, but we have been trying to print them in order to save some machine time.  Not everything needs to be made from metal.  If we know this ahead of time, I can make sure the parts are designed with extra clearance, but this is not always so easy.

 

--> adjust flow rate

This is obviously not a good solution, but I tried it and its pretty tough to dial it in and of course underextrusion results in weaker parts

 

I want to point out (again) that I understand this is not a CNC machine milling metal and that +/-0.005" is asking a lot of a printer.  however, this parts are consistently oversized, so I feel that there is some tuning or Cura setting that could be changed to compensate for this.  Some part that require extra precision will be post machined with a single pass or something, not a big deal, but I dont want to do this with ever single part - kind of defeats the purpose.  

 

Sorry for the long post, but I wanted to be thorough.  Any suggestions are greatly appreciated.

 

DOWLJIG_ID.jpg

doweljig_od.jpg

dowljig.jpg

111222_dowel_fixture.stl

Edited by Jakeddesign
added STL file

Share this post


Link to post
Share on other sites

So, diameter of the hole is approx. 0.5mm? Cannot help thinking I have translated your scaling factor incorrectly but maybe the hole is really small. I may be misreading you but to me you are saying in your 1st para that the hole has an ID 0.015" larger than the dimension (never heard of that before*|) but then later you talk about modelling the part with 0.015" larger hole.

 

Interesting post, which is why I wanted to try your model and see what I get - never printed a model with a single wall so you could be right!

 

Have you checked the calibration of your nozzle? Your post prompted me to recalibrate and my 0.4 nozzle is pushing out 0.45mm width

Share this post


Link to post
Share on other sites

I think we are not on the same page regarding scaling, so I have attached a screenshot of Cura with the part scaled to the correct size.  The dimensions should read 57.1x57.1x25.4mm.  The small hold inside of the part is 6.15mm in diameter, but measures 5.77mm.  To be fair, I am not too worried about this particular hole, but I am worried about the larger inner diameter shape on top of the part.  For some reason, the "Horizontal Expansion" option does not adjust this wall, so even though I can get the outside of the part correct, and the "square" hole correct, the upper lip does not compensate for some reason.

Capture.thumb.PNG.fb927f6b3789d2144f32192cf7a74bbb.PNG

I have tested the nozzle by printing a calibration cube with 0% infill and (1) wall.  Then measured with width with calipers.  Width in Cura is set to 0.35mm and I measured almost exactly 0.35mm.

 

I am printing another test cube right now with the "Outer Wall Line Width" setting changed from 0.35 to 0.25mm just to see what happens.

 

image.png.5cbc05866c0621100c8272459572d9fb.png

 

 

 

 

Share this post


Link to post
Share on other sites

Awesome!  The dimension should be 1.852" or 47.04mm.

 

I am printing a boatload of calibration cubes this afternoon to try and see how exactly some of the settings affect the parts.  So I will post this information later on as well.  The attached "cube" is 1.500"  (38.1mm) square, with a square hole that is 0.600" (15.24mm).

 

 

image.thumb.png.bd7000dd98aa5996f9a85db1c5c88526.png

test cube 2.stl

Share this post


Link to post
Share on other sites

Lol, I am definitely not having a good week; after all the calibration work, last night I got 2 hours into the print and it stopped extruding! Anyway it was worth it, I ran it again this morning and the results were...

Using two 0.4 walls at 30mm/s and 0.2 layer with 100% fan

 

OD - target 57.15mm       aborted run   57.15mm   2nd run  57.17mm

ID - target   47.04mm       2nd run  46.85mm (1.844")

 

So the ID as expected, in fact very good; I work on an error in the range of .2mm to .4mm for IDs so 0.19mm is probably the best I have seen.

 

Struggling with the cube in Cura15.04 so I will go back to 2.7  ( I went back to 15.04 Wed night to see if my dimensional errors were being caused by 2.7)

 

So for whatever reason I am not experiencing your problem (using circular geometry in my test). I.E. With multiple walls OD is perfect and ID as expected is smaller.

 

I will go through your posts again  and see if I can think of anything that could be causing your problem.

Share this post


Link to post
Share on other sites

Hi @Jakeddesign,

 

thanks for sharing your question here, let's see what we can do :)

I'm thinking @gr5 and @ultiarjan may have some good input here as well. 

 

In your model, is it consistently oversized in both X and Y dimensions, or does your model turn oval?

What version of Cura are you using?

I see you changed your filament diameter to 2.88, however I can't imagine that makes any difference for this.

 

Could you share your file as a project with your settings, so we can do a print and determine if we should look at the hardware or software?

 

- what happened when you reduced the outerwall thickness?

Share this post


Link to post
Share on other sites

Busy day today, but finally got around to posting.

 

@yellowshark I ran a PLA part today for better comparison purposes, pictures are below.  My OD numbers are actually pretty close, I measured 0.13mm oversized, but the part was 0.25mm oversized at the bottom. (indicating taper, I suspect this is plastic shrinkage).  The ID was measuring 0.4mm undersized.  I ran (4) walls, 20% infill.  I will try (2) walls on Monday and see if that changes it.  If I recal, I had printed some test cubes a while back that had 1, 2, 3, and 4 walls and I noticed that 1 wall measured perfect, and 2 walls was the same as 4 walls as far as oversized.  But I will try again on Monday.

 

image.thumb.png.bf6a322a7698dc1e049576711e1ac2bc.png

image.thumb.png.e61f9e08162d8f6b9faaf21a02262f92.png

image.thumb.png.3e0c6797fd4e22586abca116ed68778e.png

 

@SandervG I would say it is more or less consistent, I do notice a slight difference between X and Y of less than 0.005" (.13mm) but maybe this is as good as it can be?  I have checked the belts, on Monday I will measure for square and report back.

 

I have Cura 3.2.1

 

Project file attached.

UM3_111222_dowel_fixture.curaproject.3mf

Share this post


Link to post
Share on other sites

Well it is good that your ID is smaller than specified; that is to be expected and .400mm may be par for the course, as I said I measured .190mm error which I thought was good! In your first post you said you were 0.015" oversized which really confused me.

Be careful measuring at the bottom as  the bottom layer tends to be squashed down for adhesion and will be larger than specified. How much depends on your machine setup, bed to nozzle distance, but I tend to have my distance quite small so it is always fatter at the bottom. If dimensional accuracy at that location of the part is important I will either back off and risk adhesion for a gain in accuracy or leave it as is and start filing. 

 

Bottom line is, in my view, that with a nice shiny new machine you should be able to get a lot better than 0.250mm (0.010") accuracy. If I cannot deliver 0.050mm or better I am not happy! (and I will engineer IDs to get that) my 3ntr printer is 4.5 yrs old.

 

I will  try and play with a variety of walls over the weekend and let you know what I find.

Edited by yellowshark

Share this post


Link to post
Share on other sites

Right on, thanks for looking into it.  I definitely suspect I am creeping up the capabilities of FDM printing, it just seems to me that it is consistence enough that software could compensate so I was hoping there was already a setting built in that I had not yet discovered.  I will update if I come across any other clever solutions.

Share this post


Link to post
Share on other sites
On 4/13/2018 at 10:51 PM, Jakeddesign said:

I measured 0.13mm oversized, but the part was 0.25mm oversized at the bottom.

What you see here could be a thing called 'elephant feet'; check out this guide for more information :)

Instead of filing, you could make the bottom slightly smaller, this should be pretty consistent and predictable. 

 

Share this post


Link to post
Share on other sites
On ‎4‎/‎16‎/‎2018 at 2:01 PM, SandervG said:

What you see here could be a thing called 'elephant feet'; check out this guide for more information :)

Instead of filing, you could make the bottom slightly smaller, this should be pretty consistent and predictable. 

 

Yup that is why I never measure at the bottom 😎. With a piece that small you will be able to increase the nozzle to bed distance (reducing the pressure) and probably almost get rid of it and still retain bed adhesion.

Share this post


Link to post
Share on other sites

Hi @Jakeddesign, sorry for long delay, a variety of other things took my time away. I have pretty much completed my testing and my conclusions are...

 

Line width:

Nozzle; well Cura does not help here as it is no longer possible to enter the nozzle width. I do not know how Cura can calculate accurately the needed pressure if you tell it what line width you want but it does not know what filament width is being extruded. Maybe something for you to consider @SandervG

 

My .4 nozzle extrudes .45 width filament so I tried both. What I found was that whilst they were both very similar in accuracy the 0.45 line width, i.e. reality, was more consistent. E.G taking two measurements from a block I found that the 0.45 Sample showed -0.01mm and -0.03mm accuracy (bearing in mind digital callipers only claim 0.02mm accuracy, the 0.04mm sample showed –0.03mm and + 0.05mm accuracy (so the range of error was considerably larger). This was substantially consistent across a range of measurements.

Number of walls:

I tried 1,2 & 4 walls. I did not see any real difference. The 2 & 4 walls had errors ranging from +0.02mm to +0.04mm, whilst the 1 wall showed a range 0.00mm to -0.04mm

 

Layer height:

Surprisingly (to me) printing at .100 layers was less accurate than printing at .300 layers (everything else - settings, cool down process and ambient temp. were the same). Not much testing done on this so I intend to revisit.

Inside vs outside wall first:

I did not do much testing on this but what I did do suggested that really there was no difference. Another one I will revisit once I have the stepper motors calibrated exactly; in between each set of tests I made minor changes to the steps per mm to hone it in to as close to zero error as possible.

 

Settings etc.

All test were done with print speeds all consistent at 30mm/s with the extruder set at 200 for .300 layers and 190 for .100 layers; 15% infill overlap and ambient temp. of around 24.6c.

Share this post


Link to post
Share on other sites
19 minutes ago, yellowshark said:

Nozzle; well Cura does not help here as it is no longer possible to enter the nozzle width. I do not know how Cura can calculate accurately the needed pressure if you tell it what line width you want but it does not know what filament width is being extruded.

I don't think that Cura calculates the pressure build up in the nozzle. I may be wrong, but I never heard such. I think @ghostkeeper may know more. 

Share this post


Link to post
Share on other sites

Yup I had not really thought that one through, you could well be right. It could be done by the printer firmware. In fact, thinking about it, maybe nothing actually calculates the pressure as such. Cura says go from A to B at this speed and extrude this amount of filament; and presumably the printer via the firmware pushes the filament at the speed needed into the nozzle to achieve the Cura instruction. It is that speed or variation of it that causes the pressure and pressure variations. (thinking out aloud) What was confusing me I think is what I have never understood and that is how can a nozzle which has a 0.4 nozzle (in reality, not specification) push out anything other than a line that is 0.4mm wide - and yet people set line width either side of the spec. Cura always used to need nozzle diameter and line width which always made me think that the nozzle width came into the calculations somewhere

Share this post


Link to post
Share on other sites
4 hours ago, cjs said:

I don't think that Cura calculates the pressure build up in the nozzle. I may be wrong, but I never heard such. I think @ghostkeeper may know more. 

Indeed Cura doesn't have any such modelling. And neither does the firmware. All things in Cura related to this, such as coasting, involve compensating measures to counteract the effects of the pressure differential in the nozzle at specific points in the print. Hand-wavy techniques, so to say.

 

38 minutes ago, yellowshark said:

What was confusing me I think is what I have never understood and that is how can a nozzle which has a 0.4 nozzle (in reality, not specification) push out anything other than a line that is 0.4mm wide - and yet people set line width either side of the spec. Cura always used to need nozzle diameter and line width which always made me think that the nozzle width came into the calculations somewhere

If your nozzle extrudes enough material to fill a 0.5mm wide line, then that material has to go somewhere. It goes sideways, producing a line of the desired width. Of course, this only works up to a certain point or the pressure in the nozzle is going to exceed the pressure that your feeder can exert on the filament. And it has some detrimental effects in corners as well.

Cura models lines as being rectangular. It instructs the printer to extrude exactly as much material as is needed for a rectangular block of 0.1mm high, 0.4mm wide and 10mm long for a layer height of 0.1mm, line width of 0.4mm and line length of 10mm. 0.1mm * 0.4mm * 10mm = 0.4mm^3, so you'd see an increase in the E value of 0.4 for such a line. In reality, the line sags a bit so the line is slightly wider. And the line collides with the lines next to it and this increases backpressure which causes the material to slip a bit again. There's a million effects going on there... Some people have gone really deep into researching this.

 

If you ask me, the most significant effect in dimensional accuracy is that lines get dragged along with the nozzle in corners after just being extruded. This means that the line will always sort of take a "shortcut" in a corner because the nozzle drags the fluid along with it in the corner a little bit before it's fixed on the surface. The effect is that inner corners are slightly too small and outer corners too. We sort of have a fix with the "Post Stretch Script" in Cura's post-processing scripts. It's a bit crude but with some models really effective. If you can think of a reliable solution in software that would be awesome.

Share this post


Link to post
Share on other sites

Thank you @ghostkeeper, that was really helpful and interesting. May I ask a question/make an  observation just to ensure I am understanding this correctly. If one specifies a line width of 0.5 then Cura will calculate the volume of filament to be extruded, per second or whatever, to create a .5mm line over the given distance in the time allotted from the print speed. I assume that the printer calculates the speed that the filament drive wheel has to turn to meet the requirements in the gcode. So, up to and only up to a point, the size of the nozzle is not too important; there will be less pressure with a .55 nozzle because the filament just flows through the nozzle to create a .5mm line and more pressure with a .45 nozzle because the filament needs to be forced through the small orifice fast enough to create a 5mm line. Once one goes beyond that point one will end up with a line that is not 5mm wide and/or failure because the printer drive system cannot cope with the pressure it imposes. 

 

Hopefully that is broadly right. One aspect that still eludes me in terms of where it fits in, is that my printer, driven by Repetier Hoist, knows what size nozzle it has (I assume!) because that is defined in the Repetier Host printer settings. I am not understanding what the printer end does with this knowledge, perhaps nothing?

Edited by yellowshark
correct 4.5 dimension

Share this post


Link to post
Share on other sites
On 4/26/2018 at 8:17 PM, yellowshark said:

If one specifies a line width of 0.5 then Cura will calculate the volume of filament to be extruded, per second or whatever, to create a .5mm line over the given distance in the time allotted from the print speed.

Almost. Cura calculates the total extrusion for the entire line. The print speed is irrelevant then.

 

On 4/26/2018 at 8:17 PM, yellowshark said:

I assume that the printer calculates the speed that the filament drive wheel has to turn to meet the requirements in the gcode. So, up to and only up to a point, the size of the nozzle is not too important; there will be less pressure with a .55 nozzle because the filament just flows through the nozzle to create a .5mm line and more pressure with a .45 nozzle because the filament needs to be forced through the small orifice fast enough to create a 5mm line. Once one goes beyond that point one will end up with a line that is not 5mm wide and/or failure because the printer drive system cannot cope with the pressure it imposes.

Correct!

 

On 4/26/2018 at 8:17 PM, yellowshark said:

One aspect that still eludes me in terms of where it fits in, is that my printer, driven by Repetier Hoist, knows what size nozzle it has (I assume!) because that is defined in the Repetier Host printer settings. I am not understanding what the printer end does with this knowledge, perhaps nothing?

I don't know what Repetier does with it. They work with CuraEngine though so if that nozzle size directly drives line width they'll do some translating.

Cura knows the nozzle size as well and does a few things with it. Here's a 100% complete answer for those who are interested:

  • Most significantly: Set the default line widths to use. Our formula for this is that the line width should be 7/8ths the nozzle size. This seems to give best results, since it causes lines to slightly overlap, producing a stronger part. For some lines, such as infill, we use a bit thicker line width in some profiles.
  • Determine how far inwards the nozzle wipe starts on a prime tower. You want to wipe off the whole nozzle.
  • Determine how short skin lines can be before they get merged together. You can see this happening when you have a piece of skin inside a sharp corner: The last skin line in the pointy corner will sometimes not be parallel to the rest of the skin lines any more but will be aimed inward into the corner. This threshold depends on the nozzle size. I think the idea here was that the nozzle size is sort of the limit of the amount of detail you can apply in such a corner.
  • Default value of several detail settings: Outer Wall Wipe Distance, Outer Wall Inset, Minimum Support X/Y Distance.
  • Warning threshold for lots of settings in the interface are dependent on the nozzle size (like 50 settings or so).
  • Like 1

Share this post


Link to post
Share on other sites

This has been a really interesting thread to read, I'm new to ultimaker (but not new to 3D printing - although not an expert) and have been struggling putting together a multipart model. Found that the fit was too much of an interference fit, i.e. parts would not go together. Having printed a 20mm calibration cube, I get the following, Z=20.01 X=20.32 and Y=20.20. The X & Y being that much over causes parts in the model not to fit. I've not checked the model expected diameters yet, but was wondering if anyone had any tips on how I can improve the X & Y accuracy. I have a UM3 that is one week old 🙂

TIA. 

Share this post


Link to post
Share on other sites

Sorry I have not responded back with any updates, too busy printing to get back to calibrating.  When I started at this company they told me they didnt have a use for a printer...then I convinced them to buy and 6 months later this thing NEVER stops printing.  Its crazy....my full time Engineer gig is now more than 50% printer technician!

 

Anyway, @yellowshark's tests did reflect my results pretty well.  I have just been sticking with the horizontal offset setting, which works well MOST of the time.  The rest of the time I try to fix the model manually before printing it, or sand/machine it down later. (We had one fixture with a fairly complex surface, so I printed it out without the Horizontal offset setting, and then they ran it through a CNC to clean up the surfaces and hole sizes).

 

On 5/2/2018 at 1:55 PM, LaserBrain said:

This has been a really interesting thread to read, I'm new to ultimaker (but not new to 3D printing - although not an expert) and have been struggling putting together a multipart model. Found that the fit was too much of an interference fit, i.e. parts would not go together. Having printed a 20mm calibration cube, I get the following, Z=20.01 X=20.32 and Y=20.20. The X & Y being that much over causes parts in the model not to fit. I've not checked the model expected diameters yet, but was wondering if anyone had any tips on how I can improve the X & Y accuracy. I have a UM3 that is one week old 🙂

TIA. 

 

This results sound pretty good to me.  Maybe keep an eye on the X vs Y dimensions, you might have a loose belt.  The "Horizontal Expansion" setting is probably what you want to play with.

 

@ghostkeeper mentioned that the rule of thumb is 7/8 nozzle diameter= linewidth, this creates overlap, thus a stronger part.  It would stand to reason, then, that if you set the line width to 100% nozzle diameter, then although the part would be weaker, maybe it would be more dimensionally accurate? (on outside corners/surfaces at least) Since the "overlap" portion of the line would not be shifting the 1/16 nozzle diameter outwards? 

Share this post


Link to post
Share on other sites

Whilst I have not done extensive testing I think I agree with you @Jakeddesign on the 7/8 nozzle diameter. Whilst I have 0.4mm nozzle I measured that it was extruding a diameter of 0.45. When I say measured I did this by manually extruding 10mm of filament and cutting it off and measuring the diameter. I consistently got 0.45 with a couple of +/- 0.01 mm variations, During my testing and configuration work I found I had greater accuracy setting the line width to 0.45. Now, I am not sure on the implications of this but I could not set vs 2.n to have a nozzle size of 0.45mm as when you exit the dialogue box Cura rounds down to 0.4mm - so you either have 0.4mm or 0.5mm - I think vs 3. may have removed he nozzle size setting completely (which fries my brain a bit). Anyway I went back to 15.4.6 for most of my testing because you can set 0.45mm in the old Cura., Where I could get the same level of accuracy with the new Cura I know not. I know that to a certain extent you can increase/decrease the line width and get accuracy but whether that extends to a deviation of +/- 0.05mm again I know not.

 

Hi @LaserBrain in terms of accuracy the two thinks that immediately come to mind are firstly checking that your belts are not loose and secondly recalibrating your stepper motors. Now you have a brand new printer which I assume has a standard steps/mm setting which UM will have tested, probably extensively; I have no idea if they test each new machine and recalibrate that setting if required. You might like to ask them and indeed what tolerance they expect on the X/Y accuracy. Personally, with the right settings, I would expect you to be able to get down to 50 microns variation as a an absolute minimum. 

 

Sorry just to stress, with a brand new machine I would not want to suggest that you start playing with the stepper calibration without having a word with UM first.

Edited by yellowshark

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Announcements

  • Our picks

    • Architect Design Contest | Vehicles.
      We're open for entries! - Design and submit your 3D designs of architectural entourage - vehicles - for a chance to win a large filament pack. Presenting an idea, an architectural design or something as big as an urban project isn't easy. A scaled model can really help to get your idea across.
        • Like
      • 19 replies
    • What The DfAM?
      I'm Steve Cox, an experienced engineer familiar with 3D printing. I wanted to share some DfAM guidelines with this community to help and make stronger parts.
      I'm also an Autodesk Certified Instructor for Fusion 360, so many of the images in ...
        • Thanks
        • Like
      • 18 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!