• Willkommen zur 3D-Druck-Community, einer nichtkommerziellen,
  • werbefreien und privaten Plattform rund um das Thema 3D-Drucken
  • vorrangig im deutschsprachigen Raum. Von User für User.
Hallo, Gast! Anmelden Registrieren


Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Marlin Filamentwechsel als Menüpunkt
#1
Lightbulb 
Seit Stunden wühle ich mich durch Marlin 1.1.0 RC7 sowie das Netz aber komme nicht mehr weiter.......
Ich versuche den Menüpunkt Filamentwechsel im Display angezeigt zu bekommen aber ich finde nix aber auch garnix wie das geht Sad
In der configuration_adv.h ist folgender Eintrag:

// Add support for experimental filament exchange support M600; requires display
#if ENABLED(ULTIPANEL)
  #define FILAMENT_CHANGE_FEATURE             // Enable filament exchange menu and M600 g-code (used for runout sensor too)
  #if ENABLED(FILAMENT_CHANGE_FEATURE)
    #define FILAMENT_CHANGE_X_POS 3             // X position of hotend
    #define FILAMENT_CHANGE_Y_POS 3             // Y position of hotend
    #define FILAMENT_CHANGE_Z_ADD 10            // Z addition of hotend (lift)
    #define FILAMENT_CHANGE_XY_FEEDRATE 100     // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
    #define FILAMENT_CHANGE_Z_FEEDRATE 5        // Z axis feedrate in mm/s (not used for delta printers)
    #define FILAMENT_CHANGE_RETRACT_LENGTH 2    // Initial retract in mm
                                                // It is a short retract used immediately after print interrupt before move to filament exchange position
    #define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
    #define FILAMENT_CHANGE_UNLOAD_LENGTH 100   // Unload filament length from hotend in mm
                                                // Longer length for bowden printers to unload filament from whole bowden tube,
                                                // shorter lenght for printers without bowden to unload filament from extruder only,
                                                // 0 to disable unloading for manual unloading
    #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10  // Unload filament feedrate in mm/s - filament unloading can be fast
    #define FILAMENT_CHANGE_LOAD_LENGTH 0       // Load filament length over hotend in mm
                                                // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
                                                // Short or zero length for printers without bowden where loading is not used
    #define FILAMENT_CHANGE_LOAD_FEEDRATE 10    // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
    #define FILAMENT_CHANGE_EXTRUDE_LENGTH 50   // Extrude filament length in mm after filament is load over the hotend,
                                                // 0 to disable for manual extrusion
                                                // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
                                                // or until outcoming filament color is not clear for filament color change
    #define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3  // Extrude filament feedrate in mm/s - must be slower than load feedrate
  #endif

Der bezieht sich allerdings anscheinend auf das ULTIPANEL, ich hab jedoch den "RepRap Discount Full Graphic Smart Controller" verbaut und ich find da nirgends eine Lösung.
Ich stehe im Moment voll auf dem Schlauch, wäre gut wenn mir jemand etwas auf die Sprünge helfen könnte.


Gruß Markus
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
#2
Hallo Markus,

soweit ich das beim Überfliegen des Codes erkennen kann, ist das nur aktiv, wenn während des Drucks pausiert wird (z.B. durch einen Runout-Sensor, oder wahrscheinlich "pause print")...

Oder wenn Du ein M600 einbaust:

 /**
   * M600: Pause for filament change
   *
   *  E[distance] - Retract the filament this far (negative value)
   *  Z[distance] - Move the Z axis by this distance
   *  X[position] - Move to this X position, with Y
   *  Y[position] - Move to this Y position, with X
   *  L[distance] - Retract distance for removal (manual reload)
   *
   *  Default values are used for omitted arguments.
   *
   */
Gruß
Chris                    

Über Gewicht spricht man nicht,
Übergewicht hat man...
 
