Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
duesentrieb

Retraction optimization

Recommended Posts

Hello everybody,

got my Ultimaker 1 one week ago and I really love this thing. After fixing initial problems like loose belts, pulleys, hotend etc. it just works perfect and is very fast. Even large overhangs and very thin structures are no problem, and the panel is great. I have a MendelMax too, which I built from scratch, but it does not print these results yet.

Until now I only changed the fan duct to this one.

http://www.thingiverse.com/thing:17768

Much better than the original one. Parts are beeing cooled from all sides. Even large overhangs are no problem with it. Printed out this hollow cube ( http://www.thingiverse.com/thing:158949)%C2%A0%20without%20support%20material,%20and%20it%20looks%20great.%20I%20did%20not%20know%20this%20was%20even%20possible.%20The%20first%20strings%20hang%20a%20little,%20but%20because%20of%20the%20cooling%20fan%20they%20tighten%20themselves.%20Also%20the%20hollow%20pyramid%20was%20no%20problem.

But on this hollow Dodecahedron ( http://www.thingiverse.com/thing:86869)

I have retraction issues. It looks, like there is a spider web in each hole. I increased retraction speed even to 150mm/s, took it back to 100 now, better than 40mm/s, but not yet perfect. Still a lot to clean up after each print. Any chance to avoid this??? I did not change the Retraction Distance, this is still at 4.5mm, increasing it would cause holes in parts that should be massive, I think. Any experiences, guesses, tips? I am useing Cura with the original firmware and haven´t changed much.

Hope you can help.

Best Regards,

Philip

P.S.: Of course I used the search function, but did not find anything solving the problem.

 

Share this post


Link to post
Share on other sites

By original firmware, do you mean what came with the printer from factory or what comes with cura? IIRC there used to be a bug in the firmware that made retraction speed settings inconsistent. Try updating the firmware (Machine menu in cura).

Also, try slowing down your print speed a bit as well as lowering temperature as that can help in getting cleaner prints.

Another thing to try is to put something like this: http://www.thingiverse.com/thing:24363%20at%20the%20feeder%20end%20of%20the%20bowden%20to%20stop%20the%20bowden%20from%20moving%20up%20and%20down%20while%20retracting.

 

Share this post


Link to post
Share on other sites

Unless you build your own firmware, you will still get the retraction bug. Firmware currently bundled in Cura does not fix it. Even with the retraction bug fixed, speeds faster than 48mm/s are meaningless - and also subject to the 'MaxE' speed setting. See this http://umforum.ultimaker.com/index.php?/topic/1734-marlin-bug-the-myth-of-retraction-speed/?p=12079.

You'll probably get better results with the newer firmware, so that you get a properly calibrated retraction. Speeds that are too high can also be counter productive, as the filament tends to slip and get chewed, so the retraction doesn't happen, and subsequent forward movement becomes harder too.

Generally, a speed of about 25-35 (with corrected firmware) and 4.5mm works pretty well.

You should also raise your fast move speed higher - to 175mm/s or more - once your printer is well bedded-in it can probably do 250mm/s moves or more. If you have it too high, you'll get skipping, and the layers will be offset. But, faster moves help to break the thread of filament, and stop it stringing out. As Robert noted, slower print speeds will also help reduce stringing, by reducing the pressure in the head, and hence the tendency to continue oozing, even when the extruder is no longer pushing. Temperature changes may help as well - cooler will probably make threads more likely to snap and the head less likely to drip. But if you go cooler, you'll also need slower, all things being equal, as the plastic is harder to extrude. Thinner layers may also help, because that reduces the amount of extrusion per second - which also reduces the pressure, and so reduces the tendency to ooze.

What temp, speed and layer height are you printing at?

BTW, there's some debate about whether that fan duct design is actually much help overall. While it distributes the airflow, it vastly reduces the area that the air can flow out of, and the type of fan used on the head isn't very good at sustaining the pressure needed to compress the air through a smaller opening. So it might actually not be as good as your expect. I'll be interested to hear how you get on with it.

 

Share this post


Link to post
Share on other sites

If you print as cold as you can go - maybe 185 or 190C and super slow: 20mm/sec you should get zero stringing. However you should be able to get a compromise speed faster than that and still get zero or very little stringing. Every color and manufacturer of PLA is different however. Definitely print this:

http://www.thingiverse.com/thing:46157

And read this (first photo):

http://umforum.ultimaker.com/index.php?/topic/1872-some-calibration-photographs/

And double check Cura in slice view to make sure it is truly trying to retract. The blue lines show non extruding movement and if there is a little vertical line then that indicates the retraction. There may be bugs in cura where it thinks it is inside your part and doesn't bother doing retraction. Or for other reasons. Also check the advanced retraction settings and force it to *always* retract no matter what.

 

Share this post


Link to post
Share on other sites

Thanks for your fast and helpful replies. That helped a lot. I am useing the firmware that came with the printer from factory and haven´t flashed a newer version.

My actual settings are:

Layer height: 0.2 mm

Print speed: 50 mm/s

Printing temperature: 210° C

Retraction speed: 45 mm/s

Retraction distance: 4.5 mm

Travel speed: 175 mm/s ( I also tried 250 mm/s, worked fine, without skipping or offset, but reduced it a little bit again)

You gave me a lot of good starting points. So no stringing is a combination of different matching settings, which are individual for each filament too. Did not know that before. Thanks for the detailed explanation iluminarti.So I will make an Excel sheet with the optimum values I found.

First I will print out that bowden clip. I have one on the hotend side, but none on the extruder side. Second I will try to lower the temperature and print speed to find out the lowest still working configuration and then higher the values a bit. By the way lowering temperature, when I set a lower temp for the print in Cura, it takes this value, heats up the bed up to it, but when it is reached, it changes the target value to 220°C and starts as 220°C is reached. Another bug or any wrong setting from my side? I did not have a problem like this with pronterface on the MendelMax.

As Retraction speed I will use 35 mm/s, as mentioned.

Firmware, any possibility to find out which one I have and where to get the newest? Installation will be done via Arduino IDE, I think.

@gr5: I will read your post just after finishing writing. Looks like a very helpful one. Thanks.

Also I had a quick look at the Esteps post. Have to read it in detail again.

I am not yet sure how much the values differ on each type of filament, but maybe a database of settings would be a good thing for getting people started quick. Of course, when you have the experience you don´t need it anymore and one setting is not optimized for all kinds of prints... Does anything like this exist?

With the fan design, I made good experiences. It has to be well printed, otherwise it will melt because of touching your hotend... So I had to print twice... The first thing I printed was the small Ultimaker Robot, of course. I looked good, but the left side where the cooler is, better than the other. On the right side you could see printed lines on the arms hanging a little bit. I think the reason is that they where in shadow zone caused by the print itself. I also realized this minor error on other prints. There was always a good side, the left where the fan was, and a bad, the right. With the fan duct both sides are printed very good. And you are right iluminarti, I also have the feeling that it reduces airflow, because it is to narrow and the fan to weak, but the airflow is still strong enough for good results. It is better than the original one, but I think there is still space for improvements. Maybe I will do some. I haven´t tried the mentioned fan mount yet. Perhaps I will print one and make a comparison of the two, if anyone interested. Or is this a topic discussed over and over?

Regards,

Philip

 

Share this post


Link to post
Share on other sites

Firmware, any possibility to find out which one I have and where to get the newest?

 

You can get the bleeding edge version of Marlin (okay actually it's a few months old) built very easily here:

http://marlinbuilder.robotfuzz.com/

And upload the hex file with Cura expert settings. But the version of Marlin that comes with the UM is fine.

 

By the way lowering temperature, when I set a lower temp for the print in Cura, it takes this value, heats up the bed up to it, but when it is reached, it changes the target value to 220°C

 

I always set the temp to 0 in cura settings which lets you set the temp to whatever you want before starting printing and you that way you also don't have to wait for the temp to settle before starting the print. Once the print gets going you can change the temp as often as you want but careful not to get too close to 170C because if you go lower than that then the extruder won't turn and you will wreck your print. So stay above 180C to avoid going under 170 by accident.

 

Share this post


Link to post
Share on other sites

but maybe a database of settings would be a good thing for getting people started quick. Of course, when you have the experience you don´t need it anymore and one setting is not optimized for all kinds of prints... Does anything like this exist?

 

Even if you only did the top 100 color/manufacturer combinations it would cost you something like $3000 worth of filament! There's just too much out there. Also on rare occasions you might get a batch that got some humidity in it but more important there are probably lots of factors we don't know about such as fan speed, air temp, humidity, EXACT nozzle size (to within .01mm) and shape (sometimes the hole isn't quite round), "movement speed" which is another setting in Cura when it is not extruding (fast speeds are good and can break the string). Some people use different fan shrouds (like you) which can change things, and some people's thermocouple seem to be off by as much as 30 degrees (although 90% of them seem accurate to at least 1 degree C). And so on.

Even the size of the part. I did tests with a tiny part that barely had time for each layer to cool so the "solid" layer below was warmer than typical.

 

Share this post


Link to post
Share on other sites

The firmware that's installed is almost certainly the last 'official' build from March 2013. That was released just before the retraction bug was fixed. Also there are some other fixes I did, including making the UltiController work better, by fixing the display of some settings, and making it actually use new values such as acceleration settings immediately when you enter them. Other than that, the firmware you have will be fine.

But using a new firmware from the RobotFuzz builder will fix those problems. As George says, it's very easy to upload it using Cura once you have the .hex file.

 

Share this post


Link to post
Share on other sites

regarding double heating...

I think he means he sets the temp in the cura print window, then when he starts the print, it goes to the other temperature - the one he set in the settings - before it does the homing procedure.

 

Share this post


Link to post
Share on other sites

Thanks for your replies. I will install a newer version of Marlin tonight, after I have finished all the print jobs. Then the retraction bug will be fixed. Yes uploading with Cura is definitely easier, than the "normal way" via Arduino IDE etc. Thanks for the link.

First I was skeptical, but now I like Cura a lot, but I miss some slicing Options I know from Slicer, like honeycomb, detailled settings for support etc. Any possibility getting these in Cura or is slicing with Slicer and printing via SD card the only other option?

@gr5: True, too many manufacturers etc. I did not try that many different types of PLA yet, they differ, but not that much. And you are right, there are a lot of variables that have to be thought of. But maybe this is too academic. Maybe even some thumb rules would help. But this surely exists, but I haven´t read yet.

I just did the test you did with the two towers and lowered the temperature. But with different results. One was completely free of stringing, on the other I had stringing. It was fewer, when I lowered the temperature, but even at 175° it was still there. I would post a picture, if it is of any use... The other settings were:

Speed 30mm/s

Layer height 0.1mm

Travel speed 175mm/s

Temperature: started at 220°C lowered it until 175°C

Strange. Maybe a reason because of the firmware, or fan shroud? I will keep experimenting until the stringing is gone...

The Z-endstop adjustment looks fine, but I could not print out the STL. When I opened it in Cura, the screen remained empty and printing time was still zero...Slicer crashed on opening it. Even after repair with netfabb it did not work out. Strange. So I printed out another Z-endstop adjustment, which I will install in a second. Currently I am thinking about a printing bed mount with handknobs and ony three screws for leveling and stronger strings. This makes leveling out and eliminating tilt easier than with the original 4 screws. Maybe I will find something on youmagine or thingiverse, or I will design something myself and maybe upload it.

@illminarti: Regarding the double heat up problem, the temperature is being set to 220°C, no matter what I set in Cura before. So I have to set it down each time manually. Getting on my nerves... Hard coded start gcode makes sense, but I did not change anything there and did not find an extra M109 command there. This is my start gcode:

M136 (enable build)

M73 P0

G162 X Y F2000(home XY axes maximum)

G161 Z F900(home Z axis minimum)

G92 X0 Y0 Z-5 A0 B0 (set Z to -5)

G1 Z0.0 F{travel_speed}(move Z to '0')

G161 Z F100(home Z axis minimum)

M132 X Y Z A B (Recall stored home offsets for XYZAB axis)

G92 X152 Y72 Z0 A0 B0

G1 X-141 Y-74 Z40 F{travel_speed} (move to waiting position)

G130 X20 Y20 A20 B20 (Lower stepper Vrefs while heating)

M135 T0

M104 S220 T0

M133 T0

G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)

; Sliced {filename} at: {day} {date} {time}

; Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}

; Print time: {print_time}

; Filament used: {filament_amount}m {filament_weight}g

; Filament cost: {filament_cost}

M73 P0;

; -- end of START GCODE --

Another error which occured three times today was, that suddenly the heater went off because of the setpoint was set to zero by the printer and I could not change it. The printer was still printing, but without extrusion. And the Ulticontroller was flickering. After powering it off and pulling the USB cable it worked normal again. Looks like a strange software problem. Anybody had this before. Any ideas?

Sorry for asking so much, but all I do right now, except for working is printing. Totally like that machine.

Thanks,

Philip

 

Share this post


Link to post
Share on other sites

The start gcode looks odd... lots of gcodes I don't recognize in there... what sort of printer is this for? Also are those your comments in brackets, or part of the gcode files? Don't gcode comments have to start with a semicolon?

Either way, there's a hardcoded:

M104 S220 T0

about half way down that turns the heater on to 220, no matter what. Given that you have that, I think that Cura won't include any other temperature setting gcode to honor whatever you set in Cura.

 

Share this post


Link to post
Share on other sites

@illuminarti: Thanks for your answer. So then it is hardcoded. Problem solved. I did not change anything. Also the comments in brackets are original. This is the gcode that has been in this version of Cura from the beginning. I think it is for an Ultimaker. What kind of start gcode do you use? Some parts of it are useful. When starting a print, it lifts the nozzle, moves a bit to the right, and backwards, brings the nozzle down again and starts the print.

So I will uncomment M104 S220 T0 and maybe stick my nose more into gcode to understand it completely. Is there a guide or post about the most common gcode for 3D printers?

 

Share this post


Link to post
Share on other sites

One was completely free of stringing, on the other I had stringing. It was fewer, when I lowered the temperature, but even at 175° it was still there

 

I have gotten better results with larger parts. The towers in my experiment were very small so they never get a chance to cool much. So even though the purple filament worked perfectly the white filament I tried never was able to stop stringing. But if you print something larger, like maybe 30X30 mm hollow cube you should get better results. I have printed larger things with white filament at 190C and 20mm/sec and basically zero stringing. You just touch it and the strings come off. No sanding. No bumps or visible spots where the strings were.

Also make sure fan is at 100%. Do you have the retraction clip on the extruder? If not either print it or increase the 4.5mm to maybe 5.5? Not sure how much to increase by.

 

Share this post


Link to post
Share on other sites

Thanks for the links gr5. Now I understand what the start gcode of my printer means.

Stringing and retraction seems to be a more complex issue, than I thought. Bigger parts are easier and on smaller ones you can increase the travel speed, lower the temperature, lower the travel speed and hopefully you don´t have stringing or at least less. Would have been to easy if there was a single setting, or one special part to attach it to the UM to solve it...

Fan is at 100% or 255 in the Ulticontrol panel. I printed out the retraction clip you metioned above and was amazed about the precision even on small parts. I think the fan has a big influence. Maybe it would even be better to install a little stronger one, but not too strong... On my next electronics order I will order some to test it out. If I read the schematics correct, the BD 679 Darlington can handle 4A, which is more than enough for a bigger fan. But the fan seems also to be running on 19V.

 

Share this post


Link to post
Share on other sites

I'm really confused. You say you have an Ultimaker... but the start gcode that you published isn't Ultimaker gcode. I'm not sure that Marlin recognizes most of those commands, or the comments in brackets. I think it might be Makerbot code, based on some googling that I did, but I'm not really sure.

I think you need to check your machine settings in Cura, and make sure that you have your machine set up as an Original Ultimaker, using Reprap/Marlin gcode.

 

Share this post


Link to post
Share on other sites

If I read the schematics correct, the BD 679 Darlington can handle 4A, which is more than enough for a bigger fan. But the fan seems also to be running on 19V.

I'm not so sure - I know this darlington is a common part to destroy. Probably when the fan is at anything other than 0% or 100%. It may be fine at 100% with 4A (not sure) but if you have the fan at 50% and it switches say 100 times per second then the heat dissipation is pretty high during those switching moments between off and on. But without knowing the exact curve and integrating the wattage over that curve it's difficult to calculate the wattage going into that poor little darlington.

 

Share this post


Link to post
Share on other sites

@ illuminarti:

You are right, most of the G Code isn´t Ultimaker G Code. Reading those two links I understand know how G Code is built and got a rough understanding what the machine would make. But I did not recognize, that most of the M commands were not listed in Erik´s list. So I went through this code line by line and wrote the meaning of it after the >> symbol.

Here it is:

M136 (enable build) >> no Marlin G Code

M73 P0 >> no Marlin G Code

G162 X Y F2000(home XY axes maximum) >> no Marlin G Code

G161 Z F900(home Z axis minimum) >> no Marlin G Code

G92 X0 Y0 Z-5 A0 B0 (set Z to -5) >> G92 - Set current position to cordinates given

G1 Z0.0 F{travel_speed}(move Z to '0') >> G1 - Coordinated Movement X Y Z E

G161 Z F100(home Z axis minimum) >> no Marlin G Code

M132 X Y Z A B (Recall stored home offsets for XYZAB axis) >> no Marlin G Code

G92 X152 Y72 Z0 A0 B0 >> G92 - Set current position to cordinates given

G1 X-141 Y-74 Z40 F{travel_speed} (move to waiting position) >> G1 - Coordinated Movement X Y Z E

G130 X20 Y20 A20 B20 (Lower stepper Vrefs while heating) >> no Marlin G Code

M135 T0 >> no Marlin G Code

M104 S220 T0 >> M104 - Set extruder target temp

M133 T0 >> no Marlin G Code

G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults) >> no Marlin G Code

; Sliced {filename} at: {day} {date} {time}

; Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}

