Visual Studio Code Tutorial Teil 2

Gastbeitrag von Olli66: Fortsetzung des Tutorials zum Kompilieren einer eigenen Firmware, heute ein konkretes Beispiel am Ender 5.

 

Wer das Visual Studio Code und Plattform.io noch nicht eingerichtet hat, schaut erst mal hier in Teil des Tutorials: Visual Studio Code Tutorial. PS: Anklicken macht die Bilder größer)

Anhand eines Beispiels möchte ich nun demonstrieren wie sich ein Ender 5 mit dem Mainboard 4.2.7 einrichten lässt.

Zunächst ist die korrekte envs in der platformio.ini einzutragen.

STM32F103RET6_creality

Habt ihr die korrekten Daten aus den Example Configs ausgesucht könnte eigentlich schon kompiliert werden, ja eigentlich. Leider ist VSC nicht sehr gesprächig, bzw. zeigt er nicht an das was im Hintergrund heruntergeladen wird. Es werden grundsätzliche Daten für die Platform des Mainboards benötigt. Zu finden ist das unter PlatformIO, Platforms.

Je mehr ihr konfiguriert desto mehr Platforms stehen hier drin, STM32 taucht bsw. mehrfach auf.

Jetzt kann kompiliert werden, und zwar im linken unteren Bereich einfach auf das Häckchen klicken.



Sollte das durchlaufen befindet sich die fertige Firmware in eurem Marlin Ordner unter .pio/build/STM32F103RET6_creality/firmware-20220130-200547.bin
Die Firmware auf eine Micro SD Karte kopieren und in firmware.bin umbennen.

Im groben und ganzen war es das im Normalfall, leider sind die Example Configs nicht immer so ordentlich konfiguriert, so das es zu Fehlern kommt.

Jetzt nehmen wir mal an ich möchte das Mainboard tauschen gegen ein BIGTREETECH SKR MINI E3 V2.0. Folgende Änderungen sind vorzunehmen. Dazu suchen wir zuerst das passende Mainboard aus, das findet ihr unter Marlin/scr/core/Boards. Mit Strg + F könnt ihr suchen, in das Suchfeld gebt ihr SKR ein. Jetzt durchsucht ihr die Einträge bis das richtige gefunden ist, in diesem Fall ist es BOARD_BTT_SKR_MINI_E3_V2_0

Das muss jetzt in der configuration.h eingetragen werden


Als nächstes müssen die Ports wie folgt geändert werden.


Im Folgenden werden die Treiber konfiguriert, das Board hat TMC2209.


Ist das so eingestellt müssen entsprechend die Jumper auf dem Mainboard für UART gesteckt sein, es geht auch TMC2209_STANDALONE, nur müsst ihr dann die Spannung wie gehabt über die Potis auf den Treibern einstellen, VREF. Im Modus UART lässt sich die Stromstärke (A) einstellen, und zwar direkt über das Druckerdisplay. Daher empfehle ich die UART Konfiguration.

Der nächste Wert der eingestellt werden muss sind die Drehrichtungen der Steppermotoren. Je nach dem welchen Richtung muss true oder false gewählt werden, hier bleibt einem nichts anderes übrig als zu kompilieren und die Richtungen zu prüfen. Ist zwar etwas mühsam, aber anders geht es nicht.


Die restlichen Einstellungen in der configuration.h können wir so belassen, da wir ja die Example Config angepasst haben.

In der configuration.adv.h muss gar nichts geändert werden.

Alles speichern und wieder neu kompilieren, wenn alles geklappt hat sieht das dann so aus.

Manchmal kommen im Terminal Hinweise in Gelb, das sind üblicherweise nur Warnungen die ignoriert werden können.

Firmware findet ihr wieder unter Marlin/.pio/build/STM32F103RC_btt_USB/. Die firmware.bin kopiert ihr auf eine SD Karte und schiebt sie in den Drucker.

Ich hab es leider schon oft gehabt das die Example Configs sich ums Verrecken nicht kompilieren ließen. Ich öffne daher eine 2. Marlin Version, benenne sieh anders, bspw. …._neu und kopiere mir die Einstellungen händisch.


Im linken Feld hab ich immer die Config die ich anpassen möchte, im rechten Feld die vorhandene Config aus den Examples. Die öffnet man wie im Bild darunter.


Das sieht dann so aus.

Hier müsst ihr dann allerdings beide Configs bearbeiten, configuration.h und configuration.adv.h

Wenn ihr noch weitere Anregungen, Lob oder Kritik habt lasst es mich wissen.

6 Kommentare

  • Also ich fand den Guide gut als Einstieg in VS Code.
    Wenn mann anfängt die Firmware zu flashen, sollte man sich damit eh ein wenig befassen, erst recht wenn man das Board umbaut.
    Daher halte ich von fertigen Configs eh nicht viel, bestenfalls für die grundsätzlichen Daten des Druckers. Ja, ich musste auch ca 10x flashen, bevor alles ging. Da fehlt hier der Theristor, da der Lüfter, und da der 2. nachgerüstete Endschalter (spätestens da geht man durch die PIN-Dateien.
    Das ist doch keine Raketenwissenschaft, sondern kostet 2 Kannen Kaffee und 1 Kiste Bier 🙂

  • Noch ein Hinweis: Zumindest unter Windows gibt es eine Grenze, wie lang der Pfad + Dateiname der Marlin-Dateien sein darf. Das gibt dann eine Fehlermeldung, dass eine Datei nicht gefunden wurde, obwohl sie da ist
    Bei Marlin gibt es einige Ebenen Unterverzeichnisse, deshalb packe ich mein Marlin immer ins Root-Verzeichnis, C:/ oder D:/ .

  • Moin,

    nicht schlecht, aber stellt VSCode die default_envs in der Datei platformio.ini (sprich das Build) beim Boardwechsel inzwischen selbsttätig um? Auf genau diese Information hatte ich gehofft…

    viele Grüße,
    Oliver

    • Dafür gibt es das Plugin [Marlin Autobuild]. Hab ich in meine Anleitung beschrieben: https://drucktipps3d.de/forum/topic/anleitung-marlin-2-x-selbst-kompilieren/

      Ausserdem sollte man wenn möglich fertige offizielle Configurations von Marlin benutzen. Die gibt es inzwischen für viele Drucker/Board-Kombinationen.
      Die Version der Configuration muss aber zum Quellcode von Marlin passen. Steht auch in meiner Anleitung.

      • Eben, und da der Olli66 ja der Meinung ist, dass man das „Auto Build Marlin“ nicht braucht, würde es mich tatsächlich interessieren ob es einen besseren und allgemeingültigen Weg hierfür gibt. Irgendwoher muss er ja den oben genannten Eintrag ja herhaben…

        Ich habe immer nach dem in der platformio.ini einzutragenen Wert in einer im GIT abgelegten Marlin-Standardkonfigurationen des jeweiligen Boardherstellers danach gesucht…

        Da braucht man manchmal ganz schön lange, da hier jeder Boardhersteller anders vorgeht…

        Daher die Frage…

        • Meine Anleitung ist nicht der Heilige Gral, ich habe nur versucht es so einfach wie möglich zu machen um Hilfestellung zu geben. Die default_envs heraus zu finden war bis jetzt kein Problem, wenn das natürlich mit Auto Build Marlin leichter geht ist das doch super.

          Das beim Boardwechsel innerhalb des VSC die default_envs selbstständig umgestellt wird ist mir nicht bekannt, das muss nach wie vor händisch gemacht werden.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert