Jump to content
Ultimaker Community of 3D Printing Experts
foehnsturm

Ultimaker Mark2 - The Smart Dual-Extrusion Upgrade

Recommended Posts

21 minutes ago, tinkergnome said:

 

I added two things to the "After print is finished"-script, retract the filament a bit (additional 11 mm as "end-of-print-retraction")
and home all axis.

I think Octoprint does this not automatically  - in opposite to the firmware if you print from sdcard.

Yes I just finished the test print and the head just stopped on top of the print. I then added the same end-script I have in Cura (from the mark2 config) but it still just stops:

 

G90
M104 S0 T0
M104 S0 T1
M140 S0
T0
M107

 

This should work in Octoprint, right? But it still just stops.

I don't quite get why an end script is needed anyway isn't this part of the gcode

 

EDIT: Well this doesn't work at all even when I try to send it over the terminal. 

If I want to home everything at the end I can send this and it works, it actually seems to be enough to just send this because it does automatically retract a little and turns the heating off, so all that's missing in the end is the homeing procedure for the head and the bed:

G28 X Y
G28 Z

However it would be nice to be able to perform an extruder change at the end as well, just to make sure everything is nicely reset and ready for the next print.

Can Octoprint not read any of the above? I think especially the part for putting the second print head into the parking position should be part of the end-script.

Edited by Glomby

Share this post


Link to post
Share on other sites
4 minutes ago, Glomby said:

I don't quite get why an end script is needed anyway isn't this part of the gcode

 

Some steps are done by the firmware, if the print was started from the sdcard. These are usually not in the gcode.

If you add it generally, the home command (e.g.) would work, if you print via USB, but would be executed twice if you start the same gcode from sdcard.

 

I use this for "After print job completes" and "After print job is cancelled":

 

;disable all heaters
M104 S0 T0
M104 S0 T1
M140 S0
G90 ;use absolute coordinates
G92 E11.0
G1 E0 F1500  ;end-of-print-retract
T0
G1 X23 Y200 F10800 ; move printhead away
G28
; disable motors
M84
; disable fan
M106 S0

 

Share this post


Link to post
Share on other sites

Got my Mark 2 Upgrade (with expansion board) up and running and I'm loving this thing!

Had some issues in Cura in the beginning but those cleared up after I found the updated printer def file in another tread on here,  is that updated in Github yet?

 

Couple questions:

What are the pros and cons of running Marlin vs Ultimaker 2 gcode flavor.  I have really gotten used to using the on board printer material temp setting with the Ultimaker 2 is there a reason that the definition files for the Mark 2 uses Marlin instead?

 

I noticed with single material prints that the second head still comes to temp, primes and sits at 175 for the entire print for no reason.  Am I missing a setting or should I be slicing with the stock Ultimaker 2+ machine in Cura for single material prints?

 

Thanks!

Share this post


Link to post
Share on other sites
  • resource files for Cura 3.2 (and upwards) are in a new folder on Github: https://github.com/foehnsturm/Mark2/tree/master/cura-3.2-resources
  • For GCode-Flavor "Ultimaker 2" Cura does not generate the "temperature magic" - because this is quite important for dual color prints i recommend the "Marlin" flavor
  • for single extrusion prints just use the stock Ultimaker 2+ machine in Cura as before (and remove the second printhead from the dock to free up the build area if necessary)

Glad that you like it - Have fun!

  • Like 2

Share this post


Link to post
Share on other sites
On 2/6/2018 at 12:37 AM, yyh1002 said:

Thanks for the update! The new definition totally worked with quality options in CURA 3.2b. Creating and updating profiles finally works properly. 

I've been creating multiple machines to have dedicated setting for head 1 print, head 2 print, PVA support and PVA interface only print. 

And I find UltiGcode flavor works more handy than Marlin. 

The start code for Marlin would heat up and prime both nozzle in all conditions. But in UltiGcode mode, only the necessary nozzle will be heated up.

Great! thanks for the support, as this is critical to use the mk2 to the level of an UM3.

 

 

Share this post


Link to post
Share on other sites
2 hours ago, tinkergnome said:
  • resource files for Cura 3.2 (and upwards) are in a new folder on Github: https://github.com/foehnsturm/Mark2/tree/master/cura-3.2-resources
  • For GCode-Flavor "Ultimaker 2" Cura does not generate the "temperature magic" - because this is quite important for dual color prints i recommend the "Marlin" flavor
  • for single extrusion prints just use the stock Ultimaker 2+ machine in Cura as before (and remove the second printhead from the dock to free up the build area if necessary)

