Bootloader für Ender-3 mit Arduino Uno

Die Firmware beim Ender-3 ist oft noch nicht auf dem aktuellen Stand. Bei meiner Version vom Ender-3 war noch die ursprüngliche Version von Creality3D ohne thermal runaway und anderen Optionen eingespielt. Das sollte sich nun ändern. Marlin ist da im Moment Stand der Dinge und soll installiert werden. Diese Anleitung ist mit Abstrichen auch für andere Drucker gültig die mit Marlin laufen. Das installieren geht in 2 Schritten. Die Installation eines Bootloaders und das eigentliche Aufspielen der Firmware. Wenn auf dem Drucker schon ein Bootloader installiert ist kann direkt zur Konfiguration und Programmieren von Marlin gegangen werden.
Die, meiner Meinung nach auch für Nutzer mit wenigen Kenntnissen, einfachste Möglichkeit Bootloader zu installieren ist mit Hilfe eines Ardino Uno. Dieses kleine Board gibt es schon für wenig Geld im Internet. Auch Nachbauten aus fernöstlicher Produktion funktionieren gut. Den Arduino wir als ISP-Programmer für den Bootloader. Er sollte schon zu Beginn am Computer angeschlossen sein.

 

Arduino Uno

Als erstes (soweit noch nicht vorhanden) installieren wir die Arduino-IDE von der Arduino-Homepage oder dem Windows-Store. Nach dem Start der Arduino-IDE sollten wir als erstes unter Werkzeuge->Port:->serielle Ports den COM-Port der durch den Arduino Uno neu bereitgestellt wurde auswählen.


Serielle Schnittstelle auswählen - hier "COM6"

Als nächstes laden wir den Sketch für ISP-Programmer unter Datei->Beispiele->11.AurduinoISP->ArduinoISP.

ArduinoISP-Sketch laden

Dann lassen wir den Sketch kompilieren und hochladen.

Sketch kompilieren und hochladen

Wenn das erfolgreich war sollte im unteren Bereich eine Meldung kommen "Hochladen abgeschlossen" und in weißer Schrift auf schwarzem Grund der Speicherverbrauch.

Hochladen erfolgreich

Eine etwaige Fehlermeldung erfolgt in hellbrauner Schrift. Die meisten Fehlerursachen sind das der Arduino nicht erkannt wurde oder keine Zugriffsrechte auf die Schnittstelle bestehen. Letzteres passiert oft unter Linux wenn der Nutzer nicht in der Gruppe "dialout" ist.
Nun ist unser Arduino eingerichtet und kann als ISP-Programmer für den Ender-3 (und auch anderes) genutzt werden.

Als nächstes müssen wir den Bootloader auf den Ender-3 spielen. Dieser ist notwendig um die Firmware später relativ einfach einspielen zu können. Der Bootloader achtet auf bestimmte Befehlsfolge(n) vom angeschlossenen Computer. Dafür stellt der µController im Drucker eine serielle Schnittstelle zur Verfügung die über einen USB-Seriell Adapter am Drucker herausgeführt wird. Da der Drucker schon eine solche Verbindung für die Druckdaten (da wo der Slicer auch seine Daten hin sendet) wird diese gleich genutzt. Beim Ender-3 ist das die vordere Buchse.

USB-Buchse am Ender 3

Über diese Buchse kann dann später bequem die Firmware auf den Drucker gespielt werden und ein solcher Aufwand wie den Bootloader programmieren ist nur einmal nötig.

Als erstes lösen wir die 3 Schrauben um die Abdeckung der Elektronik am Ender-3 zu entfernen. Die hintere Schraube lässt sich am besten lösen wenn man das Druckbett nach vorn schiebt. Beim Abheben des Deckels bitte darauf achten das der Stecker für den Gehäuselüfter vorsichtig abgezogen wird.


Deckel der Elektronik entfernen


Im vorderen Bereich neben dem Anschluss für das Display sehen wir eine 6-polige Pinleiste in der Bauform 3x2. Diese ist mit "ISP" bezeichnet.


Pinleiste 3x2

Am Arduino gibt es eine gleiche Steckverbindung mit ähnlicher Funktion.

ISP am Arduino

Diese müssen wir nun mit unserem Arduino verbinden. Am besten macht man das mit Dupont-Kabeln. Von diesen brauchen wir 5 Stück weiblich<->weiblich sowie 1 Stück männlich<->weiblich. Für die Verbindung habe ich die Pins am Arduino sowie wie am Ender-3 wie folgt nummeriert.

 

Belegung Ender-3Pins Ender-3

                           

 

Pins Arduino Pins Arduino

 

Bevor wir den Drucker mit dem Arduino-Board verbinden werden der Drucker ausgeschaltet und der Arduino vom Computer abgezogen. Nun werden die Pins wie folgt verbunden:

 

Pin Ender-3   Pin Arduino  Signal Ender-3 Signal Arduino 
 1  Pin 10*
Reset
 Digital-IO Pin 10
 2 2 GND GND
3 3 SCK SCK
4 4 MISO MOSI
5 5 MOSI MISO
6 6 VCC VCC
*Der Pin 1 am Ender-3 wird mit Pin "10"Ender Firmware 12
auf dem Arduino-Board in der Reihe
"Digital" verbunden. 

 

Die Verdrahtung sollte man noch einmal richtig kontrollieren da im schlimmsten Falle die Steuerplatine vom Drucker einem Fehler sehr übel nimmt.

Arduino mit Ender-3 verbunden

Nun können wir den Arduino wieder an den PC stecken.

Als nächstes erfolgt die Programmierung des Bootloaders. Dazu müssen wir in der Arduino-IDE ein wieder ein paar Einstellungen vornehmen. Als erstes wir nach ob unter Werkzeuge->Board der Eintrag Sanguino vorhanden ist. Ist dieser Menüpunkt vorhanden geht es hier weiter.

Falls der Eintrag nicht vorhanden ist müssen wir die Hardware noch softwareseitig bereitstellen. Dafür öffnen wir Datei->Voreinstellungen.

Voreinstellungen aufrufen

In das nun offene Fenster fügen wir unter "Zusätzliche Boardverwalter-URLs"


Zusätzliche Boardverwalter-URLs

folgenden Link ein https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json und bestätigen mit "OK".

Nun müssen wir noch die Board-Bibliothek herunterladen. Dazu rufen wir Werkzeuge->Board:->Boardverwalter auf.

Boardverwalter aufrufen

Im dem sich öffnen Fenster geben wir oben in der Suchleiste "Sang" ein um Sanguino herauszusuchen. Das Paket Sanguino installieren wir dann in der aktuellsten Version (hier 1.0.3). Danach können wir den Boardverwalter schließen.

Sanguino installieren

Nun wählen wir Werkzeuge->Board->Sanguino als Board aus.

Sanguino als Board auswählen

Als Prozessor wählen wir Atmega1284 or Atmega1284P (16Mhz) aus.


Prozessor Atmega1284 (16 MHz) auswählen

Bei Port kontrollieren wir ob unser COM-Port noch ausgewählt ist. Danach wählen wir als Programmer noch Arduino as ISP aus.

Als Programmer Arduino as ISP auswählen

Wenn das alles erledigt ist können wir mit Werkzeuge->Bootloader brennen den Bootloader auf die Druckersteuerung brennen.

Bootloader programmieren

Hat alles geklappt erscheint im unteren Bereich die Meldung "Bootloader gebrannt". Nicht wundern wenn das Display am Drucker im Moment nichts anzeigt. Das ist normal weil wir nur den Bootloader gebrannt haben und der Drucker noch keine Firmware hat.

Nun können wir den Arduino Uno wieder vom Drucker und PC abziehen, er wird nicht mehr benötigt. Die Firmware wird nun über die USB-Schnittstelle eingespielt da der Drucker mit einem Bootloader ausgestattet ist. Zur Konfiguration und und dem Programmieren der Firmware geht es im nächsten Beitrag weiter. Wenn Ihr Fragen dazu habt könnt Ihr mich gern per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! kontaktieren.