Mainboard tauschen SKR V1.4 (Turbo)

underconst

Diese Anleitung ist NOCH NICHT FERTIG !!
Da die Steuerungseinheit komplett zerlegt wird, ist ein Drucken / Nachdrucken während der Umbauphase mit dem 3D Drucker NICHT möglich !!
Daher bitte entweder warten, bis diese Anleitung fertig ist oder auf eigenen Weg weiter machen ....

 

Stand der hier beschriebenen Marlin Version: 2.0.5.3

 

Wichtige Information:
Ich habe inzwischen das zuvor hier aufgeführte Mainboard SKR 1.3 durch den Nachfolger SKR 1.4 Turbo ersetzt, welches ein paar Kleinigkeiten mehr mitbringt.

Achtung:
Da ich das Board SKR V1.3 nicht mehr verwende (ging nie in Betrieb), berücksichtigt diese Anleitung nur noch das Board SKR V1.4 (Turbo) !!
Dies ist jenem Grund geschuldet, dass ich die Modifikationen zum SKR V1.3 nicht mehr verifizieren kann und damit alles nur "geschätzt" wäre.
Daher bitte ich um Verständnis von allen, die hier auf die Fertigstellung der Anleitung mit dem SKR V1.3 gehofft hatten.
Der Unterschied vom 1.4 zum 1.4 Turbo sind nur 20 MHz Taktunterschied (100/120MHz).
 

Hier das neue Mainboard SKR V1.4 Turbo:

Bigtreetech SKR V1.4 Turbo Mainboard

Im Bild sind die extra erhältlichen Treiberbausteine beispielhaft montiert. Diese müssen extra erworben werden.
Ich habe hier die damals gekauften TMC2208 V2.1 weiterverwendet.

Beim Anet E10 können die beiden Z-Stepper nun direkt onboard gesteckt und mit 1 Treiber gesteuert werden, womit 4 Treiber reichen.
Den 5. Treiber kann man z.B. für einen 2. Extruder verwenden oder wer will, auch wie beim SKR V1.3 als 2. Z-Treiber.

Nach einigen Recherchen bin ich nun zu dem Schluss gekommen, dass es elektrisch doch besser ist, für die 2. Z-Achse einen 2. Z-Treiber zu verwenden.
An einigen Stellen im Internet war zu lesen, dass der Treiber, der beide Motoren ansteuern muss, dann auch doppelt belastet wird.
Dieses Risiko möchte ich dann doch nicht eingehen und verwende alle 5 Plätze und verzichte vorerst auf die Möglichkeit eines 2. Extruders.

Wer ganz neu einsteigt, kann sich auch die Nachfolgemodelle V3.0 oder ganz andere Treiber besorgen (z.B. TMC2209 VX.X).
Für einige Treiber gibt es diverse Jumpersettings auch bei BIQU (Bigtreetech) auf deren GITHUB Seite.

BIQU Bigtreetech Github Seite

Beide Board sind deutlich leistungsfähiger als das originale Anet Board, dass mit dem Anet E10 Drucker ausgeliefert wird.

Herzstück der neueren Boards ist der 32 Bit Prozessor von NXP, der LPC1768 im SKR V1.4 und der LPC1769 im SKR V1.4 Turbo. Der LCP1769 wird mit 120MHz getaktet statt mit 100MHz wie beim LCP1768.

Auf den Board selbst können 5 Treiberbausteine verschiedenster Art für die Steppermotoren aufgesteckt werden.
Für diese Anleitung habe ich mich damals für die Variante TMC2208 von Bigtreetech in der Version 2.1 entschieden.
Mittlerweile ist eine Version 3.0 erschienen und viele weitere andere Arten.
Als ich meine Version 2.1 der TMC2208 bestellt habe, gab es keine anderen Treiber, außer den leistungsschwächeren und älteren.
Auf die Unterschiede möchte ich hier noch nicht eingehen, nur dass ich heute ggf. zu den neueren TMC2209 greifen würde.
Es spricht eigentlich nichts mehr für die alten TMC2208, vielleicht noch der Preis, dann aber die Version 3.0.

Zu beachten ist, dass der Anet E10 Drucker über 2 (!!) Z-Achsen verfügt (also 2 Steppermotoren bedient werden müssen).

Beim SKR V1.4 gibt es insgesamt 6 Steckplätze für die Steppermotoren.
Hier ist also von vorne herein Z zweimal vorhanden, also quasi Y-Adapter onboard.
Ich werde jedoch für den 2. Z einen eigenen Treiber nutzen, um keine Doppelbelastung eines einzelnen Treibers zu erzwingen.


Als Nächstes folgen nun die oben erwähnten Treiberbausteine für die Steppermotoren TMC2208, hier im Bild die Version 2.1 von Bigtreetech: (wie geschrieben, gibt es neuere Treiber, z.B. TMC2209 UART, wo man sich das Löten sparen kann)

TMC2208 V2.1 von Bigtreetechbtt tmc2208 bot sml

Diese Treiber zeichnen sich dadurch aus, dass sie sehr leise (ggü. den originalen von Anet) arbeiten und einen sogenannten UART Modus besitzen, bei der weitere Einstellungen über eine serielle Schnittstelle vorgenommen werden können, die sonst nur durch aufwändigere Modifizierungen oder gar nicht möglich wären. Zudem können diese Treiber bis zu 1/256 Schritte steuern, die originalen der Anet m.W. nur bis 1/16.

Das linke Bild zeigt die Platine von oben mit der Kühlfläche, auf der später der Kühlkörper geklebt wird, sobald die Platine eingesetzt wurde. Auf dem rechten Bild ist die Unterseite zu sehen und dort rechts oben ein kleiner Poti, der zum Einstellen der Betriebsspannung dient.

Die Treiber, die ich von Bigtreetech erhalten habe (Version 2.1) bieten mehrere Modis an, um angesteuert zu werden. Da der sogenannte UART Modus am flexibelsten erscheint, da er die meisten Einstellung über die Software erlaubt, werde ich diesen Modus auch nutzen und hier beschreiben.
Dieser Modus kommuniziert mit dem hier benutzen Mainboard per serieller Schnittstelle.
Vorteile sollen u.A. diese sein:

  • Motorstrom kann über die Firmware des Druckers eingestellt werden
  • Mikrosteps können über die Firmware eingestellt werden
  • Firmware kann zwischen stealthChop2 und spreadCycle umschalten (werde ich beides bald noch genauer beschreiben)
  • und einige andere Kleinigkeiten mehr

Das ist nur ein Teil der Vorteile und ohne Gewähr.

Jedoch MUSS für diesen Mode jeder Treiberbaustein umgelötet werden !!

Hierbei gilt zu beachten:
Diese Modifikation ist auf eigene Gefahr und ohne Gewähr auf eigenes Risiko durchzuführen !!
Ich übernehme keine Gewähr und keine Haftung für Schäden und/oder Datenverluste.
Zudem dürfte jedem klar sein, dass er damit jegliche Garantien und Gewährleistungen verliert, auch an dadurch im schlimmsten Fall zerstörten Zusatzteilen, wie dem Mainboard.

Um diese Modifikation durchzuführen, muss folgende Brücke auf den Treibern gelötet werden:

Loetbruecke TMC2208 fuer UARTLoetbruecke TMC2208 fuer UART geloetet

Im Internet fand ich verschiedene Angaben zur Lötbrücke. Auf Aliexpress zeigte man eine andere Brücke und einige Nutzer, die das bereits gelötet hatten, brachten sogar eine dritte Art ins Spiel, die ebenfalls funktionieren sollte (eine Brücke über drei Pins).
Ich habe mich hier auf die Variante konzentriert, die von den meisten erfolgreichen Lötern empfohlen wurde.

