Jump to content
makingzone

Improvement for the Dual Extrusion firmware

Recommended Posts

Posted · Improvement for the Dual Extrusion firmware

This new firmware have a lot of mistake or improvement possibilty for the Ulticontroler :

- The option "Preheat PLA", heat the 2 extruders ! It could be nice if it was possible to preheat only the first, the second or both.

- The option "Cooldown" only cool the first !!! So becarefull the second extruder stay hot.

- The option Move axis Extruder is only available for the 2nd !!!!! It's very enouing to not be able to extrude the first with the ulticontroler. I used this functionnality at each print, now I'm very confused.

I hope it will be possible to improve this things.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi MakingZone,

I just made some chances to the firmware and made a pull-request on github to make the chances in the original firmware.

I made the preheat PLA and ABS option with a sub-menu with an option to preheat extruder 1 or to preheat extruder 2.

For the cooldown i fixed the problem that only extruder 1 cools down. Now everything cool down (extruder 1, 2 and the heatbed) (heatbed cooldown was not working as well)

Hope it will be added to the original firmware soon so that you can have the fun of the options as well.

https://github.com/Ultimaker/Marlin/pull/5/files

https://github.com/Ultimaker/Marlin/pull/6/files

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hope too !!! Thanks for your contribution.

About the third mistake (Extrude only the 2nd) it's wrong. The function extrude on the last extruder used. Very strange.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Anybody,

has an idea, or is capable to change the firmware?

Is it possible for somebody, to make a sepparate Flow adjustment per nozzle?

I know you can adjust it with the filament diameter, but would be handy if it worked on the Fly.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi MakingZone,

I just made some chances to the firmware and made a pull-request on github to make the chances in the original firmware.

I made the preheat PLA and ABS option with a sub-menu with an option to preheat extruder 1 or to preheat extruder 2.

For the cooldown i fixed the problem that only extruder 1 cools down. Now everything cool down (extruder 1, 2 and the heatbed) (heatbed cooldown was not working as well)

Hope it will be added to the original firmware soon so that you can have the fun of the options as well.

https://github.com/Ultimaker/Marlin/pull/5/files

https://github.com/Ultimaker/Marlin/pull/6/files

 

Hi Arne Durr

Do you have an idea, if this mods have been implemented in Erik´s fork?

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

drayson, thanks for posting this question here. I was thinking about doing these changes myself, but I'm happy to see now that D-Byte already made the changes and has issued a pull-request to Erik. I just checked this request (no. 656). It's still open but obviously quite close to being updated. I'm looking forward to these new possibilities!

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Thank you for update. I'm not familiar with github therefore I asked.

In case you get news, it would be great to keep me informed :smile:

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

I subscribed to the repository so I will see it if something changes. But it's of course Arne Durr/D-Bytes privilege to report here about a new feature he wrote the code for.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Of course!

@ Arne Durr/D-Bytes looking forward to hear great news !

I´m happy that there are so many people take their time and create/develop such great stuff.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi guys,

as I´m "alone at home" I took a few minutes to try to compile the FW by myself... honestly... not the right work for a mechanical guy... :smile:

The implementation of the two menues worked...partially...

When uploading, I expect due to the settings that only the PLA and ABS menues are displayed.

Instead, I get the following:

...

Preheat PLA

Preheat ABS

Preheat PLA => (menue)

Preheat ABS => (menue)

...

Further I recognized that uploading the new FW will not reset my changed settings e.g. for z-axis acceleration.

Is there a bug or just an "error80"-issue...

Another thing I recognized is, that moving the extruder via the move-menue has no affect - not with the original, nor with a version from ginges builder (b.t.w. - the implemented tiny beep sucks) nor with my compiled FW.

Any hints appreciated...

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi drayson

If I got you right, this is what you did: you downloaded the Marlin code (from which repository? ErikZalm or D-Link?), adjusted the settings in configuration.h, made some changes in ultralcd.cpp compiled it with the Arduino tool or another C++ compiler and uploaded it to the machine. Correct?

Or did you use the marlinbuilder?

