Tutorial 3D Drucker Teil 7: Firmware aufspielen und Motoren kalibrieren

Aktualisiert am:

Im siebten und vermutlich letztem Tutorial zum Bau eures eigenen 3D Druckers werde ich euch erklären, wie ihr die Firmware auf euer Atmega2560 spielt, die Motoren kalibriert, Slic3r einstellt und euren ersten Druckversuch startet. Leider ist das Tutorial ein bisschen zu lang geworden, aber ich konnte es nicht weiter aufsplitten, ich wünsche euch trotzdem viel Spaß beim lesen.

Weitere Teile dieser Anleitung

  1. Tutorial 3D Drucker Teil 1: XYZ-Achsen und Gerüst bauen
  2. Tutorial 3D Drucker Teil 2: Motoren verkabeln
  3. Mein selbst gebauter 3D Drucker aus altem PC Material
  4. Tutorial 3D Drucker Teil 3: Mechanische Endstops platzieren
  5. Tutorial 3D Drucker Teil 4: Extruder bauen
  6. Tutorial 3D Drucker Teil 5: Hotend anbringen
  7. Tutorial 3D Drucker Teil 6: Elektronik und Verkabelung
  8. Tutorial 3D Drucker Teil 7: Firmware aufspielen und Motoren kalibrieren

Arduino IDE

Zu aller erst solltet ihr euch die Ardunio IDE herunterladen: http://arduino.cc/en/Main/Software

Damit werden wir später die Marlin Firmware konfigurieren und auf das Atmega2560 laden.

Atmega Treiber

Sollte die Treiberinstallation nicht “on the fly” funktionieren, müsst ihr den Hersteller eures Atmegas2560 Chips ausfindig machen und den Treiber herunterladen. Da mein Atmega2560 ein Chinanachbau ist, bin ich durch viel Recherche schließlich auf der richtigen Seite gelandet und habe den Treiber für Mac OS X installiert.

Marlin Firmware

Nun ladet euch die neueste Version der Marlin Firmware herunter: https://github.com/MarlinFirmware/Marlin

Firmware bearbeiten: Configuration.h

Öffnet nun die /Marlin/Marlin.ino mit der Arduino IDE. Nun switch ihr zwischen den Tabs bis zu der Configuration.h Datei.

Die Configuration.h enthält sämtliche Informationen über euren 3D Drucker. Diese Datei müssen wir nun Zeile für Zeile auf unseren selbst gebauten 3D Drucker anpassen. Meine fertig konfigurierte Configuration.h könnt ihr euch hier (Configuration.h) herunterladen.

Meine Änderungen:

  1. Zeile 54: #define BAUDRATE 115200
  2. Zeile 62: #define MOTHERBOARD 33
  3. Zeile 126: #define TEMP_SENSOR_0 5
  4. Zeile 302: //#define ENDSTOPPULLUPS
  5. Zeile 331: #define DISABLE_X true
  6. Zeile 332: #define DISABLE_Y true
  7. Zeile 333: #define DISABLE_Z true
  8. Zeile 334: #define DISABLE_E true // For all extruders
  9. Zeile 337: #define INVERT_X_DIR true
  10. Zeile 338: #define INVERT_Y_DIR true
  11. Zeile 339: #define INVERT_E0_DIR true
  12. Zeile 349: #define Z_HOME_DIR 1
  13. Zeile 355: #define X_MAX_POS 34
  14. Zeile 357: #define Y_MAX_POS 38
  15. Zeile 359: #define Z_MAX_POS 13.2
  16. Zeile 504: #define DEFAULT_AXIS_STEPS_PER_UNIT   {107,107,173.33,167}

Zu 1: Hier schreiben wir die Baudrate für die Verbindungsgeschwindigkeit zwischen PC und Atmega2560.

Zu 2: Welches Motherboard ihr verwenden müsst, steht genauestens in der Dokumentation.

Zu 3: auch hier gilt, schaut euch euren Temperatursensor an und sucht die richtige Nummer in der Dokumentation.

Zu 4: Da unsere Endstops bereits über einen Pullup verfügen, benötigen wir den internen Pullup des Ramps1.4 nicht mehr

Zu 13-15: Hier definieren wir die maximale Position der XYZ-Achsen

Zu 16: Diese Zeile beschreibt, wie viele Steps wir für einen Millimeter benötigen(hierzu weiter unten mehr)

Atmega2560 verbinden und Firmware aufspielen

Arduino IDE Board auswählen
Vergesst nicht, das richtige Board in der Arduino IDE auszuwählen.