Auf dem oberen rechten Bild erkennt man nun die fertige Lötbrücke (Bild durch Draufklicken vergrößerbar).
Beim Löten ist unbedingt darauf zu achten, dass man keine anderen Lötpunkte erwischt oder wie bei mir, dass ein kleiner Lötspritzer an dem sehr naheliegenden Chip mehrere Beinchen miteinander verbindet. Sowas ist sehr nervig beim wieder Entfernen und erfordert eine ruhige Hand.
Für unerfahrene Löter eher nicht anzuraten und vielleicht fragt man jemanden, der bei so winzigen Strukturen bereits Löterfahrungen gesammelt hat.

Auf jeden Fall lieber das fertige Lötergebnis mit einer guten Lupe 3x kontrollieren, bevor man die Platinen einsetzt und das Mainboard in Betrieb nimmt !!

 

Bevor man die Treiberplatinen auf das Mainboard steckt, gilt es, das Mainboard vorab richtig zu Jumpern.
Hierzu halten wir uns an die originale Anleitung von Bigtreetech:

Auf der offiziellen Downloadseite von Bigtreetech auf GitHub kann man in den passenden Verzeichnissen die zum jeweiligen Board passende Anleitung als PDF in englisch herunterladen.
Darin werden auch die Jumperung und weitere Informationen zu den Boards und verschiedenen Treibern beschrieben.

Da ich aber zuerst das Mainboard am PC testen möchte, bevor ich es in den Drucker einbaue, wird die Stromversorgung vorübergehend auf USB geschaltet.
Dafür ist der entsprechende Jumper wie folgt zu stecken:

Power Jumper waehrend Test

Wichtig:
Diese Jumperstellung ist nur für den ersten Test der Einstellung der Treiber und NICHT für den späteren Betrieb !!
Hier wird das Mainboard ohne sonstiges Zubehör vorübergehend vom PC mit Strom versorgt.
Wenn der Test erfolgreich ist und das Mainboard am Drucker angeschlossen wird, muss der Jumper wieder umgesetzt werden !!

 

Nun geht es an die Einstellungen für den UART Modus der Treiberplatinen mit den TMC2208 Chips.

Die Jumperung für alle 5 Treiber sieht dann so aus:

Board Jumper fuer TMC2208 SKR V1.4 Turbo

Das Mainboard wurden bei mir mit einer Voreinstellung für andere Treiber geliefert, daher unbedingt die Jumper kontrollieren und umstecken, falls es nicht passt.

Hier die Erklärung der 3 oben gezeigten Punkte:

(1) Anders als in einigen (älteren) Manuals gezeigt, sind bei mir diese roten 2er-Pinleisten eingelötet. Dies sind KEINE Jumper !! Also nicht daran rumziehen, denn man zerstört damit das Mainboard. Wenn die Dinger da sind, alles gut, so lassen. Bei dem mir zur Anleitungserstellung vorliegenden Manual waren hier nur Lötpunkte.

(2) Auf diesem Block ist für den UART Modus des Treibers ein Jumper zu setzen, wie im linken Foto zu sehen ist (Bild anklicken zum Vergrößern).
Dieser Jumper ist auf allen Blocks zu setzen, wo der Treiber TMC2208 eingesetzt wird, in meinem Fall hier also bei allen fünf Blocks (wobei ich aber vorerst nur 4 Treiber einsetzen werde).

(3) Hier sind bei allen Leisten dieser Reihe alle Jumperpositionen leer zu lassen bzw. alle Jumper zu entfernen.

Nun wird sich der eine oder andere fragen, warum nun die Bigtreetech TMC2208 Treiberplatinen für den UART Modus gelötet werden müssen, obwohl auf dem Mainboard Jumper vorhanden sind ?!?!
Dies liegt zum einen daran, dass die Jumperung auf dem Mainboard die frühere extra hinzuzufügende Verkabelung ersetzt hat (man hat das also per Leiterbahnen und Jumper einstellbar gemacht), zum anderen ist die Löterei auf den Treiberplatinen unabhängig vom zuvor genannten. Hier wird eben der UART Modus unabhängig von der Mainboardjumperung aktiviert. Sicherlich hätte der Hersteller der Treiberplatinen auch einen Jumper anbringen können aber er wird schon seine Gründe haben, warum er dies nicht so realisiert hat.
Auf jeden Fall sind beide Maßnahmen nötig, um die Treiberbausteine per UART Modus zu betreiben (TMC2208).

