Professional Firmware anpassen
Ja! Ich hab die Professional Firmware bereits vorgestellt. Heute geht es aber nicht um die fertige Firmware für den Ender-3 V2/S1 sondern um die Anpassung an den eigenen Drucker.
Wie Ihr die Firmware installiert werde ich darum hier nicht nochmals erklären. Das könnt Ihr im vorherigen Beitrag lesen. Beachtet besonders den Hinweis direkt am Anfang! |
Ich hab es im Beitrag zum Umbau meines Ender-5 Pro zum S1 bereits erwähnt. Der Drucker hat das Farb-Display vom Ender-3 V2 bekommen und Dank 4.2.2 Board ist er damit für eine Firmware mit Jyers UI gerüstet.
Damit sind wir schon bei den Voraussetzungen. Vermutlich wird es in Zukunft noch weitere unterstützte Hardware geben. Im Moment wird das DWIN-Display mit Drehklickknopf von Crealty und ein 4.2.2 oder 4.2.7 Board benötigt. Genau genommen wird da bereits mehr unterstützt aber das ist wohl zur Zeit noch im Test. Selber hab ich bereits den Aquila X2 umgestellt, der kommt aber mit unterschiedlichen Chips, die nicht alle im gleichen Maß zur Zeit unterstützt werden. Die Alex-Version ist in 2 Beta Versionen erhältlich und funktioniert in der von mir getesteten Version auf dem H32 Board recht gut.
Ich wollte nun 2 Drucker mit dem Creality Board 4.2.2 umrüsten und dafür nutze ich die Professional Firmware. Nun werden da bereits verschiedene Konfigurationen angeboten aber der Sovol SV01 Pro und der Ender-5 noch nicht. Ich muß also einen Source-Code auswählen und anpassen. Unterstützt wird man von dem Configurator-Tool unter Spezial-Configurations der Professional Firmware.
Ihr seht schon, da ist schon einiges an Auswahlmöglichkeit vorhanden, paßt aber alles nicht 100% zu meinen Druckern. Da muß noch einiges angepaßt werden.
Also sehen wir uns zunächst mal den Drucker an. Einen großen Teil der benötigten Werte können wir direkt mit M503 auslesen und später in die config eintragen. Passender Suchbegriff zur schnellen Suche inklusive. Verschiedene Dinge muß man messen, schätzen, ausprobieren.
Was wir hier nicht finden ist der Versatz des CR-Touch zur Düse. Am Ender sitzt der links und am SV01 Pro rechts von der Düse. Unter M851 den gemessenen Wert später eintragen.
Ich hab mir also den SourceCode vom Ender-3V2 mit 4.2.2 Board und BL-Touch genommen und den passen wir jetzt für den Sovol an. Die passende Firmware für das Display finden wir im Verzeichnis „display assets“. Einen passenden Startbildschirm könnt Ihr durch Anpassen der 0_start.jpg selber erstellen. Ich hab da jetzt nicht zu viel Energie dafür verwendet. Beachtet die Größe und Ausrichtung des Bildes.
Die Dateien aus dem configurations-Verzeichnis müssen nun in das Marlin-Verzeichnis. Da liegen bereits configuration.h und all die anderen Dateien. Also überschreiben. Ob Ihr die vorher sichern wollt ist Euch überlassen. Die Platformio.ini kommt in das übergeordnete Verzeichnis. Wie im Tutorial von Olli66 erklärt könnt Ihr das Projektverzeichnis nun im Visual Studio öffnen. Ich hab ne leichte „Allergie“ gegenüber dem VS und bearbeite lieber die einzelnen Dateien im Notepad++.
Genau genommen sind es 2 Dateien, die ich bearbeiten muß. In der Version.h geb ich der Firmware und dem Drucker nur den richtigen Namen. Hat am Ende aber keinen Einfluß auf die Funktion. In der Configuration_adv.h gibt es für mich auch nichts zu ändern. Bleibt noch die Configuration.h.
Tipp vorweg von Alex. Markiert mit einem Kommentar Eure Änderungen. Bei mir „// Uwe“ hinter der Zeile. So findet man das später schneller wieder.
So richtig viel gibt es ja nicht zu ändern. Der SV01 Pro ist etwas größer als der Ender-3. Bei der Gelegenheit läßt sich da gleich noch etwas zusätzlicher Druckbereich gewinnen. Beim Exruder muß ich auch einfach mal raten um die richtige Richtung des Stepers zu erhalten. Die Werte für Steps Acceleraton… können wir der Ausgabe von M503 entnehmen. Beim SV01 Pro muß ich nichts Neues aktivieren und Notepad++ erleichtert mir die Suche. Ich brauch mich nur auf rot markierte Teile konzentrieren. Diese Teile sind aktiviert. Für die Werte aus dem M503 können wir Den Befehl vor den Werten zur schnellen Suche verwenden. Als Beispiel M204 für Acceleration in die Suche (Strg F) eingeben. An anderer Stelle wurde mal die Frage gestellt, warum das Hotend die gewünschte Temperatur nicht erreicht. In der Firmware steht nicht nur die Heater maxTemp sondern direkt darunter auch der thermal Overshoot. Es ist im Prinzip nicht möglich, die Temperatur absolut konstant zu halten. Da hilft auch kein PID-Tuning. Das thermal Overshoot legt den zulässigen Ausschlag fest und der wird von der max Temp abgezogen. Hier beim SV01 Pro wie beim Ender-3 V2 sind das 275°C-15° also maximal 260°C am Hotend. Für das PTFE-Röhrchen bereits eine kritische Temperatur.
Wo ich nun selber messen muß, ist die Lage des CR-Touch. Beim Sovol ist der genau auf der anderen Seite montiert. Das zu messen ist nicht ganz einfach. Wäre schön, wenn ich den Source von Sovol hätte. Ich messe 38mm X- und 15mm Y-Abstand. Also sollte das in der config dann so aussehen:
#define NOZZLE_TO_PROBE_OFFSET { 38, 15, 0 } // MRiscoC BLTouch offset for Sovol (z-offset = -1.80 mm)
Irgendwann ist die Config fertig angepaßt und jetzt komm ich um VS nicht mehr herum. Also speichern, Notepad++ schließen und das Projekt im VS öffnen. Das VS braucht auch nicht lang um da nen Fehler zu melden. Was auch immer dem an /** nicht gefällt. Einfach ignorieren und das Häkchen zum Kompilieren betätigen. Wenn alles paßt kommt irgend wann die grüne Erfolgsmeldung und Ihr findet die Firmware.bin im Verzeichnis \.pio\build\STM32F103RC_creality. Stop! Nicht gleich voller Übermut den Source-Code entsorgen! Wir haben bei den Einstellungen so viele wilde Annahmen getroffen. Manch ein kleiner Haken macht sich erst nach einiger Zeit bemerkbar. Also gut aufheben!
Ja dann könnt Ihr nun die neue Firmware aufspielen und testen. Bei der ersten Home-Fahrt besser mit einer Hand am Netzschalter. Viel Erfolg! Meine Firmware leg ich hier zum Download ab.
Eines geht mir nach der ganzen Spielerei mit der Firmware durch den Kopf. Alternative User-Interfaces für die Touch-Displays gibt es inzwischen auch reichlich. Ich denke bei Creality an TM-Firmware oder die Community-Firmware für den CR-6. Sollte doch möglich sein, damit in ähnlicher Form die Firmware für verschiedene Drucker anzupassen. Prinzipiell ist das mit dem SourceCode bei der TM-Firmware auch möglich aber wer mag schon in dem Source von über 500 Varianten rumfuhrwerken. So ein Configurator wär schon ne feine Sache.
Pro-Firmware für den SV01-Pro auf Marlin 2.1.2 mit IS erstellt.