Der 3D Drucker im Hacklab Bern (https://www.meetup.com/de-DE/Bern-Silicon-Valley-HackLab-Tech-Group), basiert auf dem CL-260 open-source Model. Er wird abwechslungsweise von Mitgliedern genutzt und verbessert.
Für das Erstellen der Druckbefehle aus den (.stl) 3D-Modellen wird zwingend ein Slicer Programm benötigt. Der grosse Klassiker ist Cura, die Alternativen wie Prusa-Slicer funktionieren sehr ähnlich:
Software | Zweck | Chocolately Paket |
---|---|---|
Cura | Slicer | cura-new |
Prusa Slicer | Slicer | prusaslicer |
Der Slicer muss gewisse Details des Druckers kennen, damit er ihn gut ansteuern kann. Anbei einige bewährte, wesentliche Einstellungen:
Einstellung | Empfohlener Wert |
---|---|
Drucker Art | FFF (Fused Filament Fabrication) |
Druckauflösung | 0.15mm |
Retraction | 5mm |
PLA Druckkopf | 210°C (erste Schicht) / 200°C |
PLA Heizbett | 55°C (erste Schicht) / 50°C |
Die Steuerung und Statuskontrolle des Druckers geht viel einfacher mit OctoPrint auf einem RaspberryPi. Damit lassen sich Durckdateien bequem hochladen und der Status jederzeit abfragen. Noch mehr Komfort bieten Plug-Ins wie:
Kein Druck ohne Filamente, diese können hier bezogen werden:
- Im FabLab Bern: https://www.objektweberei.ch
- Online u.a. bei 3D-Jake: https://www.3djake.ch/de-CH/filament/pla-filament
- Autohome
- Z-Axes senken
- Differenz an am Z-Stopp nachschrauen
- Alle Vier Ecken nachprüfen
- https://www.youtube.com/watch?v=g8uvh6kvr54
- Cold pull das Hotend auf 120°C anwärmen und laufend ziehen, bis das Verstopfte herauskommen.
Zur Wartung des Druckers hilft Pronterface, es stellt die technischeren Schnittstellen, wie das serielle Terminal zur direkten Kommunikation mit dem Drucker und bequeme Kontrolleknöpfe zum Bewegen der Achsen zur Verfügung.
Software | Zweck | Chocolately Paket |
---|---|---|
Pronterface | Fernsteuerung | printrun |
- Akkupunkturnadeln
- 2.5mm Imbusschlüssel
- 7mm Innen Sechskantschlüssel
- Messingbürste
- Flachzange
- Seitenschneider
- 1.3mm Imbusschlüssel
- M3 Schrauben und Muttern
- 5er Gabelschlüssel
- Isopropanol
- Haushaltspapier
- Schieblehre
- Kaptontape
Die Fehlersuche am Drucker ist mühsam, allerdings bietet Pursa ein Handbuch zum Erkennen der gängigsten Fehler:
Dazu hat auch der 3D-Andi ein hervorragendes Video mit vielen Fehlerquellen und -lösungen gedreht:
Bei der Montage der Düse ist sicherzustellen, dass die Düse kalt nur 0.7mm vor dem Limit angezogen ist. In warmem Zustand kann die Düse zusätzlich nach ajustiert werden.
Zur Prüfung der Ausrichtung des Heizbetts eignen sich dieses speziellen Quadratmuster. Es erlaubt die Prüfung der Druckhöhe und der Distanz zwischen Hotend und Heizbetts.
- Video: https://youtu.be/RZRY6kunAvs
- Quelle: https://www.thingiverse.com/thing:2789086
- STL: calibration_patterns
Weitere Kalibrierungsmuster: - https://www.youtube.com/watch?v=kgCjDy_IgXg
Die Mitglieder verbessern den Aufbau des Druckers laufend. Aktuell setzt er sich aus folgenden Bestandteilen zusammen:
Funktionalität | Verwendete Lösung |
---|---|
Firmware | Marlin 2.0.x |
Mikrocontroller | Arduino Mega 2560 |
Leistungselektronik Shield | RepRap-Arduino-Mega-Pololu-Shield (RAMPS) 1.4 |
Verstärker Schrittmotoren | A4988 Datasheet |
Display Platine | RepRapdiscount smart controller 2004 LCD (RED) |
Schrittmotoren | NEMA ? |
Zahnriemen | 5mm breit, 2mm Zahnschritt |
Antriebsstangen | 8mm Stahlstangen |
Lager der Antriebsstangen | 8 mm (innen) / 22 mm (aussen) / 7 mmm (Dicke) Standardlager |
Pulley | 20 Zähne, 8mm Innendurchmesser, mit M3 Imbusfixierung |
Heat Bed | |
Bowden Schlauch | 2mm PTFE Tube |
Bowden Start (Motor, M5) | PC4-M5 |
Bowden Ende (Heizkopf, R1/8) | PC4-01 |
Hot End | Hotend: e3d v6 |
Nozzle | 0.4mm |
3D Teile | Gedruckte Teile |
Stromversorgung | Schaltnetzteil 12V 20A ohne aktive Kühlung |
Medium | SD-Karte, regulärer Grösse |
Datenkabel | USB-Kabel mit Standard-B Stecker den Mikrocontroller |
Mit der Pronterface Software kann der Drucker über gCode Befehle oder das GUI mit der seriellen Schnittstelle ferngesteuert und untersucht werden:
>>> M115
SENDING:M115
FIRMWARE_NAME:Marlin 2.0.x (GitHub)
SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin
PROTOCOL_VERSION:1.0
MACHINE_TYPE:Hacklab CL260
EXTRUDER_COUNT:1
UUID:b01ac89d-d7b3-43ec-8f82-dfb65c785486
Cap:SERIAL_XON_XOFF:0
Cap:BINARY_FILE_TRANSFER:0
Cap:EEPROM:0
Cap:VOLUMETRIC:1
Cap:AUTOREPORT_TEMP:1
Cap:PROGRESS:0
Cap:PRINT_JOB:1
Cap:AUTOLEVEL:0
Cap:Z_PROBE:0
Cap:LEVELING_DATA:0
Cap:BUILD_PERCENT:0
Cap:SOFTWARE_POWER:0
Cap:TOGGLE_LIGHTS:0
Cap:CASE_LIGHT_BRIGHTNESS:0
Cap:EMERGENCY_PARSER:0
Cap:PROMPT_SUPPORT:0
Cap:AUTOREPORT_SD_STATUS:0
+--------------------------------+----------------------------------------------------+--------------+ | Einstellung | gCode | Marlin 2.0.x | +================================+====================================================+==============+ | Units in mm (mm) | G21 | | +--------------------------------+----------------------------------------------------+--------------+ | Filament diameter | M200 | D1.75 | +--------------------------------+----------------------------------------------------+--------------+ | Steps per unit | M92 | X80.00 | | | +--------------+ | | | Y80.00 | | | +--------------+ | | | Z1600.00 | | | +--------------+ | | | E161.00 | +--------------------------------+----------------------------------------------------+--------------+ | Max. Speed (mm/s) | M203 | X300.00 | | | +--------------+ | | | Y300.00 | | | +--------------+ | | | Z5.00 | | | +--------------+ | | | E45.00 | +--------------------------------+----------------------------------------------------+--------------+ | Max. Acceleration (mm/s2) | M201 | X9000 | | | +--------------+ | | | Y9000 | | | +--------------+ | | | Z100 | | | +--------------+ | | | E10000 | +--------------------------------+----------------------------------------------------+--------------+ | S=Acceleration | M204 | | +--------------------------------+ +--------------+ | P=Print Acceleration (mm/s2) | | P3000.00 | +--------------------------------+ +--------------+ | R=Retract Acceleration (mm/s2) | | R3000.00 | +--------------------------------+ +--------------+ | T=Retract Acceleration (mm/s2) | | | +--------------------------------+ +--------------+ | T=Travel Acceleration (mm/s2) | | T3000.00 | +--------------------------------+----------------------------------------------------+--------------+ | B=minimum segment time (ms) | M205 | B20000 | +--------------------------------+ +--------------+ | S=Min feedrate (mm/s) | | S0.00 | +--------------------------------+ +--------------+ | T=Min travel feedrate (mm/s) | | T0.00 | +--------------------------------+ +--------------+ | J=Junc_dev | | J0.01 | +--------------------------------+----------------------------------------------------+--------------+ | Home offset (mm) | M206 | X0.00 | | | | Y0.00 | | | | Z0.00 | +--------------------------------+----------------------------------------------------+--------------+ | Hotend PID settings | M301 | P22.20 | | | +--------------+ | | | I1.08 | | | +--------------+ | | | D114.00 | +--------------------------------+----------------------------------------------------+--------------+
Das RepRap Arduino Mega Pololu Shield dient als Plattform zur Anbindung aller weiteren Eletronik am System:
- Dem Arduino Mega als Microkontroller
- Den Schrittmotoren, ihren Reglern und Endsensoren
- Dem Heizkopf und -bett, sowie ihren jeweiligen Messfühlern
- Dem LCD-Display und Drehtaster mit SD-Kartenleser
- Den Lüftern für den Heizkopf und das Material
- etc.
https://www.aliexpress.com/item/4000211772563.html
- Sensor casing: https://www.thingiverse.com/thing:1698397
- https://www.youtube.com/watch?v=gwHpXaj_6xE
Die Kombination RAMPS1.4 und Arduino Mega ist der de-facto standard für 3D-Drucker. Aktuell besteht nur ein geringer Bedarf diese Kombination abzulösen, da nur folgende Schwächen bestehen:
- Die Leistung der Heizausgänge ist auf 11A beschränkt (MKS v1.3: 20A)
- Die Unterstützung eines TFT-Touchpanels ist mir nicht bekannt
- Die Rechenleistung im 8-Bit Kontroller ist geriner als im 32-bit Modell
Ein Kandidat wäre das BigTreeTech SKR V1.3 - https://www.aliexpress.com/item/32981807406.html
Das sogenannte "Bed Auto Leveling" ermöglicht es ein schiefes Druckbett zu kompensieren. Es kann den Abstand zum Druckbett laufen und an allen Stellen ausmessen.
Verbesserte Halterung - https://www.thingiverse.com/thing:2332037
Auf den Filamenten haftet meist ein wenig Staub. Eine Reinigung vor dem Drucken reduziert die Verunreinigung am Druckkopf.
Die LCD-Anzeige dient zur Steuerung des Druckers direkt am Gerät. Der SD-Card Leser ist ebenfalls direkt in das Modul eingebaut. Dazu muss die Marlin Konfiguration korrekt eingestellt werden.
Aktuell enthält der Drucker ein einfaches, sehr funktionales LCD 20x2 Zeichen Display. Ein grösseres Display könnte die gleichen Daten etwas komfortabler darstellen. Eine Option ist ein $8 LCD 12864 Module from Aliexpress.
Ein dazu passendes Gehäuse fand sich auf Thingiverse, oder hier im Verzeichnis.
Die aktuellen Treiberchips der Schrittmotoren sind klassische Pololu A4988. Diese Trieber steuern den Drucker korrekt, aber können keine Schrittverluste erkennen oder korrigieren. Die Motoren sind bei der Ansteuerung auch relativ laut.
Die Alternative dazu sind die TMC2130 der Firma Trinamic. Sie erlauben es, Blockierungen und damit Schrittverluste zu erkenne.
- Anleitung zum Erhalten der LCD und SD-Karte (Chris Riley): https://www.youtube.com/watch?v=kMICfCa6bHk
- Alterativ, aber unvollständig (Tom Sandladerer): https://www.youtube.com/watch?v=sPvTB3irCxQ&t=728s
Die aktuelle Firmware funktioniert wie gewünscht, ist allerdings nicht auf dem allerneusten Stand. Allfällige Verbesserungen in der Logik und Sicherheit der letzten Jahre fehlen noch und der Sourcecode ist aktuell nicht bekannt, allerdings ergibt die "M115" Abfrage ein Marlin V1.
Daher wären eine Aktualisierung in Erwägungen zu ziehen:
- Die bestehende Firmware durch Ausbau des Arduino Mega Boards sichern.
- Ein neues Arduino Mega Board ($9 Aliexpress) für die Versuche mit der neuen Firmware einbauen.
- Neue Firmware Marlin 2.0 oder Repetier herunterladen.
- Die Software für den Drucker konfigurieren (siehe HW-Konfiguration).
- Die Software installieren und mit Pronterface testen.
Hilfestellungen in der Fehlersuche der neuen Konfiguration:
- https://www.youtube.com/watch?v=0pt_b2ZizQM
- https://www.youtube.com/watch?v=lAKyZd63_ns (2016: https://www.youtube.com/watch?v=3gwWVFtdg-4)
Mit der gCode Befehl M119 kann der aktuelle Zustand der Endabschalter ausgelesen werden. Die Abfrage zeigt bei unserer Elektronik ausgelöste Stopps im offenen Zustand. Ein anschliessend testweise ausgelöster Z-Entstopp wird als offen angezeigt, der Wert wird also fehlerfrei ausgelesen und ist nur invertiert:
Reporting endstop status
x_min: TRIGGERED
y_min: TRIGGERED
z_min: open
Zur Korrektur muss die Konfiguration angepasst werden. Die xxx_MIN_ENDSTOP_INVERTING Werte sind normalerweise "false" und müssen auf "true" umgestellt werden:
Nur eine präzises Startdistanz zum Heizbett erlaubt präzise erste Schichten.
Der End-Stops soll den Schalter wiederholbar zum gleichen Zeitpunkt auslösen. Der Würfel erlaubt grössere Toleranzen zum Treffen des Schalters.
Quelle: