diff --git a/Howto:-Firmware-mit-PlatformIO-selbst-kompilieren.md b/Howto:-Firmware-mit-PlatformIO-selbst-kompilieren.md index 41a2259..3b74723 100644 --- a/Howto:-Firmware-mit-PlatformIO-selbst-kompilieren.md +++ b/Howto:-Firmware-mit-PlatformIO-selbst-kompilieren.md @@ -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 ]] -**Fertig!** \ No newline at end of file +## 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(). 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 ]] \ No newline at end of file