Updated Howto: Firmware mit PlatformIO selbst kompilieren (markdown)

Oliver Köster
2022-01-30 22:08:34 +01:00
parent 0acdd2022d
commit c8609973b2

@@ -92,4 +92,12 @@ Also navigieren wir zu **/Marlin/src/pins/ramps/** und suchen hier nach der Date
[[ https://raw.githubusercontent.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/master/images/platformio_08_pin21.jpg | width = 800px ]] [[ https://raw.githubusercontent.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/master/images/platformio_08_pin21.jpg | width = 800px ]]
**Fertig!** ## 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.
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 dektarieren, 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.
Das funktioniert auch mit allen anderen Konfigurationen/Buildflags und kann auch in andere Druckerkonfigurationen übernommen werden. So ist es einfach, neue Drucker in das bestehende Projekt einzubinden, oder den eigenen Drucker den Bedürfnissen anzupassen.
[[ https://raw.githubusercontent.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/master/images/platformio_09_buildflags.jpg | width = 800px ]]