About the Ulticontroller-sound: There is http://umforum.ultimaker.com/index.php?/topic/4543-switching-the-ulticontroller-sound-off-any-ideas/ right now where some people complain about the originally very loud sound. Different people - different meanings... ;)

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi!!

Please find my answers below... :-)

 

  • downloaded the Marlin code: yes, UM original fork
  • adjusted the settings in configuration.h: yes, acc to the infos from this forum and in comparison with a version from marlinbuilder
  • made some changes in ultralcd.cpp: yes, winmerged the changes Arne did
  • compiled it with the Arduino: yes, V.0023
  • uploaded it to the machine: yes :smile:
  • Or did you use the marlinbuilder?: partially, for comparison

 

@Ulticontroller-sound: true, different people, different meanings... :smile:

Maybe someday this can be customized via configuration.h too...

Basically, the builds worked. I made an addon to the FW-version so that I can check it via ulticontroller.

Looking into the code, I found that there is an IF section comparing the TEMP_Sensor_2 - if it is !=0 (I assume "not zero"), then it should display the menue, else the normal view (I´m not in front of it so that´s what I remember by hart from yesterday).

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

I see one problem: TEMP_Sensor_2 is for the third extruder/hotend (it begins with 0)...

I think you missed to delete the old menu entries... the two lines which should replaced with exactly the part with the IF section...

About the buzzer sound: you can adjust it with LCD_FEEDBACK_FREQUENCY_HZ and LCD_FEEDBACK_FREQUENCY_DURATION_MS in configuration.h...

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Sorry, you´re right - as mentioned, it´s just what I remembered by heart.

I will check when back in front of the file.

Thank you for the buzzer hint !

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

I found the particular code I mentioned...

#if TEMP_SENSOR_0 != 0

MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);

MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);

#endif

#if TEMP_SENSOR_1 != 0

MENU_ITEM(submenu, MSG_PREHEAT_PLA, lcd_preheat_pla_menu);

MENU_ITEM(submenu, MSG_PREHEAT_ABS, lcd_preheat_abs_menu);

#endif

For me, it seems that the "else" is missing... so if there is one snesor, display lcd_preheat_pla0 and lcd_preheat_abs0

if there is the second sensor, display the menu additionally...

Or am I wrong??

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

No, you're right...the menu (and not the single commands for extruder 0) should be displayed if Sensor 1 is also present but not if only Sensor 0 is present...

Maybe that's the reason why it is not yet in Erik's version?

EDIT: something like this?

#if TEMP_SENSOR_0 != 0

#if TEMP_SENSOR_1 != 0

MENU_ITEM(submenu, MSG_PREHEAT_PLA, lcd_preheat_pla_menu);

MENU_ITEM(submenu, MSG_PREHEAT_ABS, lcd_preheat_abs_menu);

#else

MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);

MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);

#endif

#endif

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hmm... might be a reason.

Else, looking a few lines above at the temperature settings, it looks similar to the initial code...

#if TEMP_SENSOR_1 != 0

MENU_ITEM_EDIT(int3, MSG_NOZZLE1, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);

#endif

#if TEMP_SENSOR_2 != 0

MENU_ITEM_EDIT(int3, MSG_NOZZLE2, &target_temperature[2], 0, HEATER_2_MAXTEMP - 15);

#endif

#if TEMP_SENSOR_BED != 0

MENU_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15);

#endif

Nevertheless, I will give it a try when back home and in front of the UM...

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Hi,

your attempt seems to work for a dual head :-) Yeppeeee...

Compiled it also for a single head - just to test. Unfortunately it failed due to not declared scope (!?!) (lcd_preheat_pla1).

Nevertheless, for the moment it´s fine the way it is. Now I can setup my secodn head...

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Thanks for the feedback. I will try it myself and check how to solve the lcd_preheat_pla1-issue as soon as possible...

b.t.w.: I also found a way to switch off the unused extruder motor... it doesn't have to heat while doing nothing, does it?

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Great, I will also try to investigate but as I have basically no knowledge about programming, I don´t know if it will be successfull...