; Print time: {print_time}

; Filament used: {filament_amount}m {filament_weight}g

; Filament cost: {filament_cost}

M73 P0; >> no Marlin G Code

; -- end of START GCODE --

So only four lines are being interpreted. I think the rest is ignored by Marlin.

I downloaded Cura from this homepage:

http://software.ultimaker.com/%20(Mac%20version)

The machine I choose is an Ultimaker. And it works. But I will upgrade the firmware now, as you mentioned before. Forgot it that one evening. What is the standard Ultimaker start G Code? Are you useing it, or did you modify it? Perhaps I could give this code a try.

 

Share this post


Link to post
Share on other sites

What confuses me is that Cura isn't giving you the correct start code. It should just give you the correct version automatically. The fact that it isn't doing makes me wonder if Cura's somehow thinks you have a non-ultimaker, and might be doing other things in the gcode that aren't helpful.

You might try making sure your 'Machine Settings' show the gcode flavor as 'RepRap Marlin/Sprinter'. You could maybe try 'Reset Profile to default' from the file menu, and see if that gives you the simple UM start gcode.

Failing that, here's what i have:

;Sliced at: {day} {date} {time}

;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}

;Print time: {print_time}

;Filament used: {filament_amount}m {filament_weight}g

;Filament cost: {filament_cost}

