Welcome! Log In Create A New Profile

Advanced

Load/Unload Filament

Posted by DOYT 
Load/Unload Filament
March 10, 2017 01:22PM
Hi,
Is there a way in Marlin to enable Load/Unload function in the Main Menu? Because it appears only when the printer is printing. I mean.... when I print function Change filament appears but no Load an Unload.

Edited 1 time(s). Last edit at 03/10/2017 01:23PM by DOYT.
Re: Load/Unload Filament
March 10, 2017 08:12PM
Ah... Without checking... I don't think it is dependent on a print being active. I think the menu option is remove if the nozzle is not up to temperature. That is done to prevent trying to unload filament from a cold nozzle.

Try pre-heating the nozzle. And I suspect the option will show up for you.
Re: Load/Unload Filament
March 11, 2017 09:31AM
I tried but..... still I don't see any load/unload function in any of my menues.
Re: Load/Unload Filament
March 12, 2017 11:21AM
I also remember some discussion about this over at GitHub. Are you using RCBugFix from RC-8? I've only checked that code base. But the filament change command will be at the very bottom of the 'Tune' menu.

But only if you have enabled FILAMENT_CHANGE_FEATURE in Configuration_adv.h. AND... Only if the active nozzle is up to temperature:

void lcd_tune_menu() {
      START_MENU();
      ...
      //
      // Change filament
      //
      #if ENABLED(FILAMENT_CHANGE_FEATURE)
        if (!thermalManager.tooColdToExtrude(active_extruder))
          MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);
      #endif

      END_MENU();
    }

Edited 1 time(s). Last edit at 03/12/2017 11:22AM by Roxy.
Re: Load/Unload Filament
March 12, 2017 11:49AM
Don't get me wrong, I do have on my LCD this function but ONLY after I hit print from SD or print via USB. And it works fine. What I'm saying is that I do not have this function on my LCD BEFORE I want to print something. LEt's say my printer is cold and turned off. I want to print something but I have the wrong filament loaded. So I turned on my printer, I heated up and now I want to use Load/Unload function but I can't because it is in Tune menu. And tune menu only appear when AFTER I hit Print from SD or via USB.
Re: Load/Unload Filament
March 12, 2017 01:22PM
Oh! Now I understand! We may need to make that available outside of the Tune menu!

Sorry about that!
Re: Load/Unload Filament
March 14, 2017 11:05AM
Maybe if I cut all the Change filament function from tune submenu and I paste it in ultralcd.cpp let's say in the Prepare menu it will appear there. i'll give it a try.
Re: Load/Unload Filament
March 15, 2017 09:48AM
Quote
DOYT
Maybe if I cut all the Change filament function from tune submenu and I paste it in ultralcd.cpp let's say in the Prepare menu it will appear there. i'll give it a try.

No... Don't mess with the code to do the Change Filament function.... Just duplicate this one line in the Prepare Menu. Put it higher or lower depending upon where you want it in the menu.

MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);

Adding this line some place in the Prepare Menu will add a menu function you can click on and do.

Edited 1 time(s). Last edit at 03/15/2017 09:50AM by Roxy.
Re: Load/Unload Filament
March 15, 2017 03:18PM
I got this...

In file included from sketch\ultralcd.cpp:50:0:

sketch\ultralcd.cpp: In function 'void lcd_control_menu()':

ultralcd.cpp:266: error: '_lcdLineNr' was not declared in this scope

lcd_implementation_drawmenu_ ## TYPE(encoderLine == _thisItemNr, _lcdLineNr, PSTR(LABEL), ## ARGS); \

^

sketch\ultralcd_impl_HD44780.h:919:109: note: in definition of macro 'lcd_implementation_drawmenu_function'

#define lcd_implementation_drawmenu_function(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', ' ')

^

sketch\ultralcd.cpp:279:7: note: in expansion of macro '_MENU_ITEM_PART_1'

_MENU_ITEM_PART_1(TYPE, LABEL, ## ARGS); \

^

sketch\ultralcd.cpp:1492:5: note: in expansion of macro 'MENU_ITEM'

MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);

^

ultralcd.cpp:1492: error: 'lcd_enqueue_filament_change' was not declared in this scope

MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);

^

sketch\ultralcd.cpp:271:30: note: in definition of macro '_MENU_ITEM_PART_2'

menu_action_ ## TYPE(ARGS); \

^

sketch\ultralcd.cpp:1492:5: note: in expansion of macro 'MENU_ITEM'

MENU_ITEM(function, MSG_FILAMENTCHANGE, lcd_enqueue_filament_change);

^

exit status 1
'_lcdLineNr' was not declared in this scope
Re: Load/Unload Filament
March 15, 2017 03:51PM
I got it, I had it formulated different than yours. Now it's working but it's rough. I mean it sais continue printing after smiling smiley) I ting I need to create specific functions for this.
Re: Load/Unload Filament
March 15, 2017 11:34PM
Quote
DOYT
I got it, I had it formulated different than yours. Now it's working but it's rough. I mean it says continue printing after smiling smiley) I (think) I need to create specific functions for this.

No... most likely you need to paste it in at the right spot. Look at the syntax around all of the other MENU_ITEM(); entries. Clone that...
Sorry, only registered users may post in this forum.

Click here to login