@ extruder - nope, guess, staying cold could effect the lifetime...

If you find a solution, weould be glad to act as a "trial bunny" (hope you know what I mean... :mrgreen:)

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

[...]

 

Compiled it also for a single head - just to test. Unfortunately it failed due to not declared scope (!?!) (lcd_preheat_pla1).

[...]

 

 

I just could compile it with #define EXTRUDERS 1...

I then also set TEMP_SENSOR_1 = 0 and the problems began... but it can be solved: two functions in ultralcd.cpp have to be adjusted:

 


static void lcd_preheat_pla_menu()

{

START_MENU();

MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);

MENU_ITEM(function, MSG_PREHEAT_PLA0, lcd_preheat_pla0);

#if TEMP_SENSOR_1 != 0 //2 extruder preheat

MENU_ITEM(function, MSG_PREHEAT_PLA1, lcd_preheat_pla1);

#endif //2 extruder preheat

#if TEMP_SENSOR_2 != 0 //3 extruder preheat

MENU_ITEM(function, MSG_PREHEAT_PLA2, lcd_preheat_pla2);

#endif //3 extruder preheat

#if TEMP_SENSOR_1 != 0 //both extruder preheat

MENU_ITEM(function, MSG_PREHEAT_PLA012, lcd_preheat_pla012);

#endif //2 extruder preheat

END_MENU();

}

static void lcd_preheat_abs_menu()

{

START_MENU();

MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);

MENU_ITEM(function, MSG_PREHEAT_ABS0, lcd_preheat_abs0);

#if TEMP_SENSOR_1 != 0 //2 extruder preheat

MENU_ITEM(function, MSG_PREHEAT_ABS1, lcd_preheat_abs1);

#endif //2 extruder preheat

#if TEMP_SENSOR_2 != 0 //3 extruder preheat

MENU_ITEM(function, MSG_PREHEAT_ABS2, lcd_preheat_abs2);

#endif //3 extruder preheat

#if TEMP_SENSOR_1 != 0 //both extruder preheat

MENU_ITEM(function, MSG_PREHEAT_ABS012, lcd_preheat_abs012);

#endif //2 extruder preheat

END_MENU();

}

It's not yet a proper solution as it would fail if extruder 0 and extruder 2 but not extruder 1 would be present...

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Great!!

I will also implement that in my version :-)

Do you think somebody uses Temp2 instead of Temp1 when only having 2 extruders?

It might be an issue for non-UM machines but as far as I recognized, more than 2 extruders on an UM are impossible due to missing Polulu contacts on the PCB - isnt?

B.t.w. - I managed to get my second extruer working sucessfully !!!

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

Great!!

I will also implement that in my version :smile:

Do you think somebody uses Temp2 instead of Temp1 when only having 2 extruders?

It might be an issue for non-UM machines but as far as I recognized, more than 2 extruders on an UM are impossible due to missing Polulu contacts on the PCB - isnt?

B.t.w. - I managed to get my second extruer working sucessfully !!!

 

Everything is possible... :wink:

For an Ultimaker, two extruders are right now the maximum, I agree. But Standard Marlin has to stay open for the other RepRaps. It might be possible to limit it for the UM2-Marlin which has, a.f.a.I.k., a separate software repository due to the UltiGCode.

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

I agree...

Unfortunately I had no time up to now to give your code a test. Hopefully over the weekend.

Nevertheless, I hope that this feature will be implemented in the standard Marlin soon...

:-)

 

Share this post


Link to post
Share on other sites
Posted · Improvement for the Dual Extrusion firmware

I included it in my personal Marlin code as I had to recompile it due to the new heated bed. The menu looks good so far but further tests are needed.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Our picks

    • Ultimaker Cura 4.0 | Stable available!
      Ultimaker Cura 4.0 is mainly focused on the improved user interface and cloud integration.
      As always, we want to collect your user feedback for this release. If there are any improvements you can think of, feel free to mention it here and help us to shape the next release.
      • 98 replies
×
×
  • Create New...

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!