Marlin (Software)
Marlin ist eine Open Source Firmware für Werkzeugmaschinen, die nach dem RepRap-Designprinzip aufgebaut sind. Ursprünglich für 3D-Drucker entwickelt, unterstützt Marlin auch CNC-Maschinen, Laser-Cutter und Geräte für die Laser-Gravur[1].
Marlin | |
---|---|
Basisdaten | |
Maintainer | Scott Lahteine |
Erscheinungsjahr | 2011 |
Betriebssystem | Arduino-Plattform |
Programmiersprache | C |
Kategorie | 3D-Druck |
Lizenz | GPLv3 |
https://marlinfw.org/ |
Marlin ist mit über 80 Hardware Systemen (Boards) für RepRap Geräte kompatibel[2]. Durch seine Quelloffenheit ist es leicht anpassbar und daher in der Maker-Szene sehr beliebt für den Eigenbau und das Open Source Design von Maschinen mit drei Achsen[3].
Darüber hinaus nutzen viele Hersteller von 3D-Druckern Weiterentwicklungen von Marlin – so z. B. beim weit verbreiteten Prusa i3[4] oder beim Ultimaker 2.[5]
Funktionalität
Die Kernaufgabe von Marlin besteht in der Steuerung der Maschine anhand sogenannter G-Codes. Dabei bedient Marlin alle Aktoren (z. B. Schrittmotoren oder Heizelemente) und Sensoren (z. B. Anschläge oder Temperaturfühler) in Echtzeit.
Die wichtigsten Funktionen[1][6] sind:
- Empfang von auszuführenden Befehlen (G-Codes) von einem angeschlossenen Rechner oder über eine integrierte SD-Karte
- Vorausschauende Planung und Steuerung der Abläufe an allen Achsen
- Überwachung des Arbeitsvorgangs (z. B. Endanschläge der Achsen)
- Temperatur-Kontrolle und Nivellierung des Druckbetts bei 3D-Druckern nach dem Verfahren der Schmelzschichtung (FDM)
- Steuerung des Lasers bei Laser-Cuttern und Laser-Gravur
- Steuerung des Fräskopfs bei CNC-Fräsen
- Unterstützung von Bedien- und Anzeige-Elementen an der Maschine
Unterstütze Hardware
Mit einem Fokus auf besonders kostengünstige Systeme nach der RepRap Idee unterstützte Marlin anfangs Boards mit 8-Bit Prozessoren vom Typ Atmel AVR auf Basis der Arduino-Plattform. Seit der Version 2.0 (Dezember 2019) werden auch 32-Bit Systeme unterstützt, z. B. auf Basis von NXP 176x und ESP32 Prozessoren[7].
Fast alle kostengünstigen ($34 bis $200) RepRap-Boards, die heute im (Online-)Handel für Hobby oder den semi-professionellen Bereich verfügbar sind, werden von Marlin unterstützt[8]. RepRap-Boards haben bereits spezialisierte Anschlüsse und Steuerelektronik für die von der Maschine benötigten Aktoren und Sensoren integriert – in der Kombination mit Marlin kann damit ein System wesentlich schneller aufgebaut werden, als es mit einem generischen Einplatinencomputer möglich wäre.
Ein besonderer Vorteil von Marlin besteht in der weitreichenden Unterstützung von Schrittmotoren des Herstellers Trinamic. Trinamic Treiber-Module (Typen TMC21XX, 22XX, 26XX[9]) können direkt auf den Boards integriert oder als Module aufgesteckt werden und erlauben in der Kombination mit Marlin eine besonders präzise und leise Ansteuerung der Motoren[10].
Architektur
Der Quelltext von Marlin ist in der Programmiersprache C geschrieben. Die Kompilierung und das Aufspielen auf das Ziel-Board kann wahlweise über die Arduino Entwicklungsumgebung oder über PlatformIO erfolgen.[11]
Die Definition der unterstützen Boards ist bei Marlin über eine Hardwareabstraktionsschicht vom Rest der Architektur getrennt, so dass es leicht möglich ist, neue Boards zu ergänzen[2].
Der überwiegende Teil der Konfiguration (z. B. die Anpassung auf das jeweilige Board, Festlegung der Maschinen-Parameter, Motor-Treiber und Algorithmen für die Steuerung) wird beim Kompilieren über Header-Dateien festgelegt[12]. Darüber hinaus können einzelne Optionen auch im Betrieb gesetzt werden (z. B. Einstellung der Motoren oder Geschwindigkeiten).
Entwicklung und Lizenzierung
Marlin begann als Weiterentwicklung der Projekte Sprinter und grbl[1] und wird seit August 2011 als eigenständiges Projekt auf GitHub geführt. Initiator des Projekts und bis heute Maintainer des Marlin Repositorys ist Scott Lahteine[13].
Als Open-Source-Software kann Marlin nach den Regeln der GNU GPL Lizenz kostenlos genutzt, verändert und weiterentwickelt werden[14].
Einzelnachweise
- What is Marlin? 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- Boards. 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- 3D Printer Firmware: Which to Choose & How to Change It. 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- ReadMe der Prusa-Firmware: Firmware for Original Prusa i3 3D printer. Abgerufen am 22. Juli 2021 (englisch).
- GitHub - Ultimaker/Ultimaker2Marlin. Abgerufen am 22. Juli 2021 (englisch).
- Configuring Marlin. 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- Release Marlin 2.0.0 · MarlinFirmware/Marlin. Abgerufen am 23. Juli 2021 (englisch).
- Best 3D Printer Controller Boards in 2021. 9. Januar 2021, abgerufen am 23. Juli 2021 (englisch).
- Trinamic drivers. 17. Juli 2021, abgerufen am 23. Juli 2021 (englisch).
- How to make your 3D printer smart and silent with the TMC2130! – Tom's 3D printing guides and reviews. Abgerufen am 23. Juli 2021 (amerikanisches Englisch).
- Installing Marlin. 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- Configuring Marlin. 17. Juli 2021, abgerufen am 22. Juli 2021 (englisch).
- thinkyhead - Overview. Abgerufen am 28. Juli 2021 (englisch).
- Marlin/LICENSE at 2.0.x · MarlinFirmware/Marlin. Abgerufen am 22. Juli 2021 (englisch).