Updated Howto: Firmware mit PlatformIO selbst kompilieren (markdown)

Oliver Köster
2022-02-07 12:02:00 +01:00
parent c9e48b2363
commit 8b90cae619

@@ -79,7 +79,7 @@ Herzlichen Glückwunsch! Du hast das erste Mal eine Firmware kompiliert! :)
Hier gibt es zwei Möglichkeiten. Entweder, man schließt den Drucker direkt an dem PC an, auf dem auch VSCode installiert ist und klickt statt auf "build" diesmal auf **Upload**. PlatformIO kümmert sich um den Rest und die Firmware wird direkt auf den Drucker geladen.
Die zweite Möglichkeit ist das sichern der .hex-Datei, um diese dann über Cura oder Octoprint zu installieren. Hierzu gehen wir genau in den Ordner, in dem sich der Quellcode befindet. Möglicherweise müssen versteckte Dateien angezeigt werden, doch der Ort, an dem sich die Firmware befindet, ist immer derselbe: **/Firmwareordner/Marlin/.pio/build/[VARIANTE]/firmware.hex**
Die zweite Möglichkeit ist das Sichern der .hex-Datei, um diese dann über Cura oder Octoprint zu installieren. Hierzu gehen wir genau in den Ordner, in dem sich der Quellcode befindet. Möglicherweise müssen versteckte Dateien angezeigt werden, doch der Ort, an dem sich die Firmware befindet, ist immer derselbe: **/Firmwareordner/Marlin/.pio/build/[VARIANTE]/firmware.hex**
[[ https://raw.githubusercontent.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/master/images/platformio_07_build_finished.jpg | width = 300px ]]
@@ -95,7 +95,7 @@ Also navigieren wir zu **/Marlin/src/pins/ramps/** und suchen hier nach der Date
## 8. Beispiel Fortsetzung: Buildflags
Eine letzte wichtige Eigenschaft dieser _Hybrid Firmware_ sind die oben genannten Profile, über welche die einzelnen Druckerkonfigurationen angesteuert werden. An vielen Stellen im Quellcode sind diese Definitionen zu finden, oftmals mit einem **#IF ENABLED(<Konfigurationsname>). Hierüber werden zur Zeit der Kompilierung verschiedene Pfade ein- und ausgeschaltet oder an Bedingungen geknüpft.
Eine letzte wichtige Eigenschaft dieser _Hybrid Firmware_ sind die oben genannten Profile, über welche die einzelnen Druckerkonfigurationen angesteuert werden. An vielen Stellen im Quellcode sind diese Definitionen zu finden, oftmals mit einem `#IF ENABLED(<Konfigurationsname>)`. Hierüber werden zur Zeit der Kompilierung verschiedene Pfade ein- und ausgeschaltet oder an Bedingungen geknüpft.
So hat beispielsweise der [Bondtech Mini Geared (BMG) Extruder](https://www.bondtech.se/product/bmg-extruder/) gewisse Eigenschaften und eine entgegengesetzte Laufrichtung im Vergleich zum MK8 oder Titan Extruder. Um diese Eigenschaften zu aktivieren reicht es, das Build-Flag **KNUTWURST_BMG** zu setzen. Um es als Buildflag zu deklarieren, muss vor dem Namen noch ein *-D* stehen. Also wird für den Mega Pro, welcher mit einem BMG Extruder ausgeliefert wird, das Flag **-DKNUTWURST_BMG** gesetzt, welches all diese Einstellungen im Quellcode dann übernimmt.