zurück zum Artikel

Bootloader auf 3D-Drucker Creality Ender 3 installieren

Heinz Behling
Creality Ender 3

Der 3D-Drucker-Bausatz Ender 3 erfreut sich steigender Beliebtheit, kommt aber mit Sicherheitsschwächen in der Firmware: Wir zeigen, wie Sie nachbessern.

Ein Preis von knapp 180 Euro, die stabile Metallbauweise und eine gute Druckqualität sind Attribute, die den 3D-Drucker-Bausatz Creality Ender 3 [1] auszeichnen. Das klingt nach dem idealen Einsteigergerät, und in der Tat ist der Ender dort weit verbreitet.

Er hat jedoch auch einige Schwächen. So fehlen der Firmware wichtige Funktionen. Sie erkennt zum Beispiel nicht, ob sich wegen eines vom Druckkopf gelösten Temperatursensors dessen gemeldete Temperatur trotz permanent eingeschalteter Heizung nicht mehr erhöht oder sogar sinkt. Folge: Die tatsächliche Kopftemperatur steigt immer weiter an. Das kann zu einem Brand führen, vor allem, da 3D-Drucker wegen langer Druckzeiten nur selten permanent vom Benutzer beobachtet werden.

Ein andere Firmware, wie etwa das für viele Druckertypen erhältliche Marlin [2], würde in solch einem Fall sämtliche Heizungen abschalten, eine Fehlermeldung ausgeben und so einen Brand verhindern. Nur durch einen Geräte-Reset ließe es sich zur Weiterarbeit überreden. Daneben enthält es auch noch etliche andere Funktionen, etwa zur automatischen Druckbetteinstellung mittels Sensor, die der Creality-Firmware fehlen.

Screenshot Firmware Malin: Thermal Protection.

Die Thermal Protection von Marlin kann Brände verhindern.

Um eine neue Firmware in der Drucker-Elektronik zu installieren, muss diese jedoch einen Bootloader besitzen. Genau dieser Loader fehlt aber dem Ender. Sie bemerken dies im Normalfall nicht, denn die kleine Software ist für den Druckbetrieb nicht notwendig, sondern nimmt nur die von einem an der USB-Buchse angeschlossenen Computer gesendete Firmware entgegen und legt sie im nicht flüchtigen Programmspeicher des Druckers ab. Der Bootloader lässt sich aber nachträglich installieren. Machen Sie dies aber nur, wenn Sie anschließend auch eine andere Firmware installieren möchten. Denn die bisherige wird dadurch gelöscht!

Sie brauchen einen Computer mit installierter Arduino-IDE [3] sowie einen Programmer. Der Bootloader lässt sich nämlich nicht über die USB-Verbindung zum Drucker übertragen, er nimmt ihn nur über die interne Programmierschnittstelle (ISP-Header) an. Der Programmer ist das Interface, das diesen Header mit der USB-Buchse des Computers verbindet. Wir verwenden hier einen preiswerten USBASP-Programmer [4]. Sie können auch einen Arduino Uno [5] und sogar den Einplatinenrechner Raspberry Pi [6] dazu verwenden. Beide müssen Sie aber erst mit der notwendigen Software ausstatten. Mit dem hier gezeigten Interface ist es wesentlich einfacher. Nebenbei können Sie damit auch Bootloader auf andere Mikrocontroller-Boards übertragen, beispielsweise auf die häufig ohne Loader aus China importierten Billig-Arduino-Nachbauten.

USB-Programmer.

Mit einem USB-Programmer kann der Bootloader direkt auf die ISP-Schnittstelle des Druckers übertragen werden.

Um an den ISP-Headers des Ender 3 zu gelangen, müssen Sie dessen Elektronik-Gehäuse links unter dem Druckbett öffnen. Dazu entfernen Sie bei ausgeschaltetem Drucker die drei Schrauben an der Oberseite der Abdeckplatte. Um an die hintere Schraube zu gelangen, müssen Sie den Drucktisch nach vorn schieben.

Im Folgenden zeigen wir Ihnen den Vorgang zur besseren Sicht bei ausgebautem Drucker-Board. Der Ausbau ist aber nicht erforderlich. Vorn neben der USB-Buchse befindet sich der Header. Verbinden Sie zunächst den Programmer und den mitgelieferten Adapter mit Hilfe des ebenfalls mitgelieferten Flachkabels. Auf dem Druckerboard müssen Sie nun den Stecker des Display-Kabels herausziehen, denn sonst passt der sechspolige Stecker des Programmer-Adapters nicht in die ISP-Buchse des Druckers. Stecken Sie den Adapter in die Buchse, so dass die farbig markierte Seite des Flachkabels zur USB-Buchse des Drucker-Boards zeigt.

Schließen Sie den Programmer richtig herum ans Drucker-Board an.

Stecken Sie den Programmer dann in eine USB-Buchse des Computers. Auf dem Druckerboard muss nun eine blaue LED leuchten als Zeichen für die Stromversorgung über den Programmer.

Laden Sie die Arduino-IDE. Im Werkzeuge-Menü wählen Sie als Prozessor "ATmega 1284 or ATmega 1284p (16 MHz)". Setzen Sie als Programmer den "USBasp" ein. Schließlich müssen Sie als Board noch "Sanguino" wählen

Screenshot Arduino-Einstellungen: Board "Sanguino", Prozessor "ATmega1284 or ATmega1284P (16 MHz)", Programmer "USBasp".

Diese Werte müssen Sie im Tools-Menü der Arduino-IDE einstellen.

Sollte die Arduino-IDE kein Sanguino-Board kennen, müssen Sie erst noch die dazu notwendigen Dateien aus dem github-Repository [7] herunterladen und im Arduino-Hardware-Ordner entpacken. Sie finden ihn in der Regel auf Festplatte C: unter \Program Files (x86)\Arduino\.

Danach klicken Sie ebenfalls im Werkzeuge-Menü auf "Bootloader brennen".

Sollte es dabei zur Fehlermeldung "cannot open USB device" kommen, fehlt der Treiber für den Programmer. Beenden Sie in diesem Fall die Arduino-IDE. Den Treiber können Sie von hier überspielen [8]. Speichern Sie die Datei und stellen Sie im Programmfenster die Werte wie im Bild ein. Ein Klick auf "Install Driver" stattet Ihren Computer dann mit dem erforderlichen Treiber aus und Sie können das Programmfenster schließen.

Bei der Installation des Programmer-Treibers müssen Sie diese Einstellungen wählen.

Starten Sie die IDE erneut und wählen Sie im Werkzeuge-Menü nochmals "Bootloader brennen". Jetzt wird es ohne Fehlermeldung funktionieren. Die Erfolgsmeldung lautet "avr done"

Entfernen Sie den Programmer und schließen Sie das Display-Kabel wieder ans Drucker-Board an. Vergewissern Sie sich, dass alle Stecker noch am richtigen Platz sind. Ist alles in Ordnung, befestigen Sie das Abdeckblech mit den drei Schrauben (die längere kommt nach hinten) auf dem Elektronik-Gehäuse. Siemüssen nun über die USB-Buchse eine neue Firmware auf das Gerät installieren. Dazu gibt es demnächst mehr in der gedruckten Make. (hgb [9])


URL dieses Artikels:
https://www.heise.de/-4543853

Links in diesem Artikel:
[1] https://www.creality.com/creality-ender-3-3d-printer-p00244p1.html
[2] http://marlinfw.org/
[3] https://www.heise.de/ratgeber/Arduino-Einstieg-Software-3226852.html
[4] https://shop.bohrers.de/usbasp-avr-programmer-incl-adapter-10-auf-6.html
[5] https://www.heise.de/thema/Arduino
[6] https://www.heise.de/thema/raspberry-pi
[7] https://github.com/Lauszus/Sanguino
[8] https://github.com/pbatard/libwdi/releases/download/b721/zadig-2.4.exe
[9] mailto:hgb@make-magazin.de