Glad that you like it - Have fun!

Is it possible to adjust standby temp in firmware?  I’ve had some succesfull dual color and pva prints with UltiGcode which seems to have 100 degree standby temp. What temp magic would marlin do other than the default 175 standby temp? 

Nozzle 2 only print would need dedicated start code for Marlin flavor. I wonder whether the extruder 1/2 start code settings could do the intelligent start code generation for the two nozzles. 

Share this post


Link to post
Share on other sites

After the printer is configured as mark2, will it be possible for it to print using Gcode generated for the ultimaker 2+?

 

The reason I ask is because what if I sometimes don't want to use the second hot end at all? I don't want it to prep itself if its not going to be used. Furthermore, one at a time print sequence mode is disabled for mark 2.

Share this post


Link to post
Share on other sites
On 2/22/2018 at 1:59 AM, yyh1002 said:

I’ve had some succesfull dual color and pva prints with UltiGcode which seems to have 100 degree standby temp. What temp magic would marlin do

 

The standby temperature for UltiGCode is a (fixed) calculated value - it depends on the printing temperature and the time of inactivity:

  • after  30 seconds -> printing temp - 5%
  • after  90 seconds -> printing temp * 0.8 (rounded down)
  • after 5 minutes    -> printing temp * 0.5 (rounded down)
  • after 12 minutes  ->  80°C

I don't think that this is documented somewhere, it's just not the intended use.

 

On 2/22/2018 at 1:59 AM, yyh1002 said:

Nozzle 2 only print would need dedicated start code for Marlin flavor. I wonder whether the extruder 1/2 start code settings could do the intelligent start code generation for the two nozzles. 

 

Interesting idea. It's worth a try.

 

Share this post


Link to post
Share on other sites
On ‎22‎/‎02‎/‎2018 at 12:59 AM, yyh1002 said:

Nozzle 2 only print would need dedicated start code for Marlin flavor. 

If I understand you right; you can do a print using the extra head, by mounting the second head prior to running the generated gcode file using the standard UM2 (single head) settings under marlin.

Share this post


Link to post
Share on other sites

I just completed my Mark 2 Build.   I am using the UM2 original print head as the 2nd extruder.

 

What I'm noticing is that the UM2 original print head takes quite a while longer to heat up than the UM2+ print head.   However, I'm also noticing that the firmware seems to try and prime the 2nd extruder BEFORE it's at the correct temperature -- it seems to attempt this after the 1st extruder is at temp.   As such, ithe 2nd extruder is having a harder time priming correctly at the start of a print.

 

Is there some way to remedy this....for the firmware to wait until the 2nd extruder reaches the proper temp rather than relying on the 1st extruder temp?

 

Thoughts?


*B

Share this post


Link to post
Share on other sites

The UM2 heater is 25W, the UM2+ is 35W, so it takes some 50% longer to heat up.

 

Here in the printer definition:

https://github.com/foehnsturm/Mark2/blob/master/cura-resources/definitions/Mark2_for_Ultimaker2.def.json

 

In „machine-start-code“ you could add a head temperature command at the beginning to preheat E2. 

 

https://fablabdigiscope.wordpress.com/list-of-raw-g-code-commands-for-ultimakers/

 

Quote

RepRap M Codes

M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
M1 - Same as M0
M104 - Set extruder target temp
M105 - Read current temp
M106 - Fan on
M107 - Fan off
M109 - Wait for extruder current temp to reach target temp.
M114 - Display current position

 

Use M104 and M109.

Share this post


Link to post
Share on other sites
7 hours ago, conny_g said:

The UM2 heater is 25W, the UM2+ is 35W, so it takes some 50% longer to heat up.

 

Here in the printer definition:

https://github.com/foehnsturm/Mark2/blob/master/cura-resources/definitions/Mark2_for_Ultimaker2.def.json

 

In „machine-start-code“ you could add a head temperature command at the beginning to preheat E2. 

 

https://fablabdigiscope.wordpress.com/list-of-raw-g-code-commands-for-ultimakers/

 

 

Use M104 and M109.

 

 

Seems like this should be something addressed in the actual Tinkernome firmware, rather than in an auxiliary script?   It seems legit that extruder 1 and 2 may have different timings to come to temperature -- even with different materials.  Shouldn't the printer always wait for the proper temp to be reached (as opposed to a manual script to be used for each print)?

 

If there isn't consensus on this request for firmware change, can you be more specific about where and how to use M104 and M109?   I'm not a Gcoder.

 

Thanks again,

 

*B

 

Share this post


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

 

Shouldn't the printer always wait for the proper temp to be reached (as opposed to a manual script to be used for each print)?

 

If there isn't consensus on this request for firmware change, can you be more specific about where and how to use M104 and M109?   I'm not a Gcoder.

 

Thanks again,

 

*B

 

 

Anyone able to help me?

 

*B

Share this post


Link to post
Share on other sites

Well learn some gcode - it's very very simple.  Very simple.  Extremely simple.  In my opinion.  It just executes the gcodes in order top to bottom.  You should read about the difference between M104, M109 here (also M140, M190):

 

http://reprap.org/wiki/G-code

 

If you set the temperature in a gcode and don't wait it will continue executing the next gcode (which might start printing for example or might turn the heat on elsewhere or play with fans etc) before the temperature is achieved.  The other method doesn't continue execution to the next gcode until the temperature is achieved.

 

So typically you turn on the bed at first but don't want the nozzle to come on because it steals some power from the bed and the bed takes longer.  Then when the bed is say 10C below goal you can turn the nozzle on.  So one way to do this is:

 

bed goal to 50C and wait for it to happen before continuing to...

bed goal now to 60C but don't wait

nozzle to 210 and wait for it before moving on...

bed to 60C and wait  (just in case bed is only at for example 55C when nozzle gets to 210C)

 

 

That's just one of a few good ways to do it.   Do the above 4 commands make sense?

The other concern is you don't want filament sitting in the nozzle at full printing temp as the material deteriorates faster when at printing temps.  So you want to somewhat minimize the time the nozzle is at full temp yet not printing.

Share this post


Link to post
Share on other sites

@bradley the firmware should always wait for the target temperature of the particular extruder. You don't need to change the start script or the gcode.

The question is: what is the target temperature? It should be displayed in the upper line, if you scroll to the temperature on the display at the printer (just to be sure).

 

My suspicion: take sure that you use the correct definition files for Cura. There was a change in Cura 3.2, by default it initializes the target temperature of the inactive nozzle with the standby temperature now. There are new definition files for 3.2 (and upwards) in the folder "cura-3.2-resources" - take sure that you use these for Cura 3.2.

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, tinkergnome said:

y suspicion: take sure that you use the correct definition files for Cura. There was a change in Cura 3.2, by default it initializes the target temperature of the inactive nozzle with the standby temperature now. There are new definition files for 3.2 (and upwards) in the folder "cura-3.2-resources" - take sure that you use these for Cura 3.2.

 

 

Thanks for your response.   I am using the most up to date definition files from github.  

 

I typically print at 210 degrees.  What I am seeing is the first extruder coming right up to 210 upon startup followed by the second extruder heating up much more slowly.  When the second extruder reaches approximately 200 degrees, the printer retrieves it and primes it -- it hasn't normalized at 210 yet.     Then, after priming, it remains at 175 (standby temp?).

 

When I was using the default 200 degree print temp, the second extruder was only getting to 180-190 before priming.  Thus my concern.

 

I haven't finished the calibration steps yet, so I'm still printing only with one extruder, but the dual extruder priming sequence is happening anyway.

 

I know I can probably resolve this issue by upgrading the heater cartridge on second extruder.  But other than the wait time for heating up, it should wait for proper temp, regardless.

 

Thoughts?

 

*B

Share this post


Link to post
Share on other sites
26 minutes ago, bradley said:

 

Thanks for your response.   I am using the most up to date definition files from github.  

 

I typically print at 210 degrees.  What I am seeing is the first extruder coming right up to 210 upon startup followed by the second extruder heating up much more slowly.  When the second extruder reaches approximately 200 degrees, the printer retrieves it and primes it -- it hasn't normalized at 210 yet.     Then, after priming, it remains at 175 (standby temp?).

 

When I was using the default 200 degree print temp, the second extruder was only getting to 180-190 before priming.  Thus my concern.

 

I haven't finished the calibration steps yet, so I'm still printing only with one extruder, but the dual extruder priming sequence is happening anyway.

 

I know I can probably resolve this issue by upgrading the heater cartridge on second extruder.  But other than the wait time for heating up, it should wait for proper temp, regardless.

 

Thoughts?

 

*B

Did you check the initial printing temperature setting? If not, unhide and take a look at it. 

I remember cura have 10 degree lower initial printe temp as default.

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

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 130 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!