Jump to content

G-Code für Bettnivelierung mit Messuhr selber erstellen


sebther2

Recommended Posts

Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

Hallo liebe Leute!

Ich habe da mal eine Frage zu G-Code. Bis dato habe ich das alles nicht gebraucht, da ich als Hobby-Anwender mit CURA eigentlich alles abgedeckt bekommen habe.

Nun möchte ich aber mein Druckbett mit einer Messuhr nivelieren und müsste mir dazu einen eigenen G-code schreiben, um bestimmte Punkte auf einer konstanten Höhe anzufahren.

Sprich ich möchte folgendes programmieren:

Koordinaten 1: X(1), Y(1), Z(konstant) anfahren und dann Pause, bis ich weiter "sage"

Koordinaten 2: X(2), Y(2), Z(konstant) anfahren und dann Pause, bis ich weiter "sage"

Koordinaten 3: X(3), Y(3), Z(konstant) anfahren und dann Pause, bis ich weiter "sage"

Koordinaten 4: X(4), Y(4), Z(konstant) anfahren und dann Pause, bis ich weiter "sage"

 

Abschließend soll das Ganze wieder auf Ausgangsstellung fahren und die Schrittmotoren "entsperren" - dann bin ich fertig.

 

Nun die große Frage: kann ich das mit CURA programmieren? Gibt es etwas, worauf ich besonders achten muss?

 

Hat vielleicht jemand so in diese Art schon mal was programmiert?

 

 

Danke für eure Hilfe!

Ach ja - und einen guten Rutsch ins Neue Jahr!!!

 

LG Helmut

 

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen
    12 minutes ago, sebther2 said:

    Nun die große Frage: kann ich das mit CURA programmieren? Gibt es etwas, worauf ich besonders achten muss?

     

    Für einen UM3? Das wird mit der Pause schwierig...

    Die UM3-Firmware fährt das Druckbett und den Druckkopf bei jeder Pause (G-Code "M0") selbstständig in die Parkposition. Da sehe ich keinen einfachen Weg das zu ändern - auf jeden Fall nicht mit G-Code allein.

     

    Vermutlich kann man die paar G-Codes auf einer verbundenen ssh-Konsole manuell absetzen, wenn der Drucker im Developer-Modus ist. Aber das ist ein ganz anderes Thema.

     

    Evtl. kannst Du das Druckbett einfach (per Menü) nach oben fahren und den Druckkopf per Hand in die gewünschten Ecken verschieben - wäre das nicht einfacher?

     

    Aus Neugier: Um was für eine Messuhr geht es und wie hast Du die befestigt (am Druckkopf)?

     

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hi tinkergnom!

    Danke für deine RM.

    Also grundsätzlich wäre ich ja schon glücklich darüber, wenn ich das Druckbett auf meine gewünschte Höhe bringen kann und es dort dann auch verbleibt.
    Den Druckkopf selbst könnte ich per Hand verschieben und auf meine Messpunkte bringen.

     

    Wie kann ich das Druckbett auf eine bestimmte Höhe bringen, ohne dass es sich aufgrund der Schwerkraft wieder absenkt und die Stellmotoren für den Druckkopf trotzdem "ungesperrt" (also frei beweglich) bleiben?

     

     

    Die Messuhr selbst steht am Druckbett - der Fühler tastet an der Messplatte am Druckkopf an - die scheint mir noch am ehesten geeignet.

     

    Eine Montage am Druckkopf selbst habe ich bis dato noch nicht so ohne weiteres gesehen. Das geht ohne gröberen Umbau offensichtlich nicht so einfach.

     

    Ich kann dann aber - wenn es funktioniert - auch gerne Fotos reinstellen. Aber erst dann, wenn ich damit zufrieden bin, wie es läuft. 🤨

     

    LG Helmut

     

     

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen
    1 hour ago, tinkergnome said:

    Die UM3-Firmware fährt das Druckbett und den Druckkopf bei jeder Pause (G-Code "M0") selbstständig in die Parkposition.

     

    Ach ja - ich habe hier an "M116 - Wait" gedacht.....

     

    LG Helmut

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hi Smithy!

    Ich hoffe, dass ich ein besseres Ergebnis bekomme, als mit der Papierstreifenmethode....

    Zurzeit habe ich immer einen leichten Schiefstand - sprich, die hintere Hälfte des Druckbettes kommt ganz wenig nach oben, was ich bei der ersten Schicht dann sehe, da diese dünner ist.

    Mit der Messuhr möchte ich das Ganze dann exakter einleveln...

     

    LG Helmut

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Aber wenn du das Active Leveling des Druckers verwendest, dann sollte vor jedem Druck das Druckbett abgetastet werden und die Unterschiede werden dann während der ersten Layer vom Drucker ausgeglichen. Hört man auch am Tak Tak, wenn sich die Z-Achse leicht hin und her bewegt. 

     

    Die manuelle Einstellung mit dem Papierstreifen ist nur eine grobe Voreinstellung. Je genauer du hier bist umso weniger muss der Drucker dann ausgleichen. Aber mir hat bis dato der Papierstreifen immer genügt. Ich will dir aber die Messuhr nicht ausreden, aber ich denke es lohnt den Aufwand nicht. Wenn du einmal das Glas rausnimmst, dann müsstest du wieder neu ausrichten, weil es da schon wieder Ungenauigkeiten geben kann. 

     

    Bei Druckern ohne Active Leveling kann das schon wichtig sein, aber der UM macht das eigentlich recht zuverlässig vor jedem Druck (sofern du das so im Menü eingestellt hast) von selbst.

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen
    4 minutes ago, Smithy said:

    Aber wenn du das Active Leveling des Druckers verwendest, dann sollte vor jedem Druck das Druckbett abgetastet werden und die Unterschiede werden dann während der ersten Layer vom Drucker ausgeglichen.

     

    Eigentlich hätte ich das Active Leveling eingeschalten ....

    Aber wie auch immer - bleibt die Frage, mit welchem Programm ich G-Codes erstellen und an den Drucker senden kann bzw. wie ich das Druckbett auf eine von mir gewählte/bestimmte Höhe bringen und halten kann.

     

    LG Helmut

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen
    4 minutes ago, sebther2 said:

    Eigentlich hätte ich das Active Leveling eingeschalten ....

    Eigentlich? Macht er es beim Starten eines Druckjobs oder nicht?

     

    Das ganze ist mit dem UM3 nicht so einfach zu lösen, weil du ihn nicht einfach seriell ansprechen kannst. D.h. es bleibt ein Weg über den Developermodus, wo du dich dann mit SSH auf den Drucker verbindest und dort kannst du dann einzelne GCodes abschicken.

     

    Einen eigenen GCode könntest du mit jedem Texteditor erstellen und dieses File dann auch in Cura laden, aber ich fürchte die Start/Stop Prozedur vom UM3 wird dir da einen Strich durch die Rechnung machen.

     

    Das Bett hoch und runterfahren kannst du auch übers Druckermenü manuell machen, vielleicht reicht dir das ja schon?

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Ich mache dies in Pronterface mit selbstdefinierten Schaltflächen, bei denen der entsprechende G-Code direct oder via Makro hinterlegt ist.

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Aber nicht mit einem UM3 🙂 

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Wohl wahr, das habe ich glatt überlesen 🙂

    • Like 1
    Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hmmm - d.h. ich habe hier wieder einmal ins Vollte gelangt?! 🤣

    Vielleicht hat ja jemand eine Idee?!

    Mit dem Menü kann ich NUR auf eine Position hochfahren - aber nicht auf einen Wert, den ich gerne hätte...

     

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Es müsste gehen, wenn du mit einem GCode auf eine bestimmte Position fährst und dann ein Delay mit G4 einbaust. Ich weiß nicht ob der UM3 ein Delay versteht, aber dass wäre ein Workaround. Pause wird nicht gehen wie Tinkergnome schon gesagt hat, da das Druckbett dabei runterfährt. 

     

    Wie gesagt GCode in einem Texteditor zusammenbauen und dann über Cura an den Drucker schicken. In Cura kannst du auch einen bestehenden GCode laden.

     

    Du kannst nur selbst probieren welche GCodes der UM versteht, es sind nicht alle umgesetzt. Und ich fürchte du wirst auch kaum jemanden finden, der das schon vor dir gemacht hat, weil wir halt alle einfach das vorhandene Active Levelling benutzen.

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Du kannst ja einmal damit beginnen: (alles ungetestet und aus dem Stegreif zusammengeschrieben)

     

    G28 Z0 		      ;move Z to bottom endstops
    G28 X0 Y0 		  ;move X/Y to endstops
    G1 Z40.0 F9000 	  ;move platform up
    G1 X10 Y10 F4000  ;move X/Y to front of printer
    G4 P1000          ;wait 1000ms

     

    Bis auf G4 wo ich mir nicht sicher bin ob es funktioniert, sollte es damit klappen. Du fährst dann halt auf die X/Y Position die du brauchst und Z auf die Höhe die du willst.

     

    G4 musst du dann halt entsprechend länger einstellen.

     

    Nicht wundern, der Drucker wird zu Beginn trotzdem seine Startprozedur durchführen, also normalerweise auch das Active Levelling machen.

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hallo Leute!

    Danke vorerst mal - ich denke, dass ich hier jetzt im Experimtelamodus angelangt bin und das Ganze mal einfach ausprobieren werde.

     

    LG Helmut

     

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Einen hab ich noch:

     

    Über die integrierte API kann man die Achsen auch bewegen. Das wäre dann der "offizielle" Weg und braucht keinen Developer-Modus.

     

    Im Prinzip funktioniert das, ich sehe dort nur keine Funktion für das "Homing" - das müsste man dann vorher über das Menü am Drucker machen (oder ich übersehe etwas).

     

    Vielleicht noch ein kurzes Shell-Skript oder Python-Skript drumherum gebastelt... (mit so vielen "Pausen", wie man möchte) ... das könnte funktionieren.

     

    Hier noch ein (möglicherweise hilfreicher) Kommentar vom Kopf des Firmware-Teams persönlich:

     

     

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hallo Leute!
    Irgendwie komme ich noch nicht ganz klar mit den selbstgeschriebenen G-Codes...

    Selbst wenn ich das Beispiel von oben an meinen Drucker sende, passiert gar nichts - kein Mucks!!

     

    Ich habe es direkt über einen USB-Stick und auch über CURA versucht - keine Reaktion vom Drucker 😒

     

    Muss ich auf irgendwas noch aufpassen oder was mache ich hier falsch?

     

    LG Helmut

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Dem GCode fehlt wahrscheinlich noch der Header, wenn der nicht da ist, dann macht der Drucker nichts. Den sollte aber meiner Meinung nach Cura dazubasteln. Habe das selbst aber noch nie versucht. 

     

    Zur Not einmal den Header von einem anderen Cura GCode nehmen und probieren.

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hi Smithy!

     

    Danke - werde ich morgen ausprobieren.....

     

     

    LG Helmut

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen

    Hallo,

     

    Also beim UM2 war das kein großer aufwand

    Hier ein Video wie ich es gemacht habe:

     

     

     

    Gibt es beim UM3 nicht so eine "Marlin" gcode Funktion wie beim UM2 (FLAVOR:UltiGCode oder Marlin) wo dann der Start Code nicht die Firmware übernimmt sondern in gcode stehen muss. Somit wäre die Startprozedur von der Firmware auch umgangen

     

    Gruß

  • Link to post
    Share on other sites

    Posted · G-Code für Bettnivelierung mit Messuhr selber erstellen
    2 hours ago, zerspaner_gerd said:

    Gibt es beim UM3 nicht so eine "Marlin" gcode Funktion wie beim UM2 (FLAVOR:UltiGCode oder Marlin) wo dann der Start Code nicht die Firmware übernimmt sondern in gcode stehen muss.

     

    Nö, das kann man nicht vergleichen. Beim UM3 und seinen Nachfolgern ist "Marlin" nur ein Sub-System. Jede Zeile G-Code geht erstmal durch die Linux-Ebene (bzw. Python) und wird nur selten unverändert an die Marlin-Ebene weitergereicht (wenn überhaupt).

     

    Von den Kopf-(Kommentar-) Zeilen am Anfang einer G-Code Datei sind fast alles "Pflichtfelder".

    Wenn da etwas fehlt, vermerkt der Drucker das in seinem Log und tut ansonsten keinen Muchs. 

     

    Moderne Zeiten halt... (= mit zehnfachem Aufwand funktioniert es fast -aber nicht ganz- wieder so wie früher)  😛 

    Die Web-API vom Drucker zu verwenden, scheint mit tatsächlich der Weg zu sein, mit dem man bei den neueren Ultimaker-Modellen noch am ehesten ans Ziel kommt.

    Dann sieht dann auf der Webseite vom Drucker so aus:

     

    image.thumb.png.162f1aa9e017a2cc50c1fccd1b70d75f.png

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