Jump to content

How to calibrate X,Y and Z-STEPS?


asb

Recommended Posts

Posted (edited) · How to calibrate X,Y and Z-STEPS?

Hi,

I am trying to get dimensionally accurate printouts with my factory-fresh UM3. During set-up, I went through the usual calibration procedures - build plate levelling with the "calibration card", and running the "Z and XY offset calibration" with the supplied "XY calibration sheet".

My prints look visually good. Print bed adhesion is excellent. I thought everything would be fine.

But then I noticed that my UM had severe issues reproducing technical models accurately. This affects dozends of pre-designed models from the InMoov project like

 

 

These parts need to be interlocked after printing, but they do not fit. The models should be perfeclty fine as they have been printed and built dozends of times in the past years. Some sanding and deburring is required, obviously, but I would have to grind down almost half a millimeter of material to make these parts fit. Gael (the InMoov designer) recommends to calibrate the printer.

To do so I downloaded a "STEP Calibration Piece (X, Y and Z axis)" from Thingiverse (https://www.thingiverse.com/thing:195604)

The calibration object is 100mm on X and Y axis and 50mm on the Z-Axis.

Measured with calipers, my test piece is 100,38 × 100,33 × 50,16 mm, so there actually is an offset.

The instructions say:

"You can then calibrate your STEPS using this formula:

X,Y-Axis: 100 / [measured length in mm] [current STEPS]

Z-Axis: X,Y-Axis: 50 / [measured height in mm] [current STEPS]"

Where do I find the "current STEPS" value, and where do I enter the corrected values?

Thanks!

Edited by Guest
  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    You cannot set "current STEPS" without compiling your own firmware. But the good news is: you don't need to. What this person has done is very strange IMHO. The XY values should be 80. He is adjusting an offset with a gain. I bet that when he prints a calibration unit half the size, he would arrive at different values.

    The XY resolution is determined by the stepper motors and the belts/pulleys. They are exactly 12.5microns/step (thus 80 steps/mm).

    The 0.3-0.4mm offset that you measure comes from inaccuracies in the printing process. One example is the "elephant foot".

    Another example is that holes are always printed a little smaller than designed in CAD. Due to various causes (search the forum).

    Do you use Ultimaker filament? If not, you might need to tweak the print settings to get optimal results.

  • Link to post
    Share on other sites

    Posted (edited) · How to calibrate X,Y and Z-STEPS?

    Other source of imprecision while using default UM3 profiles is that because it uses so low jerk, it creates extra amounts of extrusion due the slow speed when changing directions.

    You can edit that on advanced mode if you unhide the options bu default.

    More about this

    https://ultimaker.com/en/community/50090-overextrusion-on-edges

    Also to change steps values on UM3 you don't need to build your firmware. You would need to activate Dev Mode, logging by ssh to your machine IP (ssh root@ipaddress password ultimakwr) and then find the jedi.json on the share/usr/griffin/griffin/machines) and then edit the text file using vi editor). Ofc all this if done wrong can brick your machine (not super dangerous but just a warning about changing values).

    Edited by Guest
    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · How to calibrate X,Y and Z-STEPS?

    Also, a better way to calibrate stuff is to check the final siE, then use a rule of three and apply a negative or positive Horizontal Expansion on cura (hidden option). That should give something more easier to control.

    Edited by Guest
    • Like 1
    Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    Hi,

    thanks for your reply. Sorry, I have no idea what "the final siE" or "a rule of three" is.

    If my UM3+ prints with an offset of approximately 0.3 mm on the X and Y axis, can I just enter "-0.3 mm" in the "Horizontal Expansion" setting to get accurately sized prints?

    I really do not understand why this problem even happens with such an expensive device like the UM3. InMoov is designed to be printed even on cheap 3D printers, and nobody else seems to have to do these hacks, except for very few people with totally uncalibrated DIY 3D printer kits…

    • Like 1
    Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    Hi,

    thanks for your reply. Sorry, I have no idea what "the final siE" or "a rule of three" is.

    If my UM3+ prints with an offset of approximately 0.3 mm on the X and Y axis, can I just enter "-0.3 mm" in the "Horizontal Expansion" setting to get accurately sized prints?

    I really do not understand why this problem even happens with such an expensive device like the UM3. InMoov is designed to be printed even on cheap 3D printers, and nobody else seems to have to do these hacks, except for very few people with totally uncalibrated DIY 3D printer kits…

    The issue, except the corners where slow yerk affects how filament is printed (low yerk low ringing, high yerk more accurate but ringing effect on print), the issue is how the filament cools down/expands while being printed.

    About Horizontal expansion, afaik works exactly like that. More info, and also a very good guide about hidden options in cura and how to optimize stuff:

    https://ultimaker.com/en/resources/21932-mastering-cura

    • Like 1
    Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    I tried the Cura setting for “Shell - Horizontal Expansion”. For a 0.4 mm nozzle size and a layer height of 0.2 mm ("Fast" profile) I guesstimated an offset of -0.2 mm.

    With this compensation, the InMoov parts now come just right out of the printer; I do not even have to sand them down anymore.

    Now I just have to grind down all the parts I already have printed in the past weeks, *sigh*.

    Thanks for pointing me to the "Hoizontal Expansion" setting!

    • Like 1
    Link to post
    Share on other sites

    • 1 year later...
    Posted · How to calibrate X,Y and Z-STEPS?

    I am encountereing the same issue on an S5. All engineered parts are distorted and I am advised to calibrate the printer.

     

    What happens with the factory calibration is that prints are distorted with a different offset on each axis (yes, even with Ultimaker 'ToughPLA' filament and the factory profiles). This offset won't be noticable if you are printing artistic objects, but everything breaks what needs to have defined measurements, e.g. mechanical parts that need to fit together. I have printed a bunch in the past month, and it all falls apart respectively does not fit together because the offsets are different on each axis.

     

    I measured the offset with a simple calibration object (100mm on X and Y axis and 50mm on the Z-Axis), printed in Ultimaker Tough PLA. The resulting object is 100,5 × 100,3 × 49,8 mm. So on two axis, objects grow and on one axis objects shrink relative to the measurements they are supposed to have. With larger objects you get a deviation of up to 1.5mm bigger and 1.2mm smaller, which can result in completely unusable results. You simply can neither grind off 1.5mm from a mechanical part, nor you can not add 1.2mm material.

     

    The “Shell - Horizontal Expansion” setting does not help in this case as two offsets are positive and one is negative, so each global compensation would be counterproductive for the other distortion and make everything worse.

     

    Since the S5 seems not to provide an end-user method to accomplish measured (exact) printouts for mechanical parts, there are two approaches:

     

    1) Tinkering with some jedi.json in share/usr/griffin/griffin/machines as suggested here. I have not tried yet and I do not want to do this, but there seems to be no better way as of now.

    2) A theoretical and much more end-user friendly and less risky workaround would be an extension for the “Shell - Horizontal Expansion” settings in Cura. Currently this is a global setting which affects X-, Y- and Z-axis equally, as far as I understand it. With an extension it could be possible to compensate the offset separately for X-, Y- and Z-axis. Theoretically and with some guessing, that could work similarily good like a real calibration. However, this is not available in the current Cura version so it's only a theoretical option.

     

    Is it really required to compensate for the printer's miscalibration by facoting in the offsets into the model?

     

    Am I missing something?

    • Like 1
    Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    Dimensional accuracy is a difficult subject. There are many many causes for inaccuracy. Some causes depend on temperature, some on the printing process parameters, some are in the mechanical tolerances on parts etc.

    It is a topic that is being addressed within R&D, but I realise that does not help you now.

     

    I would not advise to adjust the scaling of X Y and Z. That is too big of a simplification, and afterwards when you print objects with other dimensions your calibration will not work, and possibly make things worse.

     

    My own experience is that often the inaccuracies are pretty reproducible. A 4 or 5mm big hole prints always 0.25mm smaller than in CAD. So I compensate for that in CAD.

     

    You say you have measured inaccuracies up to 1.5mm. That is pretty extreme, and indeed can make parts unusable. Can you share an example of that? An STL and actual measurements, and/or a photo?

    • Like 1
    Link to post
    Share on other sites

    • 2 weeks later...
    Posted · How to calibrate X,Y and Z-STEPS?

    There are some tests that I did initially with my UM2 to learn about several important factors of printing to learn how to get things more dimensionally correct. One was by creating a 1cmx1cmx1cm cube then placing an array of 16 or 25 equally spaced cubes in cura on the print bed. This tested several things including:

     

    1.) With current settings how accurate are the cubes individually and how different are they across the entire printing surface. You might note that your bed is slightly un level or that fanning causing different cubes end up slightly different because of fanning near a wall or that cubes near the front cool faster on one side because they are near the front opening of the machine. You may also note that the bed temp has slight variations across the entire surface which do not necessarily cause a great deal of change to happen but they do contribute to .01mm at times.

     

    2.) You may also note how the material is printing and how sharp edges can get with the material. Edges can get pretty sharp. The original provided material is usually best to do this with as it should be the first material that you learn about. Some things you may also see is how when the fan goes on and the layers build the shrinkage of the material may change between the build plate and the currently layer. Usually low layers are exact then depending on the material you might see the wall shrink in slightly until you get to about 3-5 mm high (if you are using full fan right from the 2nd layer). Lower initial fan usually helps this and you only need full fan when you are trying to bridge from area to area.

     

    3.) Between cubes you will also see how effective material pulls are and how they differ between layer heights, if it is leaving a trail if there are pull differences between the cubes and if there are differences between areas on the bed.

     

    I wouldn't recommend going all the way to the edge but go kinda close to the printable edge with each cube placement. I have been able to get resolutions that fit by placing offsets in 3D files that I created by +/- 0.008. I'm not sure if your parts have that built on or if they are exact edges.

     

    Without altering the file you could note that part areas that cool fast seem to have more shrinkage then slower cooling parts areas, smaller parts seem to shrink less than large parts (add more space between in infill with larger parts) one more thing that you can try is to turn off the fan and repeat the cube array print to see what happens with your material. You'll notice difference between printing with fan and without fan.

     

    You could also speed up the print slightly or reduce the extrusion speed slightly to thin down excessively thick walls.

     

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    i am trying to find the same answers for my ultimaker 2 extended. I know my steppers are off because i brought my magnetic base and 1" dial gage i positioned it on the extruder. and by using the manual jog mode in Repetier host i move in each axis 25.4 MM. the x axis and the z axis were only slightly off and not worth bothering with, because i only do artistic models. but the y axis is over 7.62MM off if any one could please tell me how to access the stepper motor setting " in plain english" i would appreciate it 

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    If you are controlling the printer through repetier host then you can adjust steps/mm using gcodes.

    M92 is used to set steps/mm for example if the Y axis is currently 80 steps/mm but you want to increase that by 10% so it will move farther then you want 88 steps/mm:

    M92 Y88.000

     

    After changing it and you are happy do a M500 to save settings.  If you don't do M500 it will go back to the previous value when you power cycle the machine

    M500

     

    To see what the steps/mm currently is for each axis (and all the other settings) do M503 and it will display all the current settings as gcodes.  For example the steps/mm will look something like:

    M92 X80 Y80 Z200 E250

     

    Which tells you the steps/mm for each of the 4 steppers.  You can see what all the gcodes mean here:

    https://reprap.org/wiki/G-code#M503:_Print_settings

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    WOW gr5 thank you very much. I will try this after work today. I like the fact that i can save theses setting with an M500 code. I knew I could adjust the steepers in the EEPROM setting in Repetier but i didn't know if they would be saved to my printer Firmware.I'm guessing you use Repetier host. Do you like it? Me I'm a CNC machinist and i like to know what my machines are doing.                                                                                    Thanks again  mark

     

  • Link to post
    Share on other sites

    Posted (edited) · How to calibrate X,Y and Z-STEPS?

    @mark269, you say your Y-axis "is 7.62mm off". What exactly do you mean with that? If you have an (mechanically, and software-wise) unmodified UM2, using "steps per mm" to compensate for a dimensional error is not a good method.

    First of all, to be sure: with the Y direction, you mean front to back right?

    Could there be another reason that your Y dimension is not printing well? Is your printhead moving smooth if you move the printhead (by hand) around the buildplate surface? Are the shafts well oiled?

    Are the pulleys screwed tight to the shafts?

    Does the dimensional error scale with the size of your printed object?

     

     

    Edited by tomnagel
  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    Tomnagel what i mean is when i placed a 1" Dial gage against the extruder and enter a command to move 25.4mm in the y axis the extruder only moved .700 inches/17.78mm   My ultimaker is not modified as far as i know i bought it used on E-bay.  Front to back? I am a CNC programer, set up, operator. I run 2 half million dollar 7 axis CNC lathes. we don't use terms like front to back. LOL we talk in polar coordinate . and yes my machine is well maintained. Does the error scale I dont know i only make artistic model, like a life size storm breaker. you know Thor's new weapon. but I like my machines to be accurate.

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    I need to make a correction my Y axis is not 17.78 mm off it is 1.77 mm off My Bad

     

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    So you try to move 1 inch, and the extruder actually moves 0.7 inch? So an error of 0.3 inch?

    and what happens when you try to move the extruder 2 inch? Is the error linear with the length of the move?

     I am asking because I don’t know a single cause that can influence the gain (stepspermm) without changing the hardware. 

     

     

     

     

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    Tomnagel I dont have a 2" dial gage. but when i moved a half an inch i got an error of .150  thanks for trying to help but it turns out that after calibrating with my dial gage did not work. 3d printers are not CNC machines. the moves are to rapid. and the printer has no why of knowing its true position. it has to guess by how many steps it takes. so after calibrating with a dial gage i was able to enter a G01 move command and was able to get a repet position every time but when running the printer the round part came out oval. so setting your stepper part by measuring your print is the best way of calibrating your printer

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    I have exact the same issues with my ultimaker3. I think the answers of the ultimaker people are not right too. Really strange that the Ultimaker company does not have more focus and knowledge about x, y and z calibration...

     

    The horizontal tuning works indeed, but equal for x and y: that's silly...

     

    x, y and z callibration is important to make accurate prints like Inmoov parts.

     

    I have tested the z-stepping first: moving 100mm by command gives 107mm..

    i have changed the z-steps, now it's doing exact the requested 100mm.

    The printed Inmoov parts has now a better fitting, but it could be a bit better.

     

    An 3D-printer must do exactly what the gcode wants, x, y and z tuning must be accurate. 

     

    Will tune the x and y tomorrow, will let you know how it works..

     

     

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?
    On 7/15/2017 at 10:36 PM, neotko said:

    Other source of imprecision while using default UM3 profiles is that because it uses so low jerk, it creates extra amounts of extrusion due the slow speed when changing directions.

    You can edit that on advanced mode if you unhide the options bu default.

    More about this

    https://ultimaker.com/en/community/50090-overextrusion-on-edges

    Also to change steps values on UM3 you don't need to build your firmware. You would need to activate Dev Mode, logging by ssh to your machine IP (ssh root@ipaddress password ultimakwr) and then find the jedi.json on the share/usr/griffin/griffin/machines) and then edit the text file using vi editor). Ofc all this if done wrong can brick your machine (not super dangerous but just a warning about changing values).

    Hi, neotko,

    does the path mentioned above work also on an S5? I was able to log in in dev mode, but if I send an "ls" command I am not able to see all the folders. Since I am Not that expert in Linux, should I write the following commands to find the jedi.json file to be modify?

    cd share/usr/griffin/griffin/machines

    vi jedi.json

     

    Beside this method, cannot one simply add in Cura in StartGcode an M92 followed by the new esteps for each single axis without modifying the firmware? I tried it but the calibration cube printed had the same tolerance errors of the first one. Therefore i assume that the M92 is not accepted..

     

    Thank you for the support

  • Link to post
    Share on other sites

    Posted · How to calibrate X,Y and Z-STEPS?

    There's a lot to unpack here.

     

    If you don't know "ls" well then you probably don't know the vi editor and this might be dangerous.  Removing or adding a single quote or semicolon or comma to the json file will make it so the printer doesn't boot fully anymore and the boot process will fail before sshd is started (ssh daemon) which means you can no longer ssh to fix your typo which means your printer is bricked and you need to do a more complicated process to fix it.  The "vi" editor is confusing.

     

    You have a UM3, right?

     

    Note that neotko wrote that post a few years ago and he is less active on this forum now (about one post per month maybe).

     

    Do not calibrate x and y and z steps with your calibration cube.  You want to calibrate using as much travel as possible so at least 200mm.  It's best to set X to 0 and line up a good ruler and move X to 220 and check accuracy that way.  However UM made it hard to adjust steps/mm for a very good reason.  The printer is already calibrated.

     

    The default settings for Cura on the UM3 DO NOT aim for accuracy - they aim for speed and a good looking part.  Ultimaker came out with new profiles that aim for accuracy but initially only for the S5.  You can so your own accuracy settings just pick your favorite profile and change these settings:

     

    Line width: 0.4
    Wall thickness: 1.2
    Top/Bottom thickness: 1.2
    Speeds: 35-40 (all speeds, except travel)
    Jerks: 20
    Horizontal expansion: -0.03
    walls: 3
    Inital Layer Height = 0.1
    Slicing Tolerance = Exclusive
    Combing Mode = off
    Outer before Inner Walls = Checked

     

    I disagree slightly with these - e.g. I prefer bottom layer 0.3 and I like to set initial layer expansion typically to a negative value (depends on the part) but these settings will greatly increase your dimensional accuracy.

     

    But your calibration cube will look like crap as it will have lots of ringing on the letters (e.g. "X").  But if you measure it with a caliper that ringing will be too small to measure anyway.

     

    To get the printer to best meet your requirements you have to explain your requirements.  You can't have everything all in one profile (e.g. speed, accuracy, visual quality).  And everyone's definition of visual quality is different.

     

  • 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
        • 18 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.
          • Like
        • 0 replies
    ×
    ×
    • Create New...