Nachdem sämtliche Treiber installiert wurden, solltet ihr im Menü der Arduino IDE noch Atmega2560 unter “Tools >> Board” und den richtigen COM-Port auswählen. Nun könnt ihr mittels des Uploadbuttons Arduino Upload Button die Marlin Firmware auf euer Atmega2560 aufspielen.

Arduino IDE COM Port auswählen

Repetier Host

Um später 3D Objekte drucken zu können, benötigen wir eine geeignete Software, hierzu verwenden wir die kostenlose Software Repetier.

Nun beginnen wir mit den Einstellungen in Repetier Host für unseren selbsgebauten 3D Drucker.

Hierzu wählen wir oben im Menü den Punkt “Printer Settings“. Als Erstes konfigurieren wir die Verbingungseinstellungen unter dem Punkt “Connection”. Hier müsst ihr lediglich den richtigen COM-Port auswählen und die Baud Rate auf 115200 stellen, wie wir sie in der Configuration.h eingestellt haben.

Repetier Host Printer Settings Connection
Wichtig ist, dass die Baudrate mit der Configuration.h übereinstimmt.

Im nächsten Punkt bestimmen wir die Dimensionen unseres selbstgebauten 3D Druckers. Diese Einstellungen haben keinen Einfluss auf den 3D Druck oder das Slicen, sondern geben uns nur eine Hilfestellung beim Ausrichten der 3D Objekte, bevor wir es sclicen.

Repetier Host Printer Settings Dimension

Pronterface

Pronterface
Pronterface ist ein wirklich einfaches Tool, welches sich ideal für den Einstieg anbietet.

Zum Kalibrieren und Debuggen eignet sich Pronterface eigentlich am Besten. Das Tool lässt sich für den Einstieg sehr leicht bedienen. Die Kalibrierung kann man auch mit Repetier Host machen, im Prinzip läuft es auf das Gleiche hinaus. Ich für meinen Teil habe damals Pronterface benutzt.

Zum Dowload: http://koti.kapsi.fi/~kliment/printrun/

A4988 Motortreiber einstellen

Um die Motortreiber zu kalibrieren, gehen wir wie folgt vor. Wir schließen ein Multimeter zwischen Netzteil und Ramps1.4 an. Das Multimeter stellen wir auf Stromstärke ein, sodass wir messen können, wie viel Strom verbraucht wird.

Nun messen wir im Ruhezustand den Strom. Danach öffnen wir Pronterface, verbinden uns mit unserem Drucker und lassen eine beliebige Achse sich bewegen. Nun solltet ihr darauf achten, wie viel Strom fließt. Die maximale Stromstärke sollte 100-200mA nicht übersteigen, da ihr sonst Gefahr lauft, eure kleinen “Schrittmotörchen” zu braten.

Mit einem Schraubendreher kann man das Poti einstellen.
Mit einem Schraubendreher kann man das Poti einstellen.

Das justieren der Stromstärke geschieht direkt an den A4988 Motortreibern mittels der kleinen Schraube. Ihr solltet dies nun für alle Achsen wiederholen. Für den Extruder könnt ihr dasselbe Verfahren anwenden, da wir aber einen Nema17 Stepper verwendet haben, kann dieser deutlich mehr Strom abhaben, ohne heiß zu laufen oder gar zerstört zu werden. Die maximale Stromstärke eures Nema17 Steppers entnehmt ihr aus dem Datenblatt. Für meinen habe ich 500mA gewählt, da der Extruder ein bisschen mehr Kraft benötigt, um das Filament durch das Hotend zu pressen.

XYZ Achse kalibrieren

Pronterface

Um die Achsen und den Extruder zu kalibrieren habe ich Pronterface benutzt. Dieses einfache Tool eignet sich perfekt, um solche Arbeiten zu verrichten.

Nachdem ihr die Marlin Firmware auf euer Atmega2560 aufgespielt haben, könnt ihr in Pronterface auf “connect” gehen und nun können wir mit dem kalibrieren beginnen.

Am einfachsten funktioniert die kalibrierung der Achsen mittels einem Filzstift, welchen ihr am Hotend befestigt. So ist es eigentlich ein Kinderspiel, die Y und X-Achse zu kalibrieren. Nachdem ihr nun Pronterface gestartet habt und die Verbindung zu eurem 3D Drucker hergstellt habt, könnt ihr eurem 3D Drucker sagen, er soll zum beispiel die X-Achse um 10mm bewegen. Nun messt die Strecke, die er tatsächlich zurüclk gelegt hat.

