Jump to content
Ultimaker Community of 3D Printing Experts
makingzone

Improvement for the Dual Extrusion firmware

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

[...]

 

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

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

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

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

Announcements

  • Our picks

    • Architect Design Contest | Vehicles.
      We're open for entries! - Design and submit your 3D designs of architectural entourage - vehicles - for a chance to win a large filament pack. Presenting an idea, an architectural design or something as big as an urban project isn't easy. A scaled model can really help to get your idea across.
        • Like
      • 24 replies
    • What The DfAM?
      I'm Steve Cox, an experienced engineer familiar with 3D printing. I wanted to share some DfAM guidelines with this community to help and make stronger parts.
      I'm also an Autodesk Certified Instructor for Fusion 360, so many of the images in ...
        • Thanks
        • Like
      • 23 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!