Jump to content

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.

 

  • Link to post
    Share on other sites

    • 1 month later...
    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

     

  • 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.

     

  • 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?

     

  • 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!

     

  • 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:

     

  • 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.

     

  • 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.

     

  • 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...

     

  • 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... ;)

     

  • 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).

     

  • 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...

     

  • 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 !

     

  • 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??

     

  • 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

     

  • 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...

     

  • 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...

     

  • 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?

     

  • 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:)

     

  • 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...

     

  • 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 !!!

     

  • 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.

     

  • 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...

    :-)

     

  • 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.

     

  • 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 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...