Jetzt müssen wir zurück in die Arduino IDE und zwar in die Configuration.h Zeile 504.Zeile

#define DEFAULT_AXIS_STEPS_PER_UNIT   {107,107,173.33,167} //x,y,z,extruder

N = “alter wert” * 10mm/”tatsächliche Strecke”

Beispiel:

In der Firmware stand vorher für die X-Achse der Wert 107, wir lassen unseren 3D Drucker auf der X-Achse 10mm wandern und messen tatsächlich 22mm.

48,63 = 107 * 10mm / 22mm

Extruder kalibriren

Um den Extruder zu kalibrieren machen wir quasi das selbe. Wenn ihr kein Filament habt, könnt ihr für die erste Kalibrierung auch Kabel nehmen, so hatte ich es zumindest gemacht.

Führt das Filament in den Extruder ein. Dann lasst ihr mittels Pronterface das Filament herausfahren. Nun markiert die Stelle, an der ihr startet und lasst danach 30mm oder mehr extruden (je mehr ihr extruden lasst, um so genauer können wir den neuen Wert bestimmen). Nun messt die tatsächliche Länge vom Filament und berechnet anhand der Formel den neuen Wert für den Extruder.

N = “alter wert” * “gewünschte Länge an Filament”/”tatsächliche Länge des Filaments”

Dieses Vorgang solltet ihr auch einige Male wiederholen, um eine genaue Kalibrierung vorzunehmen. Vergesst aber nicht, vor jeder Kalibrierung die neue Configuration.h auf euren 3D Drucker zu spielen, ansonsten macht das Ganze nämlich wenig Sinn.

Slic3r einstellen

Kommen wir nun zu den Einstellungen in Slic3r. Ich muss dazu sagen, ich bin kein Profi, was das 3D Drucken angeht und meine Einstellungen sind bestimmt nicht perfekt, aber sie sind ein Anfang.

Druckgeschwindigkeit – Speed

Beginnen wir mit der Druckgeschwindigkeit, diese ist entscheidend für ein sauberes Druckergebnis. Für unseren “winzigen” 3D Drucker ist es eigentlich egal, wie langsam wir drucken, die Hauptsache ist, dass wir langsam drucken, also versucht alle Werte möglichst gering zu halten.

Slic3r Print settings speed

Druckereinstellungen – Printer Settings

Hier stellt ihr nochmals den Druckbereich eures selbstgebauten 3D Druckers ein.

Slic3r Printer settings

Unterstützungsmaterial – Support material

Manchmal ist es sinnvoll, sogenanntes “Support material” zu nutzen. Dieses Unterstützungmaterial ist dafür da, um “Überhänge” zu drucken. Beispielsweise die Flügel eines Vogels. Manchmal ist es sinnvoll, auf Support Material zu verzichten, ich habe bisher noch nicht die perfekten Einstellungen gefunden und habe eher schlechte Erfahrungen mit Support Material gemacht, da es meistens am eigentlichen Objekt zu stark haftet.

Slic3r Print settings support material

Schichten und Perimeter – Layers and perimeters

Am Besten ihr spielt ein wenig mit der “Layer Height” rum und probiert aus, welche Schichtdicke für euren 3D Drucker am Besten geeignet ist.

Slic3r Print settings layers and perimeters

Füllung – Infill

Wie Objekte gefüllt werden, könnt ihr unter “infill” einstellen, welche Möglichkeiten Slic3r zum Füllen von Objekten bereitstellt, könnt ihr hier nachlesen.

Slic3r Print settings infill

Filamenteinstellungen – Filament settings

Hier stellt ihr noch schnell die Dicke eures Filaments ein, in unserem Fall sind das 1.75mm und die Temperatur für den Druck der ersten Schicht und alle anderen Schichten. Auch hier musste ich eine Menge experimemtieren und ich habe bis heute noch keinen perfekten Wert gefunden. Beginnt am Besten mit 200° und spielt ein wenig rum im Bereich von 175-220°. Ist es zu Kalt, wird aus der Nadel das Filament nur tröpchenweise herauslaufen, ist es zu heiß, wird es quasi rausfließen, zum Teil auch schwarz werden. Also experimentiert einfach mit der Temperatur. Zum Thema Extrusion Multiplier solltet ihr euch folgenden Link durchlesen: https://solidoodletips.wordpress.com/2012/08/16/setting-the-flow-rate/

Slic3r filament settings

Extrudereinstellungen – Extruder settings

Und nun als letzten Punkt, bestimmen wir noch den Durchmesser unserer Bohrung im Nadelkopf (Nozzle Diameter).

Slic3r 'Extruder settings

Sonstige

Eine sehr gute Übersicht über die Einstellungsmöglichkeiten in Slic3r findet ihr auf dieser Seite.

Unser erster 3D Druck Versuch

Nachdem nun alle Kalibrierungsmaßnahmen geschafft sind, können wir uns nun an den ersten 3D Druck wagen. Hierzu benötigen wir aber noch 1,75mm PLA Filament. Für die ersten Versuche habe ich mir 50gramm gekauft, die bis heute noch nicht aufgebraucht sind. Wenn ihr jedoch vor habt, deutlich mehr zu drucken, dann lohnt sich eine 1 Kilo Rolle für schlappe 20€.

Unser erstes 3D Objekt wird der Hollow Calibration Cube sein. Öffnet Repetier Host und klickt auf “Add STL File”. Skaliert das Objekt, sodass es in euren Druckbereich passt, in meinem Fall musste ich das Objekt um 50% verkleinern. Wenn das Objekt lila ist, bedeutet es, dass es in den Druckbereich passt, ist es grün, liegt es außerhalb vom Druckbereich.

Mit “Center Object” können wir das Objekt in der Mitte ausrichten.

Repetier Host STL File Cube

So, nachdem das Objekt korrekt ausgerichtet ist, können wir unseren G-Code generieren lassen. Hierzu drückt ihr oben auf die Schaltfläche “Slice with Slic3r“.

Nun erhalten wir eine Ansicht vom generiertem G-Code. Verbindet nun euren 3D Drucker mit dem PC und klickt oben Links auf “ConnectRepetier Host Connect. Danach müsst ihr nur noch “RunRepetier Host Run Kill sagen und euer 3D Drucker beginnt mit dem aller ersten Druck.

Repetier Host Sliced STL File

So nun zum Abschluss: Es hat echt Spaß gemacht, meinen eigenen 3D Drucker aus altem PC Material zu bauen, aber nun werde ich mich meinem neuem Projekt widmen. Ich habe günstig ein Gerüst für einen Prusa i3 bekommen und werde in Zukunft diesen fertig zusammen bauen. Natürlich wird auch hierzu ein Bericht folgen ;).

Weitere Teile dieser Anleitung

  1. Tutorial 3D Drucker Teil 1: XYZ-Achsen und Gerüst bauen
  2. Tutorial 3D Drucker Teil 2: Motoren verkabeln
  3. Mein selbst gebauter 3D Drucker aus altem PC Material
  4. Tutorial 3D Drucker Teil 3: Mechanische Endstops platzieren
  5. Tutorial 3D Drucker Teil 4: Extruder bauen
  6. Tutorial 3D Drucker Teil 5: Hotend anbringen
  7. Tutorial 3D Drucker Teil 6: Elektronik und Verkabelung
  8. Tutorial 3D Drucker Teil 7: Firmware aufspielen und Motoren kalibrieren