G21 ;metric values

G90 ;absolute positioning

M107 ;start with the fan off

G28 X0 Y0 ;move X/Y to min endstops

G28 Z0 ;move Z to min endstops

G1 Z15.0 F{travel_speed} ;move the platform down 15mm

G92 E0 ;zero the extruded length

G1 F60 E6 ;extrude 3mm of feed stock

G92 E0 ;zero the extruded length again

G1 F{travel_speed}

M117 Printing...

 

That's the default UM start gcode, except I changed the priming extrusion to be longer (6mm instead of 3mm) and slower (60mm/min, instead of 200).

 

Share this post


Link to post
Share on other sites

@ illuminarti:

I resetted the profile to default, and the strage G-Code was gone. It now looks almost like yours, except for your changes. Strange what went wrong in the first place. And I also flashed the newest firmware onto the Ultimaker, using the builder gr5 mentioned. First notible change: The fan on the extruder runs, when heating up the nozzle via Ultipanel.

It prints just fine. Another thing has changed, before it just printed where I left the nozzle before, now it homes each time and prints, where I put the piece on the platform in Cura...

Let´s see how the rest is working...

 

Share this post


Link to post
Share on other sites

Ah good, yes, that sounds a lot better. The printer has no idea of the head's position until you do a homing operation. Whatever position it's in when you turn it on get's considered (0,0,0) and then it just moves as the gcode instructs, based on that. So making sure that there's a functioning homing operation in your start gcode is good. That way it knows what the real origin is, and it makes sure that the positions are accurate and repeatable, as you've seen icon_e_smile.gif

 

Share this post


Link to post
Share on other sites

I'm not so sure - I know this darlington is a common part to destroy. Probably when the fan is at anything other than 0% or 100%. It may be fine at 100% with 4A (not sure) but if you have the fan at 50% and it switches say 100 times per second then the heat dissipation is pretty high during those switching moments between off and on. But without knowing the exact curve and integrating the wattage over that curve it's difficult to calculate the wattage going into that poor little darlington.

 

I discussed this issue with my electronics specialist, and we came to the conclusion, that this part is improper or at least not perfect for this job.

A look in the datasheet discovered, that the base current is 100mA. If I remember the Arduino spec right, a digital output can provide 50mA (can provide a little more, but really does not "like" it), this half of the necessary 100mA to get the Darlington into digital mode. Worse there is a 1k resistor on the base, of course you need a resistor if you don´t want to destroy it all, but a smaller one would have been better. With the intern 10k resistor of the transistor they form a voltage divider of 1:10 so the current gets smaller and smaller. So the transistor is in the "forbidden zone" means in analog mode and not in digital, as intended. This means it is producing heat. If the cooling is good, and it stays under the rated 150°C, it works and you don´t have a problem.

A part reacting on voltage, rather than on current, like a MOSFET, would have been better. Of course all parameters have to fit... But as long as it works...

