Jump to content

Reliable Protocol for Measuring Printer Accuracy

Recommended Posts

Posted · Reliable Protocol for Measuring Printer Accuracy

Hey there guys,

I was here a while ago asking around to find some hard numbers on the printers accuracy, precision and backlash. Nobody really had much, so I picked up a gauge dial and did a series of measurements on the three axes.

I was hoping to begin a trend here where people can measure and post the qualities of their machine, in order to begin devising a database of average assembled machine quality. In addition, this can really help give some true figures on the advantage of the direct drive design, the GT belts and pulleys, or any other combination of parts.

So I guess I should start with my data

It is very important to mention here that I was using at this time a gauge dial with 12 um resolution with about 15-25 um of hysteresis (aka the normal $40 dial you find on amazon) Since then, I now own a $350 dial that has 1 um resolution and only 3 um hysteresis, but I haven't retaken the measurements yet.

For motion in the X or Y axis (my data was about the same for both):

Protocol - tell machine to move using GCode by setting steps per mm to 16 and then moving the appropriate number of steps. Measurements repeated ten times.

Full Step - (i.e. 16 steps):

Expected Distance: 0.203 mm

Average Distance - 0.322 mm

Error in Distance Travelled as % of Avg Distance - 37.62%

Std Deviation as % of Avg Distance - 3.71%

Half Step - (i.e. 8 steps):

Expected Distance: 0.1016 mm

Average Distance - 0.1629 mm

Error in Distance Travelled as % of Avg Distance - 36.93%

Std Deviation as % of Avg Distance - 9.64%


Microstepping (6 steps used here)

Expected Distance: 0.076 mm

Average Distance - 0.1245 mm

Error in Distance Travelled as % of Avg Distance - 38.78%

Std Deviation as % of Avg Distance - 15.91%

This data points out an important trend - the increase in step variability as you move from full to half to microstepping. The 36-38% consistent offset in the desired motion was surprising, but it is clear that the consistency of that across all three trials demonstrates the difference between 'accuracy' and 'precision' here.


In addition, I looked into my backlash, and it averaged at 773 um, with a standard deviation of 133 um. For this measurement, my protocol was to move on one particular axis and measure at that position. Then the machine would be told to move right 10 cm than left 10 cm. The difference would correspond to the backlash.


After I finished these measurements I began the search for a ballscrew and recirculating guide system, since I need this box to move with about 4-5 um resolution with about 3-5 um of accuracy.


Let me know how your box holds up! If other people are willing to take the challenge I'll even retest mine with the more accurate dial in order to get more precise results.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    Oops - can a mod please delete the other topic, it seems to have duplicated after I went in for an edit and added a few numbers that I had left off the first post.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    1) Nice.

    2) 3 um? Wouldn't you need laser interferometry to get that kind of accuracy?

    3) What are you trying to do with your um that you want this kind of accuracy? For example is this for making 3d printed objects or are you planning something different? For example I have seen errors as high as .5mm on things like diameters of circular holes in my part or in width's (in x or y direction) of a printed part. For example PLA shrinks between the time when you print and when it has cooled to room temperature.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy


    But even if you could have a super accurate UM, you would still have the issue of the varying filament diameter ?

    Yes, the flow-rate can be adjusted on the Ulticontroller, but wouldn't it be nice to have some device that can register the filament diameter in real time, so the extruder process can be adjusted accordingly in advance..?

    Then that device could send a signal to the Ulticontroller, and adjust the flowrate, just like you can do manually.

    Only difference, the adjustment takes place before, instead of after an extrusion problem occurs.

    Problem is, UM would have to incorporate such a device input into a new ulticontroller....

    Such a device could possibly be made with a sort of Hall-sensor, capable of measuring very small movements caused by the varying filament diameter.

    Maybe a little off topic, but still an interesting idea for future upgrades....?


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    It would be tough - you would need to accurately know the distance between this device that measured the diameter and the spot where the material is melted. So that when a thinner piece go to the nozzle you wouldn't adjust steps/mm until that spot got to the melt point.

    Another way to take care of this is by having better quality filament. Some manufactures are better than others.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    I agree,

    More accurate filament diameter would be the best solution.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    If you're really changing the number of steps/mm to do this test, I'm not sure that you're really testing the difference between micro-stepping and not microstepping. All you are changing is the number of steps that gets executed to move from A to B (and hence getting a shorter distance moved as you request ever-lower steps per e).

    The firmware calculates the total number of steps needed to perform the requested move (based on steps per e), and then pulses the motor lines that many times. How far each of those pulses moves the motor depends on the configuration of the steppers. Off the top of my head, I don't remember how the microstepping is set up on the X/Y axes - but in any case, the printer is going to be using exactly the same microstepping in each of your test cases, just not moving as far. I'm afraid you may just be seeing the inaccuracy in your measuring tools as you try to measure smaller and smaller moves.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    Maybe it's just me, but wouldn't this be the expected outcome? By utilizing microstepping, you are essentially semi-pulsing the motor to place it in between steps, which will get you closer (more accurate) but will not be as precise as a hard step. You could counteract this by setting up a gearing system to take advantage of the precision of hard steps and the accuracy of microstepping by essentially gearing the step down by 1:16, but then you are loosing your element of speed. I guess it all comes down to what you want the printer to be used for. If you want something that requires that level of precision, I don't think the UM is the best tool for the job (belts, variation in filament, environmental conditions, etc). To me, if that precision is required, I'm buying a SLS/SLA printer that negates several of those constraints of the UM.


  • Link to post
    Share on other sites

    Posted · Reliable Protocol for Measuring Printer Accuracy

    I'm in need of such fine precision since I am working towards tissue & organ printing.

    I was hoping instead to use this section of the forum to discuss the advantages of each of your individual setups, in repeatable mathematical ways so as to truly test if, for example, direct drive will improve my variability enough to warrant setup.



  • 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
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
          • Like
        • 7 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
        • 0 replies
    • Create New...