to top
#3
Ah, ok Sad Danke für die Info.
Ich dachte da gäbe es die Möglichkeit den Filamentwechsel per Menüpunkt zu machen.
Muss ich also doch weiterhin per G-Codeskript wechseln........
Wäre ja auch zu schön gewesen.
Wie bzw wo baue ich den M600 ein ?

Gruß Markus
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
#4
(25.10.2016, 20:09)Speedy schrieb: Ah, ok Sad  Danke für die Info.
Ich dachte da gäbe es die Möglichkeit den Filamentwechsel per Menüpunkt zu machen.
Muss ich also doch weiterhin per G-Codeskript wechseln........
Wäre ja auch zu schön gewesen.
Wie bzw wo baue ich den M600 ein ?
Willst Du das während des Drucks machen (sollte gehen, Druck anhalten...), oder eher so ala Sailfish einfach nur Menü gesteuert wechseln?

Wie und wo man den M600 einbaut, weiss ich auch nicht ...
Gruß
Chris                    

Über Gewicht spricht man nicht,
Übergewicht hat man...
 
to top
#5
Wollte per Menü gesteuert wechseln Smile
Der Bequemlichkeit halber Big Grin
Zum Leveln des Druckbetts hab ich im Marlin auch eine Krücke gefunden.
Kann ich aber leider erst morgen testen da mein Netzteil im MKC abgeraucht ist. Sad

Gruß Markus
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
#6
(25.10.2016, 20:57)Speedy schrieb: Wollte per Menü gesteuert wechseln Smile
Der Bequemlichkeit halber Big Grin

Das habe ich Anfangs auch vermisst, aber das ist nicht vorgesehen... Sad
Gruß
Chris                    

Über Gewicht spricht man nicht,
Übergewicht hat man...
 
to top
#7
Schade .....
Na dann halt per G-Code Skript.

Gruß Markus
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
#8
Update:

Ich hab in der ultralcd.cpp (Marlin RC7 ab Zeile 1239) folgendes (blau markiert) eingefügt:

 static void lcd_prepare_menu() {
   START_MENU();

   //
   // ^ Main
   //
   MENU_BACK(MSG_MAIN);

   //
   // Filamentwechsel
   //
   MENU_ITEM(gcode, "Filament unload", PSTR("M109 S230\nG92 E0\nG1 E-650 F10000"));
   MENU_ITEM(gcode, "Filament load", PSTR("M109 S230\nG92 E0\nG1 E550 F10000"));
   //
   // Auto Home
   //
   MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
 
   .........


Die Einzugslänge ist jeweils auf den eigenen Drucker (Bowdenlänge) anpassen. ( die rot markierten Einträge)
Der Menüpunkt erscheint dann im Untermenü "Prepare"
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
#9
Lightbulb 
Es gibt Neues zu berichten weswegen ich den Thread mal wieder hoch hole. Smile

Marlin Firmware aktueller Stand 1.1.8 (sollte aber auch mit den Versionen 1.1.7 bzw. 1.1.6 funktionieren)
In der Datei Configuration_adv.h ab Zeile 1412 sind die Einträge für das Custom User Menü zu finden.
Dieses muss aktiviert und um die benötigten Einträge erweitert werden.
Meines sieht jetzt so aus:

Code:
#define CUSTOM_USER_MENUS
#if ENABLED(CUSTOM_USER_MENUS)
  #define USER_SCRIPT_DONE "M117 Script Done... Ready"
  #define USER_SCRIPT_AUDIBLE_FEEDBACK
  #define USER_SCRIPT_RETURN  // Return to status screen after a script

  #define USER_DESC_1 "Load ABS"
  #define USER_GCODE_1 "G28\nM84 E\nM109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)"\nG92 E0\nG1 E570 F3600\nG92 E0\nG1 E50 F200\nG92 E0\nM84 E"
 
  #define USER_DESC_2 "Load PLA"
  #define USER_GCODE_2 "G28\nM84 E\nM109 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)"\nG92 E0\nG1 E570 F3600\nG92 E0\nG1 E50 F200\nG92 E0\nM84 E"  

  #define USER_DESC_3 "Unload ABS"
  #define USER_GCODE_3 "G28\nM109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)"\nG92 E0\nG1 E-620 F2000\nG92 E0\nM84 E"
 
  #define USER_DESC_4 "Unload PLA"
  #define USER_GCODE_4 "G28\nM109 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)"\nG92 E0\nG1 E-620 F2000\nG92 E0\nM84 E"
 
  #define USER_DESC_5 "Preheat for PLA"
  #define USER_GCODE_5 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)

  #define USER_DESC_6 "Preheat for ABS"
  #define USER_GCODE_6 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)

  #define USER_DESC_7 "Heat Bed/Home/Level"
  #define USER_GCODE_7 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"

  #define USER_DESC_8 "Home & Info"
  #define USER_GCODE_8 "G28\nM503"


Was macht das Teil und was muss angepasst werden ?

Dias Menü  soll nur zum bequemen Wechseln des Filamentes VOR oder NACH dem Druck dienen.
In den Steuercodezeilen muss man die Bowdenlänge (Rot markiert) jeweils an den eigenen Drucker anpassen.
Ich habe mir je einen eigenen Menüpunkt für ABS und PLA angelegt da das die gebräuchlichsten Materialien sind und Temperaturmässig weitgehend die meisten anderen Materialien (z.B. PETG  passt Temperaturmässig zu ABS und NEIN damit drucke ich nicht, das dient nur zum Filamentwechsel) mit abgedeckt werden.


Beispiel Filament laden:
.....
#define USER_DESC_1 "Load ABS"
#define USER_GCODE_1 "G28\nM84 E\nM109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)"\nG92 E0\nG1 E570 F3600\nG92 E0\nG1 E50 F200\nG92 E0\nM84 E"
.....

Ablauf:
Alle Achsen werden auf ihren Nullpunkt gefahren
Der Extruderstepper wird abgeschaltet 
Das Hotend wird auf Teperatur gebracht
Der Extruder wird genullt
Eine vorgegebene Länge wird zuerst schnell zugeführt ( Länge einstellen !)
Der Extruder wird wiederum genullt
Die restliche Filamentmenge plus ca 20mm zu Primen der Düse wird langsam zugeführt ( Länge einstellen !)
Der Extruder wird genullt
Der Extruderstepper wird abgeschaltet

Das Nullen des Extruders zwischendurch ist (zumindest bei mir) deswegen erforderlich da der Drucker (weiss der Teufel warum auch immer) nach dem schnellen Vorschub statt langsamer Förderung auf Rückwärtsförderung geschaltet hatte.


Beispiel Filament entladen:
.....
#define USER_DESC_3 "Unload ABS"
#define USER_GCODE_3 "G28\nM109 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)"\nG92 E0\nG1 E-620 F2000\nG92 E0\nM84 E"
.....

Ablauf:
Alle Achsen werden auf ihren Nullpunkt gefahren
Das Hotend wird auf Teperatur gebracht
Der Extruder wird genullt
Das Filament wird entladen ( Länge einstellen !)
Der Extruder wird wieder genullt
Der Extruderstepper wird abgeschaltet

Meine Drucker homen übrigens alle neben dem Druckbett, wer das für sich ändern möchte kann z.B. nur X/Y homen (Befehl G28 jeweils ergänzen: G28 X Y)
Weitere mehr oder weniger sinnvolle Menüeinträge (z.B. Beleuchtung Ein/Aus) kann man sich nach Belieben hinzufügen.
Gruß Markus




Bitte tragt Euch in die Benutzerkarte (Usermap) ein
http://www.3d-druck-community.de/usermap.php

 
to top
  


Möglicherweise verwandte Themen...
Thread Verfasser Replies Views Last Post
  'Marlin Filamentwechsel während des Drucks SchokiDrucker 8 1.127 25.05.2017, 19:51
Last Post: Speedy
  Marlin, Filamentwechsel GCODE JuculianD 5 1.390 27.10.2016, 12:20
Last Post: Speedy



Browsing: 1 Gast/Gäste