The original fan is 50x50mm, with a current of 0.1A at 12V. The fan I am thinking about is 60x60 with a current of 0.22A at 12V. The amount of air coming out of it is much bigger, but I don´t have a datasheet for it to give exact numbers. I think it might work. Problem is, I will have to design a new mount... A lot of work and I don´t know if 123D is good enough for this task. I am thinking of this type of fan duct I have installed at the moment, but optimized.

If the darlington cannot handle this and blows up, well it´s got a diode inside so in worst case the fan will be always on or always off, but no damage to the base. Then I have to look for a more suitable Transistor...

Did anybody mount a bigger fan?

 

Share this post


Link to post
Share on other sites

Did anybody mount a bigger fan?

 

It would be tricky to mount a bigger than 5cm fan without restricting the X/Y movement (fan bumps into UM walls before nozzle reaches destination).

Maybe you could look at a smaller radial fan if you want supply more air.

Good luck and keep us informed with your progress.

 

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
Sign in to follow this  

  • Our picks

    • How to 3D print with reinforced engineering materials
      Ultimaker is hosting a webinar where we explain how you can achieve and maintain a high print success rate using these new reinforced engineering materials. Learn from Ultimaker's Product Manager of Materials and top chemical engineer Bart van As how you can take your 3D printing to that next level.
      • 0 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 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!