Jump to content
Ultimaker Community of 3D Printing Experts
dryphi

Calibrate extruder with Cura 15

Recommended Posts

How do I calibrate the extruder distance with Cura? I'm using 15.04.2 at the moment with a MP Select Mini. I'd like to simply extrude 100mm of material to determine if the software is properly calibrated to my 3D printer. Next, I'd like to save any results of the calculations to Cura somewhere as an extrusion multiplier (or similar). Again I'm unable to find any related settings in the Cura software for this.

 

These settings seem like a necessity for any slicer software, yet I've been unable to find any instructions to accomplish this basic calibration step.

 

Thanks!

Edited by dryphi

Share this post


Link to post
Share on other sites

I've used Pronterface to do this in the past. The on screen controls can be used or the command line.  An M92 Exxx code will redefine the extrusion constant which can be delivered via the command line in Pronterface if you want to change it.  I think M500 on the command line would then save the change.

 

I see testing and resetting the extrusion constant as an essential maintenance and calibration procedure that anyone might need periodically.  This is especially important to off brand or homemade printers or secondary market extruders.

Share this post


Link to post
Share on other sites
3 hours ago, mastory said:

I've used Pronterface to do this in the past. The on screen controls can be used or the command line.  An M92 Exxx code will redefine the extrusion constant which can be delivered via the command line in Pronterface if you want to change it.  I think M500 on the command line would then save the change.

 

Thanks for the insight. Pronterface? Is that a software? I'm trying to do this in Cura and I don't see anywhere to enter the extrusion multiplier (if necessary).

Share this post


Link to post
Share on other sites

OK I would suggest a different way. I assume you have levelled your bed using a sheet of paper or card. I will also assume you have a glass plate fitted. I will also assume your Z height is 200, of course you will need to change that probably.

 

What you need to do is to put a z-offset command into your start gcode in Cura. You can calculate it as    Z height - paper/card thickness- glass plate thickness = NNN.NNN

 

Place the line of code into your start g code so the line is preceded  somewhere by an absolute positioning command

 

G90                              ;absolute positioning

G92 ZNNN.NNN          ;set z-offset

 

Print a skirt line. No good? Change the G92 command either reducing or increasing the extruder distance. I normally change in steps of 0.1mm until I get close then switch to steps of 0.04 mm until it looks good (or if .1mm either way is worse I will start again using steps of 0.04mm). Then I will go both ways with 0.02mm to see which of the 3 settings is the best

Share this post


Link to post
Share on other sites

Okay... To clarify I'm not trying to set the Z-offset (anyway if this was off I would probably just move the bed up and down until the first layer printed correctly).

What I'm trying to do is see if 100mm of material is actually extruded when Cura tells the printer to extrude that much material. Normally this is accomplished by measuring along the filament and putting marks at 100mm and 110mm, giving the command to extrude 100mm, then measuring how much the filament actually moved and entering the results of the calculation into the printer software as a correction value.

 

With MatterControl for instance this is very easy and there's an "extrusion multiplier" field to enter the correction value if it's under/over extruding:

https://www.youtube.com/watch?v=Jboqj0nkNFw

 

I can't for the life of me figure out how to make Cura just extrude 100mm of material. Then, even if I accomplish that, I wouldn't know where to store an "extrusion multiplier" type value within Cura so that it is corrected forever.

 

Cura seems to work better with my printer hence I prefer to use it but there are fewer "advanced" options for this type of adjustment, or at least I don't know where to find them.

 

Thanks

Edited by dryphi

Share this post


Link to post
Share on other sites

Ah sorry for my misunderstanding. For a straight line Cura has an accuracy of at least 100 microns, I normally see 50 microns or better, down to the point when the skill of the measurer comes into play. I do not know what tolerance you are looking for but if we are making a part to fit somebody else's assembly (normally injection moulded) we tend to find that the assembly has a larger tolerance than our target. Of course the printer in use has a large part to play as indeed will the Cura settings you select. Would scaling the model resolve your problem with the printer? I am thinking that if your 100mm always came out as 110mm you scale all models down by 9.09%

 

Oh surely just print a 100mm * 100mm square and just measure the first line?

Edited by yellowshark

Share this post


Link to post
Share on other sites

@dryphi wants to calibrate his extruder feed constant.

 

Pronterface (also known as Printrun) is a free and open source program that lets you control (all?) arduino based printers via USB.  It has a very friendly user interface for manually controlling printers, and a command line printer interface.  It also allows sending Gcode files to print.  You could slice a part in Cura (or other slicer) and send the Gcode file to the printer via Printrun.  It also has some great graph widgets for watching your temperatures etc.  IMO it is a very nice, lightweight, powerful and clean program.

 

Some older versions of Cura had a similar printer control interface.  I don't know which ones.

 

The GUI in Printrun can do some of what you want, and the command line interface could be used to issue the commands I mentioned above.

 

Typed at the command line:

 

G91:  set coordinates to Relative

G0 E100;  tells your printer to extrude 100mm

 

M92 Exxx.xx; redefines your extrusion constant where xxx.xx is the new scale factor

 

You could search M92 and your printer brand and model and get a starting point.

 

By trial and error you can issue the above commands until you have you extrusion constant precise.

 

Then  add

 

M500;  to save the value

 

Edited by mastory

Share this post


Link to post
Share on other sites
3 hours ago, mastory said:

@dryphi wants to calibrate his extruder feed constant.

↑↑ YES :)    I guess I wasn't using the correct terminology.

 

Great thanks. So I guess there's no setting in Cura for these settings, hence I have to save them to the firmware, correct?

Will G500 make the new settings permanent? I also heard on the video below to use M500, what's the difference?

After searching for "M92 MP Select Mini" I did find this page which has a helpful video (applies to many printers):

https://www.mpselectmini.com/extruder_calibration

 

Also I understand Pronterface is a Linux-based program? We're using a Windows machine. There is an interface to send G-code though.

Edited by dryphi

Share this post


Link to post
Share on other sites
8 hours ago, mastory said:

Yes, I was quite tired when I wrote above G500.  Corrected.  Save parameters is indeed M500.  For a whole list of gcode commands look here.

No problemo. How do you know if your 3D printer uses RepRap firmware? Or is that just the standard that everybody uses so it's a safe assumption?

Share this post


Link to post
Share on other sites

Wanted to post a quick follow-up for anyone with the same question. What's below was compiled from several sources. These instructions apply to Cura 15.04.6 slicer running a MP Select Mini v1 over USB cable, although I'm sure they would work for others as well and the G-code should be the same.

 

Enable Pronterface UI:

File - Preferences 

Under "Printing window type" make sure "Pronterface UI" is selected.

 

Open Pronterface:

Go to File - Print to open the serial port and pronterface UI (don't need to have an STL model opened).

 

Report current settings:

M503

Copy these down, in particular the values under "Steps per unit:" which will give your current extrusion multiplier (Exx) in steps per mm.

 

Set to relative positioning:

G91

 

Reset extruder:

G92 E0

Sets the extrusion length to zero and stops any extruding or retraction. Not sure if this resets the heating elements or not...

 

Set extruder temperature:

At this point you want to set the extruder to a temperature that will melt your material. I just set the extruder temperature manually on the device although this could be set using G-code instead (e.g. M104 S195 to set it to 195 C).

 

Mark positions on filament:

While the extruder is warming up go ahead and mark two lines on your filament at distances from a known position such as the cold end (mine is a Bowden setup so I measured from where the filament enters the extruder). Mark lines at 100mm and 110mm.

 

Extrude the material:

G1 E100 F90

This command literally means "Go to position, Extrude 100mm of material, at 1.5mm/s" (for 1.75mm filament, use around F30 for 2.85mm filament). The filament should extrude slowly and the first line should move right to the known position. If not that means there's a discrepancy between the stored extruder multiplier and the distance the filament actually moves. Measure the distance from the known position (e.g. the cold end). If you've over extruding you'll have to measure to the 110 line. In either case some easy math will tell you how far the filament traveled.

The new extruder constant will be: 100 * old steps per mm / actual length extruded.

 

Enter new extruder constant:

M92 Exxx

The "xxx" in the above code should be the new number. For me the actual code was "M92 E103"

 

Store settings:

M500

 

It might be a good idea to perform this calibration several times in a row (starting with G92 E0) to hone in on the correct value. Don't need to be super precise just get it within a millimeter or two.

 

There's lots of other resources on the web but I wanted to compile everything into one easy to reference page. Please respond if anything needs correction or clarification. These instructions worked great for me however.

The best instructional video I've found is here:

https://www.mpselectmini.com/extruder_calibration

 

Edited by dryphi

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

×

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!