10 Gedanken zu „Tutorial 3D Drucker Teil 7: Firmware aufspielen und Motoren kalibrieren“

  1. Hallo Patrick
    Ganz Ehrlich diese Marlin Software ist echt kompliziert find ich Respekt für die die das geschrieben haben 🙂 leider steige ich nicht durch :/ wie macht man das wenn man keine Pullups auf den Endstops hat.
    Kann man dich über Mail erreichen?? Geht die Mail Adresse die hier auf der Seite angeben ist noch würde dir gern Bilder schicken
    MfG Rowena

    Antworten
  2. Hallo Patrick
    sag mal weiß du was mit diese Errormeldung gemeint ist wir wissen nicht was bei unserem Programm falsche eingestellt ist 🙁 wir haben es genau so gemacht wie du oben bis auf das mit den endstops ebend.

    11:25:16.099 : Error:Heating failed, system stopped! Heater_ID: 0
    11:25:16.109 : Error:Printer halted. kill() called!

    Antworten
    • Ist der Temperatursensor richtig angeschlossen? habt ihr die richtige temperaturkurve ausgewählt.
      Die Fehlermeldung klingt so, als würde er versuchen aufzuheizen, schafft es aber nicht. Entweder ist die Heizpatrone kaputt, oder der Sensor liefert falsche Werte. Habt ihr ein Heizbett installiert? Falls nicht, müsst ihr dieses in der Firmware noch deaktivieren.

      Antworten
  3. Hallo Patrick
    sag mal wiest du wie man die Extruder Geschwindigkeit erhöht beim drucken? Wir haben es schon bei die Zahle bei Zeile 16 erhöht keine Auswirkung haben im Programm eingestellt das er mehr Durchfluss haben soll haben soll haben auch dort die Extruder Geschwindigkeit erhört hilft aber alles nichts irgendwie. Wenn wir anfangen zu drucken ist der Extruder extrem langsam so das nicht genug Filament nach kommt und wir nicht vernünftige drucken.

    Antworten
    • Wieso möchtet ihr nur die Extruder Geschwindigkeit erhöhen? Könnt ihr eure Configuration.h Datei mal zeigen? Habt ihr die Steps_per_unit richtig kalibriert?

      Bräuchte mal ein paar Daten, um euch zu helfen. Und für den Anfang solltet ihr einfach Cura verwenden, mit den Standardeinstellungen.

      Antworten
  4. Hi Patrick,
    Ich habe den Druck eines 20x20x20 Cubes gestartet. Die Druckzeit betrug ca. 2 Stunden. Als ich bei 1,5 Stunden angekommen war, hielt der Drucker einfach an. Es wurde keine Fehlermeldung im Repetier Host angezeigt. Die Zeit blieb also einfach stehen (“Druckzeit 26 min 31 sek”).Daraufhin habe ich 2 Minuten gewartet. Danach habe ich den Druck einfach abgebrochen, weil vielleicht Schäden entstehen könnten.Hast du vielleicht eine Ahnung woran das liegen könnte?
    An der Hardware kann es meiner Meinung nicht liegen, da sich alle Mototen etc. noch bewegen lassen.

    Gruß
    Thomas

    Antworten
    • Dazu müsstest du mir ein wenig mehr Input geben.

      Wie sieht dein Drucker aus?
      Wie sendest du den G-Code(USB/Sd Karte?).
      Was für ein Netzteil benutzt du?
      Welche Firmware?
      Windows/Mac?
      Konntest du den Drucker ohne reconnect weiterhin ansteuern?
      Hatten die Motoren sich abgeschaltet?
      War er noch am Heizen?
      War das Board noch am leuchten?

      Antworten
      • Wie sieht dein Drucker aus?
        Ich arbeite zusammen mit Rowena an dem Drucker. Die Bilder hat sie glaube geschickt.
        Wie sendest du den G-Code(USB/Sd Karte?).
        USB
        Was für ein Netzteil benutzt du?
        Ich benutze ein Netzteil aus einen herkömmlichen alten PC.
        Welche Firmware?
        Ich benutze Marlin und habe es einfach so umgeschrieben wie du es in der Vorlage gesagt hattest mit.
        Windows/Mac?
        Windows
        Konntest du den Drucker ohne reconnect weiterhin ansteuern?
        Nein, ich musste alles neustarten bevor wieder alles ging.
        Hatten die Motoren sich abgeschaltet?
        Der Nema17 und die anderen Motoren haben keine Geräusche mehr gemacht. Allerdings habe ich den Pc und das Programm neugestartet. Da konnte ich alles wieder ansteuern. Außerdem habe ich noch einmal ein 10x10x10 Cube gestartet. Da funktionierten auch wieder auch alle Motoren.(Leider war das Druckergebnis nicht so toll, weil für die ersten Schichten viel zu wenig Filament in das Hotend gedrückt wird.
        War er noch am Heizen?
        Ja, das Hotend war kontinuierlich auf 205 °C. So wie ich das eingestellt habe.
        War das Board noch am leuchten?
        Auf dem Board war aufjedenfall die rote LED noch am leuchten.

        Antworten
        • Achso okay,

          läuft der Drucker denn jetzt durch? Vielleicht hängt sich das Atmega auf? Könntet ihr eure Configuration.h mal posten? Ich vermute mal, dass ihr die Extruder Steps nicht richtig kalibriert habt, wie seid ihr denn dabei vorgegangen? Wenn da alles richtig gemacht wurde, sollte die Layer Width eingestellt werden? Wie habt ihr den Düsenabstand eingestellt? Ist das Hotend auch wirklich 205° heis? Vielleicht liefert der Temperatursensor falsche Werte und eure tatsächliche Temperatur liegt viel zu niedrig.
          Es gibt so viele Fehlerquellen, die man alle nacheinander ausschließen muss. Vielleicht macht ihr auch kurz ein Video vom Druck während den ersten Schichten, so könnte ich euch bisschen besser helfen.

          Antworten

Schreibe einen Kommentar

Notify me of followup comments via e-mail. You can also subscribe without commenting.