Wer sich z.B. die neueren TMC2209 holt, kann zwischen zwei verschiedenen Versionen wählen, nämlich den normalen für den sogenannten Standalone Betrieb (keine Konfig per Board, nur Drehpoti und ggf. Pins) und den Versionen mit UART in der Bezeichnung (also TMC2209 UART), bei denen in der Regel die Brücken bereits gelötet wurden (entweder Lötbrücke oder 0-Ohm-Widerstand in SMD Bauweise. Hier also aufpassen beim Bestellen.

 

In dem nun folgenden Bild habe ich die Treiberplatinen aufgesteckt und die Kühlkörper aufgeklebt:

Mainboard mit Treibern und Kuehlkoerpern (SKR V1.4 Turbo)

Wie rum die Treiberplatinen auf das Board gehören, konnte ich irgendwie in der Anleitung von Bigtreetech nicht ausmachen, daher habe ich mich an den Bildern im Internet orientiert.
Ich gehe aber davon aus, dass die farbigen Pinleisten aufeinander und die schwarzen analog dazu aufeinander gesetzt werden müssen. Sonst macht die besondere Färbung irgendwie keinen Sinn.
Auch kann man sich an der kleinen Beschriftung "EN" (auf dem Mainboard) und "En" (auf der Treiberplatine) orientieren die ganz links fast aufeinander stehen.

Ob man die Kühlkörper nun längs oder quer aufklebt, hängt ein wenig von der Verbauung des Mainboards und des Luftstroms ab, wenn man ein Gehäuse benutzt.
Ich habe mir die Kühlkörper so aufgeklebt (siehe Bild), dass der Luftstrom längs des Mainboards durchzieht, also auch schön durch die Lamellenreichen ziehen kann, ohne gebremst zu werden.
Dies ist auch die am häufigsten gefundene Verbauungsart, die ich bei der Recherche ermitteln konnte.

Wer sich fragt, wie man denn nun an die Potis auf der Unterseite kommen soll, ohne die Treiberplatinen jedes Mal entfernen zu müssen, hier die Entwarnung:
Die Treiberplatinen von Bigtreetech (Version 2.1) habe in kleines Loch, durch das man mit einem sehr kleinen Feinmechanikerschraubendreher das Poti verstellen kann (oben links zwischen VM und GND).
Dies ist aber nur erforderlich, wenn mann die Treiber im Standalone Betrieb einsetzt. Im UART Modus wird das Poti nicht benutzt, sondern die Konfiguration per serieller Verbindung übertragen.

 

Als Nächstes schließen wir das Board nun an den PC an (hier Windows 10). Bitte darauf achten, dass die Unterseite des Mainboards nicht auf einer leitenden Oberfläche liegt.

Wenn alles soweit in Ordnung ist, nichts stinkt oder knallt, dann leuchtet unten links eine rote LED und Windows erkennt ein neues Gerät.
Ich konnte kurzfristig irgend etwas mit "Marlin" lesen, jedoch muss trotz alle dem noch ein Treiber installiert werden.
Im Gerätemanager von Windows 10 sah das bei mir nach der Erkennung so aus:

Geraetemanager nach dem ersten Einstecken

Laut einer aktuellen anderen Anleitung von Bigtreetech sollte Windows 10 keinen weiteren Treiber benötigen, was aber bei mir nicht sofort funktionierte, das oben angezeigte Gerät hat ein gelbes Ausrufezeichen und erfordert weitere Schritte.

Also testen wir es aus mit einem Rechtsklick auf das Gerät und der Auswahl "Treiber aktualisieren".
Es erfolgt die Frage: "Wie möchten Sie Ihren Treiber aktualisieren?"
Hier versuchen wir es mit "Automatisch nach aktualisierter Treibersoftware suchen" und tatsächlich wird etwas nachinstalliert.

Diesmal sieht das Gerät erfolgsversprechender aus:

btt board devicemanager driverreload

Es scheint also geklappt zu haben, immerhin behauptet Bigtreetech, der Treiber wäre bei Windows 10 dabei und man solle nichts weiter installieren.
(Der gezeigte COM Port kann bei jedem anders heißen, daher hier den eigenen später weiter nutzen.)

Jedoch heißt bei mir der Treiber nicht "Marlin USB Device" aber das soll jetzt erst einmal nicht weiter stören.

 

Für andere Windows Versionen (außer Win10) muss auf jeden Fall ein Treiber manuell installiert werden.

Hier gibt es hier zwei verschiedene Quellen:

  1. aus der alten Anleitung auf einem Dropbox Share liegend: https://www.dropbox.com/s/a0k5idjmf4fn82f/lpc176x_usb_driver.inf
  2. aus einer neueren Anleitung in GitHub zu finden: https://github.com/bigtreetech/..../Marlin/src/HAL/..../lpc176x_usb_driver.inf

Ich habe mir mal die Mühe gemacht und beide Versionen verglichen: Sie sind bei Erstellung dieser Anleitung absolut identisch.

Der Einfachheit würde ich den 1. Link nutzen, da ich hier oben rechts nur auf "Herunterladen" klicken muss.
Also 1. Link angeklickt und im neuen Fenster per "Herunterladen" die Datei irgendwo speichern, wo man sie danach wieder findet (Desktop z.B.).

Nun gehen wir wieder in den Gerätemanager und klicken mit der rechten Maustaste auf das serielle USB Gerät (siehe vorvorheriges Bild) und wählen "Treiber aktualisieren".
Wir werden wieder gefragt "Wie möchten Sie nach Treibern suchen?", wählen jetzt aber "Auf dem Computer nach Treibersoftware suchen" aus.

Im neuen Fenster wählen wir nun den Pfad aus, wo wir die zuvor heruntergeladene Datei hingespeichert haben und klicken auf "Weiter".
Danach sollte auch unter Nicht-Windows 10-Rechnern das erforderliche Gerät zur Verfügung stehen.

 

Um die Kommunikation und und die Treiber zu prüfen, nutzen wir, wie von Bigtreetech empfohlen, das Program Pronterface (oder jetzt Printrun).

Dieses findet man für Windows hier: Pronterface/Printrun Download

Auf der verlinkten Seite einfach die Windows Version (oder Mac User die Mac Version) herunterladen.

Nach dem Download muss die gezippte Datei nur entpackt werden und es wird keinerlei Installation benötigt. Im entpackten Ordner reicht ein Doppelklick auf die Datei "pronterface.exe":

pronterface unpacked

Danach erscheint nun die Oberfläche von Pronterface:

Pronterface erster Start
Bild bitte anklicken zum Vergrößern.

Oben in den markierten Stellen bitte die passenden Verbindungsdaten eintragen:

Port: bei mir wurde der Treiber auf COM7 installiert, bitte eigenen Port auswählen

@: 115200 (oder falls Ihr was anderes verwendet, bitte anpassen)

Dann rechts daneben auf "Connect" klicken.

Wenn alles passt und das Mainboard gefunden wurde, wird es links etwas bunter und rechts oben in der Ecke wird die Verbindung bestätigt (siehe rote Markierung):

Pronterface Verbindung hergestellt
Bild bitte anklicken zum Vergrößern.

Damit wäre zumindest erst einmal die Kommunikation zwischen PC und dem Druckermainboard getestet und auch die Übertragungsgeschwindigkeit (115200 Baud) passt.

Um aber nun die Treiberplatinen zu testen, ob diese auch im UART Modus laufen, muss die Firmware ein wenig angepasst und auf das Mainboard aufgespielt werden.

Hierzu besorgen wir uns (anders als früher hier beschrieben) die originale Marlin 2.0 Version von Marlin.org. Das hat den Grund, dass Erfahrungen anderer Nutzer gezeigt haben, dass BIQU teilweise vom Original abweicht und/oder diverse Kombinationen versch. Hardware einfach nicht funktionieren wollen.

Für den aktuellen Status dieser Anleitung habe ich die originale Marlin Version 2.0.4.4 genommen (also nicht die BugFix).

Diverse Marlin Versionen befindet sich hier: Marlin FW Download

Es erscheint folgende Seite:

Marlin Download Seite
Bild bitte anklicken zum Vergrößern.

Für diese Anleitung habe ich mich für die aktuell finale Version 2.0.4.4 entschieden (auf dem Bild ist noch die vorherige Version 2.0.3 zu sehen aber Marlin aktualisiert recht oft die Hauptversionen), da sich diese (im Gegensatz zur BugFix) nicht so schnell ändern wird und falls doch, dann mit einer neuen Versionsnummer versehen werden wird.
Wer will, kann natürlich auch die BugFix Version nehmen/testen, bei der diverse Fehler nach und nach (bis zu einer neuen finalen Version) beseitigt werden.
Das gilt auch für die DEV Version (V2.1.x), die ich aber im Moment nicht anfassen möchte, da mir solche Testversionen ggf. mehr Ärger bringen, als nützen.

Nun wird die heruntergeladene Datei an den gewünschten Ort entpackt.
Hier empfehle ich als Pfad einen relativ kurzen zu wählen, da bei mehreren Unterverzeichnissen die Gefahr besteht, dass es später Fehler bei der Erstellung der Firmware kommen kann.
Diese Erfahrung musste ich bereits machen und die Ursache war nicht leicht zu finden.

Ich habe daher mein entpacktes Marlin Verzeichnis ganz einfach auf Laufwerk C:\ verschoben: C:\Marlin-2.0.x

Welche Version man tatsächlich nutzt / heruntergeladen hat kann man dann in folgender Datei nachprüfen:

C:\Marlin-2.0.x\Marlin\Version.h

Diese Datei mit einem Texteditor geöffnet und folgende Zeile angezeigt, ergibt bei mir aktuell diese Version: 

//#define SHORT_BUILD_VERSION "2.0.5.3"

 

Um hier nun weiter verfahren zu können, muss vorab die Programmierumgebung für die SKR Firmware installiert werden.
Sollte die Installation der Programmierumgebung bereits erfolgt sein, kann der nachfolgende Link übersprungen werden.

Da diese Installationsanleitung an diesem Punkt eher fehl am Platz wäre und irgendwie nicht ganz rein passt und diesen Part nur unnötig aufblasen würde, habe ich die Installation in eine eigene Anleitung ausgelagert:

Anleitung: Visual Studio Code & PlatformIO für SKR Boards

Nach der Installation und Konfiguration kann an dieser Stelle weiter gemacht werden.

 

Bevor das neue Board irgendwo eingebaut wird, ist es ratsam einen Vorabtest der montierten Treiberbausteine (in meinem Fall TMC2208 auf UART gelötet) durchzuführen.

Dafür müssen einige Dateien in Marlin auf das Board und die Treiber angepasst werden.
Ich habe mich nun entschlossen, das SKR V1.4 auf beide Z-Achsen mit je einem eigenen Treiberbaustein zu konfigurieren, auch wenn ich dadurch den 2. Extruderanschluss verliere.

In dieser Anleitung werden beim SKR V1.4 daher alle 5 Treiber konfiguriert.

 

Wenn das Board soweit bestückt und gejumpert wurde, werden nun die wichtigsten Dateien editiert, um eine erste passende Firmware aufzuspielen, damit wir die Treiber testen können.
Später werden dann genauere Einstellungen vorgenommen.
Dieser Schritt dient zum Test, ob die Treiber reagieren und dies ist vor Einbau dringend zu empfehlen, sonst sucht man sich später einen Wolf.
Somit kann man erste Probleme der Hardware zumindest halbwegs ausschließen, an die man später evtl. nicht mehr denkt und womöglich an der Verkabelung verzweifelt.

 

Hinweis:
Ich gebe zu, diese Konfiguration der Dateien für Marlin ist nicht ohne !!
Als Anfänger arbeite ich mich immer weiter heran, um die passenden Einstellungen zu testen und finden.
Dennoch sind sicherlich einige Fehler und Probleme nicht auszuschließen.
Daher wie immer: auf eigenes Risiko, auf eigene Gefahr, keine Haftung durch mich.
Gerne nehme ich Infos, Tipps und Hinweise über die Kommentarfunktion am Ende des jeweiligen Beitrags entgegen.

 

Zum Anpassen von Marlin wird das zuvor installierte Visual Studio Code gestartet und die Datei "platformio.ini" angeklickt, welche sich im entpackten Marlin Hauptverzeichnis befindet.

Darin ist folgende Zeile ziemlich oben in der Datei im nachfolgenden Bereich rot markiert anzupassen:

C:\Marlin-2.0.x\platformio.ini

[platformio]
src_dir      = Marlin
boards_dir   = buildroot/share/PlatformIO/boards
default_envs = megaatmega2560
 

 

Letzte Zeile ändern in

SKR V1.4:

default_envs = LPC1768

 

SKR V1.4 Turbo:

default_envs = LPC1769

 

Wichtig !!
Das SKR V1.4 und das SKR V1.4 Turbo haben unterschiedliche "Prozessoren" verbaut !!

 

Danach die Datei speichern und in das nächte Verzeichnis wecheln:

C:\Marlin-2.0.x\Marlin

 

Darin müssen sich die beiden Dateien befinden:

  • Configuration.h
  • Configuration_adv.h

 

Zuerst öffnen wir die Datei Configuration.h und ändern die folgenden Stellen (rot: neue Werte):
(Viele Werte habe ich aus einer älteren Anet E10 Marlin Version für das originale Board übernommen.)

C:\Marlin-2.0.x\Marlin\Configuration.h

(ca. Zeile 113) => #define SERIAL_PORT_2 -1

(ca. Zeile 124) => #define BAUDRATE 115200

(ca. Zeile 131) => #define MOTHERBOARD BOARD_BTT_SKR_V1_4_TURBO

Die folgende Zeile definiert den Druckernamen, der im Display angezeigt wird.
Hier kann man eintragen, was man möchte:
(ca. Zeile 135) => #define CUSTOM_MACHINE_NAME "Anet E10"

(ca. Zeile 148) => #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

(ca. Zeile 409) => #define TEMP_SENSOR_0 5
(ca. Zeile 417) => #define TEMP_SENSOR_BED 5

(ca. Zeile 430) => #define TEMP_RESIDENCY_TIME 6
(ca. Zeile 434) => #define TEMP_BED_RESIDENCY_TIME 6

(ca. Zeile 453) => #define HEATER_0_MAXTEMP 285
(ca. Zeile 461) => #define BED_MAXTEMP 130

(ca. Zeile 475) => #define PID_AUTOTUNE_MENU

Die folgenden Werte wurden damals für das Anet Board 2.0 eingetragen.
Ich denke, hier muss man die Werte eh neu ermitteln:
(ca. Zeile 487) => #define DEFAULT_Kp 25.55
(ca. Zeile 488) => #define DEFAULT_Ki 1.63
(ca. Zeile 489) => #define DEFAULT_Kd 99.94
Später wird auf das PID Autotuning genauer eingegangen.

(ca. Zeile 520) => #define PIDTEMPBED

Die folgenden Werte wurden damals für das Anet Board 2.0 eingetragen.
Ich denke, hier muss man die Werte eh neu ermitteln:
(ca. Zeile 538) => #define DEFAULT_bedKp 505.36
(ca. Zeile 539) => #define DEFAULT_bedKi 96.39
(ca. Zeile 540) => #define DEFAULT_bedKd 662.41
Später wird auf das PID Autotuning genauer eingegangen.

(ca. Zeile 649) => #define X_MIN_ENDSTOP_INVERTING true
(ca. Zeile 650) => #define Y_MIN_ENDSTOP_INVERTING true
(ca. Zeile 651) => #define Z_MIN_ENDSTOP_INVERTING true

(ca. Zeile 673) => #define X_DRIVER_TYPE  TMC2208
(ca. Zeile 674) => #define Y_DRIVER_TYPE  TMC2208
(ca. Zeile 675) => #define Z_DRIVER_TYPE  TMC2208
(ca. Zeile 676) => //#define X2_DRIVER_TYPE A4988
(ca. Zeile 677) => //#define Y2_DRIVER_TYPE A4988
(ca. Zeile 678) => #define Z2_DRIVER_TYPE TMC2208
(ca. Zeile 679) => //#define Z3_DRIVER_TYPE A4988
(ca. Zeile 680) => //#define Z4_DRIVER_TYPE A4988
(ca. Zeile 681) => #define E0_DRIVER_TYPE TMC2208
(ca. Zeile 682) => //#define E1_DRIVER_TYPE A4988
(ca. Zeile 683) => //#define E2_DRIVER_TYPE A4988
(ca. Zeile 684) => //#define E3_DRIVER_TYPE A4988
(ca. Zeile 685) => //#define E4_DRIVER_TYPE A4988
(ca. Zeile 686) => //#define E5_DRIVER_TYPE A4988
(ca. Zeile 687) => //#define E6_DRIVER_TYPE A4988
(ca. Zeile 688) => //#define E7_DRIVER_TYPE A4988

(ca. Zeile 733) => #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 100 }

(ca. Zeile 740) => #define DEFAULT_MAX_FEEDRATE { 500, 500, 15, 25 }

(ca. Zeile 753) => #define DEFAULT_MAX_ACCELERATION { 1000, 1000, 1000, 5000 }

(ca. Zeile 768) => #define DEFAULT_ACCELERATION 500
(ca. Zeile 769) => #define DEFAULT_RETRACT_ACCELERATION 1000
(ca. Zeile 770) => #define DEFAULT_TRAVEL_ACCELERATION 500

(ca. Zeile 782) => #define DEFAULT_XJERK 20.0
(ca. Zeile 783) => #define DEFAULT_YJERK 20.0
(ca. Zeile 784) => #define DEFAULT_ZJERK 0.4

(ca. Zeile 1061) => #define INVERT_Z_DIR true

(ca. Zeile 1066) => #define INVERT_E0_DIR true

(ca. Zeile 1095) => #define X_BED_SIZE 220
(ca. Zeile 1096) => #define Y_BED_SIZE 270

(ca. Zeile 1104) => #define Z_MAX_POS 300

(ca. Zeile 1209) => #define MESH_BED_LEVELING

(ca. Zeile 1314) => #define LCD_BED_LEVELING

(ca. Zeile 1367) => #define HOMING_FEEDRATE_XY (100*60)

(ca. Zeile 1407) => #define XY_DIAG_AC 348.2814953456
(ca. Zeile 1408) => #define XY_DIAG_BD 348.2814953456
(ca. Zeile 1409) => #define XY_SIDE_AD 220

(ca. Zeile 1417) => #define XZ_DIAG_AC 348.2814953456
(ca. Zeile 1418) => #define XZ_DIAG_BD 348.2814953456
(ca. Zeile 1419) => #define YZ_DIAG_AC 348.2814953456
(ca. Zeile 1420) => #define YZ_DIAG_BD 348.2814953456
(ca. Zeile 1421) => #define YZ_SIDE_AD 220

Hier die Werte des verwendeten Filaments eintragen (Beispiel Hersteller www.dasfilament.de):
(ca. Zeile 1476) => #define PREHEAT_1_LABEL "PLA"
(ca. Zeile 1477) => #define PREHEAT_1_TEMP_HOTEND 215
(ca. Zeile 1478) => #define PREHEAT_1_TEMP_BED 60

Hier die Werte des verwendeten Filaments eintragen (Beispiel Hersteller www.dasfilament.de):
(ca. Zeile 1481) => #define PREHEAT_2_LABEL "PETG"
(ca. Zeile 1482) => #define PREHEAT_2_TEMP_HOTEND 230
(ca. Zeile 1483) => #define PREHEAT_2_TEMP_BED 75

Ich gehe davon aus, dass man evtl. diese Liste um weitere Filamentsorten erweitern kann (am besten selbst testen).
Jedoch habe ich momentan nur Zugriff auf diese beide Arten und belasse es daher bei diesen.

(ca. Zeile 1619) => #define LCD_LANGUAGE de

(ca. Zeile 1643) => #define DISPLAY_CHARSET_HD44780 WESTERN

(ca. Zeile 1659) => #define SDSUPPORT

(ca. Zeile 1747) => #define SPEAKER

Die folgenden Werte stammen vom originalen Display von Anet.
Hier kann es helfen, die Werte zu testen und ggf. anzupassen.
Wie man den Ton per GCode abspielt, steht im Hilfetext zu dieser Sektion:
M300 S<Frequenz in Hz> P<Dauer in ms>
Hat man den gewünschten Ton gefunden, können die beiden unteren Werte entspr. festgelegt werden:
(ca. Zeile 1756) => #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
(ca. Zeile 1757) => #define LCD_FEEDBACK_FREQUENCY_HZ 1000

Wer das Grafikdisplay oder das Dualdisplay (umschaltbar Grafik/Textemulation) verwendet, aktiviert folgende Zeile:
(ca. Zeile 1910) => #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Optional (bei mir aber nicht verwendet !!):
Wer das originale Display weiter verwenden möchte (Achtung: hier muss man die Pins der Kabel anpassen, da andere Belegung !!), aktiviert stattdessen die folgende Zeile:
(ca. Zeile 2004) => #define ANET_FULL_GRAPHICS_LCD

Die oben genannten Werte habe ich aus der BIQU / Bigtreetech und einer älteren Anet E10 Konfiguration für das SKR V1.4 Turbo übernommen.

 

Dann öffnen wir die Datei Configuration_adv.h und ändern die folgenden Stellen (rot: neue Werte):

C:\Marlin-2.0.x\Marlin\Configuration_adv.h

 

Hier wird zuerst die Anzahl der Stepper für die Z-Achse angepasst:

(ca. Zeile 520) #define NUM_Z_STEPPER_DRIVERS 2

 

Es folgen weitere Einstellungen / Änderungen:

Bei dem Wert

//#define SDCARD_CONNECTION LCD

hat BIQU vor den Block ein

(ca. Zeile 1209) => #if HAS_SDCARD_CONNECTION

und nach den Block ein

(ca. Zeile 1211) => #endif

gesetzt.
Dies habe ich zur Sicherheit mit übernommen.
Die generelle SD Card Aktivierung habe ich vorab noch nicht aktiviert, denn normalerweise möchte ich den Slot vom Board nutzen und wenn möglich, alles über das Netzwerk übertragen.

 

Zum Schluss folgt der Debug-Modus, damit wir UART testen und abfragen können:

(ca. Zeile 2349) => #define TMC_DEBUG

Dieser Debug Modus wird benötigt, da sonst die Abfrage für den UART Modus mit dem GCODE M122 nicht funktioniert.

Weitere Werte habe ich vorerst nicht weiter verfolgt.

 

Nun müssen für den 2. Steppertreiber auch die entsprechenden Pins konfiguriert werden.

Dafür öffnen wir die Datei

"C:\Marlin-2.0.x\Marlin\src\pins\lpc1768\pins_BTT_SKR_V1_4.h"

Info:
Hier wird bei der Turbo Version des Boards tatsächlich ins Verzeichnis lpc1768 gegangen, obwohl dieses einen lpc1769 Chip hat.
Dies liegt daran, dass die Pineinstellungen bei beiden Boardvarianten identisch sind und die Datei im Verzeichnis lpc1769 deshalb nur die Datei aus dem lcp1768 einbindet.

 

Darin gehen wir in die Sektion

//
// Software serial
//

und und prüfen die dort bereits angepassten Werte:

(ca. Zeile 212) => #define E1_SERIAL_TX_PIN P1_01
(ca. Zeile 213) => #define E1_SERIAL_RX_PIN P1_01

(ca. Zeile 215) => #define Z2_SERIAL_TX_PIN P1_01
(ca. Zeile 216) => #define Z2_SERIAL_RX_PIN P1_01

Dass die 4 Pins identisch konfiguriert wurden, soll laut diverser Quellen im Internet normal sein.
Ich hatte mich anfangs auch erst gewundert aber das wurde mir so bestätigt.

Ohne diese zusätzlichen Zeilen bekommen wir im Treibertest mit GCODE M122 den 5. Treiber für die 2. Z-Achse nicht angezeigt, ergo wird dieser auch nicht aktiv sein.

 

Am Schluss muss noch ein Dateiname überprüft werden, der in den Vorversionen von Marlin fehlerhaft war und beim Kompilieren Fehler ausgab::

(am Ende Datei) =>  #include "pins_BTT_SKR_common.h"

 

Wichtig:

Diese Dateien dienen in der jetzigen Fassung nur für den UART Test der Treiberplatinen (ob das Löten funktioniert hat) !!
Später sind auf jeden Fall noch einige Änderungen vorzunehmen.

 

Nun muss die Firmware über Visual Studio Code erstellt werden und das Projekt sollte durch die vorherige Arbeit bereits darin eingebunden sein.

Wer Visual Studio Code neu installiert, noch nicht benutzt oder die Dateien noch nicht eingebunden hat, kann dies einfach über den Menüpunkt "Ordner öffnen" nachholen:

Visual Studio Code PlatformIO Ordner oeffnen 

Als Pfad wird dann wieder der Hauptpfad

C:\Marlin-2.0.x

genommen und nicht das darin befindliche "Marlin", sonst findet PlatformIO die Datei "platformio.ini" nicht.

Das Ganze sollte dann wieder so aussehen:

Visual Studio Code PlatformIO Marlin eingebunden

Zum Erstellen der Firmware muss nun die Tastenkombination <Strg><Alt><B> gedrückt werden, dann startet die Kompilierung.
Dies kann eine Weile dauern.

Wenn alles geklappt hat, sollte Folgendes am Ende zu sehen sein:

Marlin hat erfolgreich kompiliert
Bild bitte anklicken zum Vergrößern.

Das Bild zeigt den erfolgreichen Kompilierungsvorgang des SKR V1.4 Turbo.
Bei der Version ohne Turbo sollte die Erfolgsmeldung bei LPC1768 stehen.

Mit den Cursortasten kann man im Log nach oben scrollen, um evtl. Fehler zu finden.

Die fertige Firmwaredatei befindet sich (wie im Log zu sehen) im folgenden Verzeichnis:

C:\Marlin-2.0.x\.pio\build\LPC1769

Die Datei nennt sich "firmware.bin" und darf auch nicht umbenannt werden.

 

Um diese neue Firmware auf das Mainboard zu flashen, wird die oben genannte Datei einfach auf die dem Mainboard beiliegende SD Karte kopiert und in das Mainboard gesteckt.
Die SD Karte sollte dabei leer sein und eine evtl. vorhandene Datei kann gelöscht werden.

Während des Flashvorgangs sollte man etwas warten und kein Kabel voreilig ziehen, denn bei mir z.B. wurde das Flashen nicht angezeigt.
U.U. meldet sich Windows (hier Windows 10), das ein neues Gerät gefunden wurde (Marlin Device) und richtete dann dieses Gerät auch gleich automatisch ein.

Um zu sehen, ob der Flashvorgang funktioniert hat, liest man die Karte im PC erneut ein und bei Erfolg wurde die Datei umbenannt in "FIRMWARE.CUR".
Danach kann die SD Karte weg gelassen oder für weitere Tests wieder eingesteckt werden.

Nun wird das Flashen und die Treiberfunktion (also eigentlich nur das korrekte Erkennen) des noch am PC angeschlossenen Boards getestet.

Dazu starten wir wieder Pronterface, stellen die Verbindung per "Connect" her und geben rechts den GCODE M122 ein und erhalten folgende Ausgabe:

Test der TMC2208 Treiberplatinen.
Bild bitte anklicken zum Vergrößern.

Im Bild sehen wir, dass alle 5 Treiberplatinen erkannt wurden und im UART Modus arbeiten.
Zudem sieht man, dass die Umkonfiguration von E1 auf Z2 funktioniert hat.
Das Umlöten der Platinen (Bigtreetech TMC 2208 V2.1) hat also geklappt.
Der Wert "false" in der Zeile "Enabled" ist normal, da wir noch keine Motoren angeklemmt/konfiguriert haben.

Würde(n) hier einer oder mehrere Platinen nicht angezeigt, kann es an zwei Problemen liegen:

  1. es wurde nicht oder nicht korrekt gelötet
  2. die Konfiguration wurde nicht korrekt durchgeführt (z.B. der 5. Treiber für Z2 muss explizit aktiviert und richtig eingestellt werden)

Vorausgesetzt, es wurden auch alle 5 Platinen eingesetzt.

 

Wichtig:
Es wurde von einigen SKR Nutzern berichtet, dass trotz allen Änderungen und Konfigurationen zwar der M122 Befehl angenommen wurde, jedoch keine richtigen Werte ausgegeben wurden.
Dabei stellte sich heraus, dass u.U. der USB Port vom PC zu wenig Strom liefert. Dies konnte bei den Meisten damit umgangen werden, indem das Mainboard mit einer externen 12V Stromversorgung betrieben wurde und der zum Anfang gezeigte Jumper auf INT / 5V gesteckt wurde. Danach seien auch wieder richtige Werte in Pronterface angezeigt worden.
Sollte das also der Fall sein, bitte mit einem externen 12V Anschluss wiederholen (am Besten mit dem Druckernetzteil).

 

Ist also alles soweit in Ordnung, kann das Mainboard in den Drucker eingebaut werden.
Alle weiteren Konfigurationen werden nun im eingebauten Zustand vorgenommen.
Dafür muss der SD Karten Slot nach wie vor zugängig sein.

Vor dem Einbau dürfen wir nicht vergessen, den Stromversorgungsjumper wieder zurück zu stellen:

Jumper wieder zurück stecken

Während die andere Jumperung (USB) die Versorgung nur über den USB Port des PCs zulässt, wird über VDD die Stromversorgung über den externen 12V Eingang, also dem Druckernetzteil realisiert. Trotzdem kann bei letzterer Jumperung der Drucker (das Mainboard) weiterhin Daten über den USB Port senden/empfangen. Lediglich die (höhere) Stromversorgung wird nun extern eingespeist, zumal der USB Strom zwar für lastschwache Tests und das Flashen der Firmware ausreicht, jedoch nicht für den Rest des Mainboards (wie Mosfets oder Treiberplatinen).

 

Bevor wir nun das alte Board ausbauen und das neue einsetzen, müssen wir zuerst ein Problem lösen: das neue Mainboard ist länger als das alte.
Ein weiteres Problem stellen die Öffnungen im Gehäuse dar für die SD Karte und den USB Geräteanschluss (für den PC).
Die beiden Ports scheinen auf den ersten Blick zwar auf beiden Mainboards an der selben Stelle zu liegen, jedoch auf der ungünstigeren Seite (links, wenn man ins geöffnete Gehäuse schaut).
Es müsste also das neue Mainboard weiter nach links ins Gehäuse gehen und dann haben alle die ein Problem, die (wie ich) dort das Mosfet für das Heizbett verbaut haben.
Zudem müssen zwei der Schraubenhalter rechts weg, da sie sonst Teile des neuen Mainboards berühren und Kurzschlüsse verursachen würden.

Man könnte nun auf das Mosfet vom neuen Mainboard zurückgreifen und sich so den neuen Platz für das alte Mosfet sparen aber es ist einfach sicherer, keine so hohen Ströme durch das Mainboard zu schicken.
Wer vor hat, eine wesentlich leistungsfähigere Druckerdüse zu nutzen, kommt sicherlich auch nicht um ein zweites externes Mosfet herum.

Bevor wir irgend etwas in der Steuerungseinheit ändern, diese wichtige Info:

WARNUNG !!
Netzstecker ziehen, da sonst im Inneren offen 220V anliegen, die sehr leicht berührt werden können !!
Alles auf eigene Gefahr und eigenes Risiko !!
Ich übernehme keine Haftung für Schäden an Leib und Leben und/oder Hardware/Software !!
Wer hier keine Erfahrung hat, bitte jemanden mit entsprechenden Fachkenntnissen um Hilfe bitten !!

Hier zwei Bilder, wie es im Inneren aussehen könnte, wenn man die Steuerungseinheit geöffnet hat:
(hier noch mit original Anet E10 Board)

Anet offen mit MosfetAnet offen mit Mosfet und neuem Netzteil

Das linke Bild zeigt die geöffnete Steuerungseinheit des Anet E10 modifiziert mit dem externen Mosfet (oben rechts in der Ecke). Wer noch kein Mosfet eingebaut hat, sieht ein wenig weniger Kabel aber im Prinzip sollte sich nicht allzu viel geändert haben. Ein Bild ohne Mosfet befindet sich im Modifikationsbereich beim Mosfeteinbau: Mosfet (Heizbett)

Das rechte Bild zeigt neben dem zusätzlich eingebauten Mosfet noch das getauschte Netzteil und im markierten Bereich die nun auf die andere Seite gewanderte 110V/220V Einstellung.
Der Netzteiltausch wird hier beschrieben: Netzteil tauschen

Der im linken Bild durch einen Kreis markierte Teil zeigt den 220V Bereich, bei dem UNBEDINGT darauf zu achten ist, dass der Netzstecker gezogen sein muss !!

Als nächstes ist es sehr ratsam, die unbeschrifteten Kabel zu beschriften, dann haben wir es später leichter beim Verkabeln am neuen Mainboard.
Gerade durch Modifikationen hinzugekommene Kabel (wie beim externen Mosfet) wird es sicherlich unbeschriftete Kabel geben, jedoch auch Anet hat nicht alles mit Namen versehen.

Wer vorher noch irgendwelche Adapter oder Halter drucken will/muss, sollte das jetzt tun, denn mit Sicherheit wird der Drucker an dieser Stelle noch nicht korrekt arbeiten, da wir später noch einige Änderungen vornehmen müssen.

 

Information:
Vor dem Abklemmen der Kabel ist zu überlegen, ob man nicht doch ein eigenes Gehäuse druckt.
Ich habe mich für 2 extra gedruckte Gehäuse entschieden (1x SKR V1.4 Turbo Board + 1x LCD Display BTT TFT35), da Modifikationen am originalen Gehäuse möglich wären aber trotzdem alles viel zu eng wäre.

 

Diesen Umbau mit den beiden externen Gehäuse habe ich in einem eigenen Bereich beschrieben:

Umbau Steuereinheit Anet E10 => SKR V1.4 (Turbo) + TFT35 V3.0

Dieser Umbau beschreibt den Ausbau der Elektronik und den Anbau beider externen Gehäuse für das Board, die Mosfets und des neuen LCDs.
Das Netzteil (hier empfohlener und beschriebener Weise) bleibt in der alten Steuerungseinheit.

Vor dem Zerlegen des originalen Anet Gehäuses müssen beide externen Gehäuse bereits gedruckt sein !!
Selbstverständlich steht es jedem frei, eigene oder andere Gehäuse zu drucken, an der Verkabelung ändert dies normalerweise nichts.

 

Nach dem Umbau kehren wir wieder hier zurück für weitere Konfigurationen.

 

Wenn wir nun nach dem Umbau aus dem anderen Beitrag wieder hierher zurückgekehrt sind, folgt nun das sogenannte "PID Tuning".

PID Tuning dient dazu, um beim Heizen des Druckkopfs eine stabile(re) Temperatur zu ermöglichen, was sich letztendlich auch auf die Qualität des Drucks positiv auswirken kann.
Hierbei gibt es sowohl für den Druckkopf als auch für das Heizbett die Möglichkeit, das PID Tuning zu aktivieren, um das Heizen zu kalibrieren.

 

Achtung:
Nicht jeder Drucker unterstützt beide PID Tuning Möglichkeiten oder überhaupt eins von beiden !!
Hier muss man also testen.

 

Weiter oben hatte ich Pro Forma bereits im Internet gefundene Werte eingetragen (ab Zeile 475), damit das Feature aktiviert werden kann.
Diese Werte können nun durch das PID Tuning korrigiert und ersetzt werden.

Das PID Tuning kann nun auf zwei Arten geschehen:

  • über das aktivierte Menü der Steuereinheit oder
  • über den PC per angeschlossenem USB Kabel über Printrun/Pronterface über GCode Befehle

Ich habe mich für die PC Version entschieden.

 

Info:
Die Einstellungen in Marlin bez. des Menüs habe ich nicht weiter getestet !!
Daher kann ich nichts weiter dazu sagen, ob oder in wie weit die Menübedienung passt und funktioniert.
Zudem konnte ich im Menü nur die Einstellungen für E1 finden und vom Bett war nichts zu sehen.
Vielleicht hat da ja jemand einen Tipp, wie man das korrekt konfiguriert, um das PID Tuning rein über den Drucker zu machen.

 

Nun wird also der Drucker wieder an den PC angeschlossen und Printrun / Pronterface gestartet, um das PID Tuning per PC auszuführen.

Da beim Druck normalerweise der Radiallüfter für das zu druckende Teil läuft, wird dieser auch für das PID Tuning mit folgendem Befehl gestartet:

M106 E0 S255

Dabei ist M106 der GCode Befehl zum Regeln des Lüfters, E0 der erste (oder einzige) Extruder und S255 gibt die Geschwindigkeit an (von 0 bis 255 / stehend bis volle Drehzahl).

Dies kann aber von der Filamentart abhängen. Bei PLA wird meist die volle Drehzahl aktiviert, bei PETG kann es u.U. auf halbe Derehzahl gehen und viele drucken ABS ohne Lüfter, da dort die Temperatur recht hoch sein muss, um das Filament brauchbar schmelzen zu können.
Hier sind ggf. einige Tests hilfreich, bei der man das später genauer austesten kann.
Ich für meinen Teil nutze also erst einmal für PLA volle Drehzahl.
Einige empfehlen für PETG einen Wert zwischen 25% und 50%, für PLA 0%.

Evtl. macht es Sinn, das PID Tuning für jede Filamentart extra durchzuführen.
Da man hierbei beim Filamentwechsel nicht jedes Mal neu Tunen möchte, können die Ergebnisse oft auch im "EEPROM" gespeichert oder in einem extra Profil in den Startcode eingefügt werden.
Die meisten Bigtreetechboards haben keinen EEPROM und nutzen eine Emulation.
Viele machen aber auch als Kompromiss ein PID Tuning bei PLA und eins bei ABS und nutzen dann für alle drei Arten (PLA, PETG und ABS) den errechneten Durchschnitt.
Das bleibt aber jedem selbst überlassen.
Ich werde hier nur das Tuning bei PLA beschreiben, da ich zu 80% nur PLA drucke, seltener PETG, bei dem ich früher aber keine Unterschiede beim Heizen feststellen konnte.

Nun benötigen wir als ersten Wert die Temperatur, mit der wir normalerweise drucken.
Ich nutze meist Filament von dasfilament.de und das von mir verwendete wird mit einer Drucktemperatur von 215 Grad angegeben.

Also läuft nun der Lüfter auf 100% für PLA und das Tuning wird gestartet mit dem Befehl

M303 E0 S215 C5

Dabei ist M303 wieder der passende GCode für den Start des Tunings, E0 definiert wieder unseren (ersten) Extruder, S215 schreibt die Temperatur von 215 Grad vor und der letzte Teil C5 gibt die Anzahl der Zyklen (Cycles) vor.
Das bedeutet, dass der Vorgang insgesamt 5x durchgeführt und dann der Mittelwert gebildet wird.

Wir können nun nach Absendung des obigen Codes auf dem Display sehen, wie die Temperatur der Heizdüse steigt und auch die blaue LED am Mosfet leuchtet ebenfalls während der Heizphase.
Der Befehl wurde also einwandfrei übernommen.

Dass dabei Filament aus der Düse kommt, ist normal, schließlich ist das ja der Sinn beim Drucken.

Währenddessen erscheinen in der Printrun / Pronterface Konsole einige Werte:

>>> M106 E0 S255
SENDING:M106 E0 S255
>>> M303 E0 S215 C5
SENDING:M303 E0 S215 C5
PID Autotune start
bias: 233 d: 21 min: 206.61 max: 215.42
bias: 235 d: 19 min: 206.96 max: 215.62
bias: 235 d: 19 min: 213.96 max: 215.62 Ku: 29.03 Tu: 26.79
Classic PID
Kp: 17.42 Ki: 1.30 Kd: 58.32
bias: 235 d: 19 min: 214.37 max: 215.42 Ku: 46.45 Tu: 22.31
Classic PID
Kp: 27.87 Ki: 2.50 Kd: 77.73
bias: 235 d: 19 min: 214.17 max: 215.62 Ku: 33.18 Tu: 24.71
Classic PID
Kp: 19.91 Ki: 1.61 Kd: 61.47
PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
#define DEFAULT_Kp 19.91
#define DEFAULT_Ki 1.61
#define DEFAULT_Kd 61.47

Die viertletzte Zeile zeigt an, dass das PID Tuning erledigt ist und gibt auch gleichzeitig die empfohlenen Werte für Marlin in den letzten drei Zeilen aus:

#define DEFAULT_Kp 19.91
#define DEFAULT_Ki 1.61
#define DEFAULT_Kd 61.47

Diese Werte trage ich nun in Marlin an entsprechender Stelle ein und kompiliere die Firmware neu und überspiele diese Firmware auf den Drucker.

Zuvor trenne ich noch die Verbindung in Printrun / Pronterface und mache einen Reset, um den Drucker wieder abkühlen zu lassen.

Wie nun ganz am Anfang beschrieben, wird nun über Visual Studio Code die Datei Configuration.h geöffnet und in den genannten Zeilen der oben ausgegebene Wert eingetragen:

(ca. Zeile 487) => #define DEFAULT_Kp 19.91
(ca. Zeile 488) => #define DEFAULT_Ki 1.61
(ca. Zeile 489) => #define DEFAULT_Kd 61.47

BITTE bei Euch die von Eurem PID TUNING ermittelten Werte eintragen !!
Die hier gezeigten sind von meinem Drucker und dienen nur als Beispiel !!

 

Bevor wir nun aber die Firmware flashen, wird noch das PID TEMP BED Tuning durchgeführt, bei dem wir im Prinzip das gleiche mit dem Heizbett machen, wie zuvor mit der Heizdüse.

Wer vielleicht - wie ich - den Drucker zuvor per Reset wieder abgekühlt hat, verbindet in Printrun / Pronterface den Drucker wieder mit dem PC.

Das Tuning für das Bett wird nun über den folgenden Befehl gestartet:

M303 E-1 S60 C5

Wie zuvor ist der GCode Befehl wieder M303, nur dass wir hier als "Extruder" den Wert "-1" nehmen, der für das Heizbett steht, also E-1.
S60 gibt wieder die Temperatur vor, die bei meinem Standard PLA Filament mit 60 Grad angegeben wurde.
C5 ist wieder der Zyklus mit fünf Durchläufen und dem daraus resultierenden Mittelwert.

Nach dem PID Tuning des Heizbetts erscheinen bei mir folgende Werte in der Konsole:

>>> M303 E-1 S60 C5
SENDING:M303 E-1 S60 C5
PID Autotune start
bias: 119 d: 119 min: 59.80 max: 60.16
bias: 119 d: 119 min: 59.80 max: 60.12
bias: 109 d: 109 min: 59.80 max: 60.16 Ku: 776.69 Tu: 11.30
No overshoot
Kp: 155.34 Ki: 27.49 Kd: 585.16
bias: 124 d: 124 min: 59.75 max: 60.12 Ku: 862.59 Tu: 11.84
No overshoot
Kp: 172.52 Ki: 29.14 Kd: 680.98
bias: 118 d: 118 min: 59.85 max: 60.16 Ku: 974.49 Tu: 10.58
No overshoot
Kp: 194.90 Ki: 36.84 Kd: 687.41
PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
#define DEFAULT_bedKp 194.90
#define DEFAULT_bedKi 36.84
#define DEFAULT_bedKd 687.41

Die letzten drei Zeilen sind wieder für die Marlin Konfiguration gedacht:

#define DEFAULT_bedKp 194.90
#define DEFAULT_bedKi 36.84
#define DEFAULT_bedKd 687.41

Diese Werte dann in Marlin hier eintragen:

(ca. Zeile 538) => #define DEFAULT_bedKp 194.90
(ca. Zeile 539) => #define DEFAULT_bedKi 36.84
(ca. Zeile 540) => #define DEFAULT_bedKd 687.41

BITTE bei Euch die von Eurem PID TUNING ermittelten Werte eintragen !!
Die hier gezeigten sind von meinem Drucker und dienen nur als Beispiel !!

 

Nun steht der vorläufigen Neuerstellung der Firmware nichts mehr entgegen.
Es kann sein, dass ggf. noch weitere Werte später eingepflegt werden, was dann an entsprechender Stelle erwähnt wird.

Das Neuerstellen der Firmware mit den neuen Werten hat den Vorteil, dass eine gewisse Grundeinstellung vorhanden ist, die praktisch ohne neue Firmware unverändert festgeschrieben wurde und auf die jederzeit ohne großen Aufwand zurückgegriffen werden kann.

Das Speichern der Werte im Slicer im Profilen kann dann sinnvoll sein, wenn man oft die Filamentart ändert und mit mehreren Profilen arbeitet.

 

 

 

Fortsetzung folgt.

 

Hier geht es zurück zur Modifikationsübersicht.

 

 

Kommentare  

0 #22 Jürgen 2020-06-01 01:00
Ich habe inzwischen auch ein paar Upgrades dirchgeführt. Meiner hat inzwischen Marlin, aber noch auf dem original board, n 220V Heizbett, ne auf zwei linearachsen geführte X-Achse und darauf nen E3D Hemera direct extruder. Macht sich alles sehr gut :)
Zitieren
0 #21 Admin 2020-05-31 23:01
Hallo Leute,
ich bin nun ein wenig weiter und habe grob den Einbau des Boards im anderen Beitrag fertig und hier noch das PID Tuning für Düse und Heizbett hinzugefügt.
Bald geht es weiter.
Grüße
Zitieren
0 #20 Admin 2020-05-17 14:44
Hallo Leo,
ich hatte mal ähnliche Probleme mit den beiden Y Achsen am Anfang und auch das Bett war kaum einzustellen.
Ich habe dann mal die beiden Aluptofile links und rechts gelockert (4 Schrauben vorne und 4 hinten), den Schlitten mehrmals vor und zurück geschoben und nach und nach über Kreuz die Schrauben leicht angezogen und das so lange wiederholt, bis alle 8 Schrauben fest waren.
Danach war zumindest mechanisch (das Bett und die Achsen betreffend) alles wieder ok.
Das nächste Problem war dann die Extruderbefestigung, die mich fast in den WS getrieben hat .... :o :D
Zitieren
0 #19 Leo 2020-05-17 11:50
Octoprint funktioniert übrigens tadellos. Drucken kann ich trotzdem noch nicht, da mein Gehäuse offenbar so verzogen ist, dass ich das Heizbett nicht mehr Leveln kann :/
Dranbleibt mit nur, den Drucker zu zerlegen und neu zusammenzubauen - und darauf hatte ich noch keine Lust ...
Zitieren
+1 #18 Admin 2020-05-17 01:41
Hallo Leo,
heute hatte ich auch das Problem mit den verpolten Lüfteranschlüssen.
Beide Kabel umgepolt => geht ....
Zitieren
0 #17 Admin 2020-03-15 02:06
Hallo Leo,
Danke für Deine Rückmeldung mit der Lösung.
Grüße
Zitieren
0 #16 Leo 2020-03-14 19:47
zitiere Leo:
.... Die Fans für den Extruder und das Filament machen keinen Mucks. Hab sie auf Fan0 und Fan1 angeschlossen...

Erledigt - die Polarität der Stecker war nur falsch. Also einfach die beiden Drähte der Stecker vertauscht und schon funktionierts :)
Nächster Schritt - Finetuning und Octoprint.....
Zitieren
0 #15 Admin 2020-03-14 16:13
Hallo Leo,
da muss ich leider passen, soweit bin ich noch nicht (bin gerade an der Anleitung zum Gehäuseumbau, da dies vorab wichtig ist, bevor es mit dem Board weiter geht).
Leider nimmt dieses Projekt sehr viel Zeit in Anspruch aber langsam geht es voran ....

Zu Deinem Problem:
Könnte sein, dass Du da was im Marlin konfigurieren musst. Schau da mal am besten nach.
Viel Erfolg und Grüße
Zitieren
0 #14 Leo 2020-03-14 14:13
Ich bins wieder :-)
Fast alles funktioniert nun recht ordentlich (die Steps per Unit musste ich etwas anpassen - besonders bei X und Y waren 80 viel zu wenig).
Aber ein kleines Problem habe ich leider: Die Fans für den Extruder und das Filament machen keinen Mucks. Hab sie auf Fan0 und Fan1 angeschlossen, kann sie aber werder mit Pronterface, über M106 oder direkt übers TFT (ja, hab mir nun auch ein Touch-Display gekauft :lol: ) ansteuern :sad:

Hast du vielleicht eine Idee?
Zitieren
0 #13 Admin 2020-03-04 17:00
Hallo Jürgen,
ich kann Dir zu OctoPi leider nix sagen, ich habe das TFT auch noch nicht in Betrieb nehmen können.
Ich hatte bisher Repetier Server im Einsatz und ein externes HDMI Display in 7 Zoll Größe angeschlossen mit Touch.
Das hat zumindest hervorragend geklappt.
Dabei diente das originale Anet Display auch nur als "Lochfüller" in der Steuerungseinheit ....
Zitieren
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok