Benutzer-Werkzeuge

Webseiten-Werkzeuge


maschinen:german_reprap_x400

German RepRap x400

Historie

Der Großraumdrucker wurde uns großzügigerweiße gespendet, war allerdings in einem nicht genau definierbaren, aber nicht druckbereitem Zustand.
Alle Achsen ließen sich bewegen, weder Hotends noch das Druckbett wollten aber aufheizen.

Zu dem Drucker existieren nur sehr wenige Resourcen Online. Durch sein alter und seine Zielgruppe (Industrie) scheinen nur wenige von diesen Druckern in die kommunale Hand gelangt zu sein.

Von der Hochschule Hamm-Lippstadt gibt es allerdings ein paar weitere Infos zu dem Drucker: https://wiki.hshl.de/wiki/index.php/3D-Druck_mit_dem_German_RepRap_X400

Generell scheint es sich um einen recht standardmäßigen Aufbau nach RepRap Prinzip zu handeln.

Ein Umbau auf Klipper statt weiternutzen der alten Marlin Firmware wäre ideal, dazu muss aber der Aufbau genauer unter die Lupe genommen werden…

Elektronik Aufbau und Reverse Engineering

In dem schwarzen Plastikgehäuse im Unterbau befindet ein Arduino Mega 2560 mit einem RAMPS v1.4 Shield mitsamt 5 A4988 Treibern.
Das 230V Heizbett wird über ein zusätzliches Solid State Relay geschaltet, welches einfach am Ausgang des Heizbetts auf dem RAMP Board angesteckt ist.
Alle Lüfter sind ungeregelt und direkt an 12V angeschlossen.
Als Stromversorgung dient ein FSP 80 plus bronze ATX Computernetzteil, von dem eine die 12V Rail direkt am Eingang des RAMPS Board angeschlossen ist.

Auf Verdacht von durchgerauchten Mosfets an den Extruder und Heizbett Ausgängen wurden diesen direkt gegen NCEP85T14 getauscht. Das hat leider keine direkte Abhilfe geschaffen.

Bei weiterem Debugging stellte sich heraus, dass der Arduino auf den eigentlichen Pins nicht mehr geschaltet hat → Fehlerursache.

Da ein Umbau auf Klipper angedacht war, und Klipper grundsätzlich ohne Probleme mit (8-bit) AVR kompatibel ist und auch RAMPS Beispielconfigs vorhanden sind, und wir sogar noch einen Raspberry Pi 4 rumliegen haben (wurde wohl als Wertanlage im Labsitterfach gebunkert), steht dem Plan wohl nicht mehr viel im Weg…!

Doch zuvor wird noch schnell das 20×4 Display und der SD-Kartenleser am Vorderpanel begutachtet.
Das Display scheint ein auf RepRapDiscount Smart Controller basierendes Design zu sein (mit einem schöneren und sehr angenehmen Drehknopf), jedoch ist noch ein zusätzliches SD-Kartenlesermodul vorhanden, welches in dem SD-CARD Port des RAMPS Boards steckt.

Da auch die Pinbelegung zumindest nicht auf Anhieb dem Beispiel aus der Klipper Beispielconfig entspricht, wurden direkt mal alle Pins von Hardware Pin Bezeichnung bis zum Pin auf dem RAMPS Erweiterungsboard gemappt:

Legende
Pin 2Pin 4Pin 6
Pin 1PIn 3Pin 5

Connector auf RAMPS Board von vorne / oben gesehen. Pin 1 des Boards ist immer unten links.
Pin Bezeichnungen in den Zellen jeweils in dieser Reihenfolge:

Pin Name auf RAMPS Board
Arduino Pin Name
Hardware Pin Name
EXP1
AUX3-7
GND
AUX4-14
D27
PA5 (AD5)
AUX4-16
D23
PA1 (AD1)
AUX4-17
D17
PH0 (RXD2)
AUX4-9
D37
PC0 (A8)
AUX3-1
VCC
AUX4-13
D29
PA7 (AD7)
AUX4-15
D25
PA3 (AD3)
AUX4-18
D16
PH1 (TXD2)
AUX4-10
D35
PC2 (A10)
EXP2
NC AUX3-2
D49
PL0 (ICP4)
AUX4-11
D33
PC4 (A12)
AUX4-12
D31
PC6 (A14)
AUX3-3
D50 (MISO)
PB3 (MISO/PCINT3)
NC AUX4-7
D41
PG0 (WR)
AUX3-4
D51 (MOSI)
PB2 (MOSI/PCINT2)
AUX3-6
D53 (SS)
PB0 (SS/PCINT0)
AUX3-5
D52 (SCK)
PB1 (SCK/PCINT1)
SD-CARD
AUX3-7
GND
AUX3-5
D52 (SCK)
PB1 (SCK/PCINT1)
AUX3-3
D50 (MISO)
PB3 (MISO/PCINT3)
AUX3-1
VCC
NC
AUX3-8
NC
AUX3-6
D53 (SS)
PB0 (SS/PCINT0)
AUX4-4
D47
PL2 (T5)
AUX3-2
D49
PL0 (ICP4)
NC

Es scheint sich also doch um eine Standardkompatible, aber gedreht Belegung zu handeln. Praktischerweise sind die Empfängerconnectoren ebenfalls gedreht, wodurch wieder die korrekte Standardbelegung entsteht.
Mit dem guten Gewissen, dass zu 81.5% nichts am Display kaputt gehen sollte, wird also fortgesetzt.

Klipper, erste Bewegungen, Kalibrierung, Kalibrierung, Kalibrierung

Bevor der Arduino umgeflasht wird, wurde noch schnell ein Dump des EEPROMs und Flashs gezogen → :maschinen:2023-08-27_arduino_mega2560_marlin_eeprom_flash.zip

Octopi ist schnell eingerichtet, Klipper installiert und der Arduino geflasht.
Die Beispielconfig für RAMPS von Klipper passt von der Pinbelegung genau und wird direkt so übernommen.

Nach ein bisschen umstecken von falsch umgesteckten Thermistoren beschwerrt sich Klipper auch nicht mehr über schlechte ADC Werte und es kann endlich losgehen, erste Bewegungen!
..allerdings nur per FORCE_MOVE, da das Homen ungetestet und unkalibriert dann doch zu heiter ist.
Aber trotzdem: alle Achsen bewegen sich ohne Probleme, die Ausgänge für Extruder und Heizbett funktionieren auch auf Anhieb (waren auf der alten Firmware flasche Pins konfiguriert oder wieso schalteten die vorher nicht??).

Doch der schwierige Teil folgt erst noch. Die Kalibrierung sollte für die Achsen auf voller Länge mindestens +-0.1mm sein (zumindest am Anfang..), auf den Extruder Achsen tuen es zur Not auch +-1mm.
Als Basis für weitere Kalibrierung dient aber die freundlicherweise geteilten Configs des Forenusers Morus: https://forum.drucktipps3d.de/forum/thread/21658-dual-extruder-update/
Diese passen zwar auch nicht perfekt, sind aber teilweise schon gut dran (+-10mm). Das ist kein all zu großes Wunder, da seine Werte für ein anderes Board mit anderen Treibern sind.

Weitere Änderungen als:

Changelog:

2023-08-29

Hotendkühler angebracht und erneuten Benchy gedruckt; Bridging um ein vielfaches besser.
Input Shaper & Pressure Advance kalibriert, noch keine weiteren Testdrucke seitdem.

2023-08-30

Recherche über high flow hotends, E3D Volcano Clone in den Warenkorb gelegt (mit vernickeltem Kupferblock, Titan Heatbreak und vernickelter Kupferspitze) + 12V 70W Heizelement.
Eventuell auch Mosquitto clone. Mosquitto bietet besseren Heatbreak, ist aber etwas komplizierter im Austausch und hat durch das dünne Heatbreak schnellere Abnutzung, besonders bei sehr abrasivem Material (z.B. xyz-Fill Filament).
TMC2209 für leiseren Betrieb.
PT1000 für höheren Temperaturbereich (ohne Verstärkung).
BLTouch 3.2 Clone für mesh bed leveling.

Gedanken über neue Schaltung um Lüfter zu steuern (momentan sind alle direkt auf 12V).
Idee: Mosfets an 12V und Servo Ausgänge. Vielleicht kleines Daughterboard das sowohl 12V Ausgänge als auch 4-5 Mosfet geschaltete Asugänge bietet, welche über standard 2.54mm Header an beliebige Pins an das RAMPS Board angeschlossen werden können.
Nebenher wurden die Kabelstränge aller „Fan“ Kabel gesichtet und sortiert und von den 12V Rails getrennt.
Vorhandene Kabel:
4x „Fan #“ mit zirka 28AWG
1x „Reserve“ mit zirka 20AWG
1x „Reserve“ mit zirka 28AWG (bisher nur auf der RAMPS Seite gesichtet, nicht auf der Toolendseite)
Idee: Fan 1-2 für Extruder & Heatbreak (kostant 12V), Fan 3-4 für Hotend (steuerbar)
Eventuell „Reserve“ für Toolwechsel Addon? (Hoch- & Runterfahren von Extrudern) ⇒ Wie soll ein Toolwechsler überhaupt umgesetzt werden?

Die Kabel für den BLTouch würde ich separat verlegen. Das ist zwar aufwändig, mir aber lieber als ein „Fan“ gelabbeltes Kabel für Daten bzw. Endstops zu missbrauchen.

2023-08-31

Fan Kabel gesichtet & sortiert.
Fan Kabel neu vercrimpt. Auf Controller Seite mit Dupont 1x2P Receptacle, GND auf Pin 1. Auf Toolhead Seite die bestehenden Molex „3 Pin Fan Header“ belassen.
Reserve Kabel neu vercrimpt. Dünnes Kabel (Sensor): auf Controller Seite mit 1x2P, Lila auf Pin 1, auf Toolhead Seite abgeschnittene Enden belassen. Dickes Kabel (Tool): auf Controller Seite mit Aderendhülsen 0.5mm², auf Toolhead Seite die 2 aufgeteilten Enden je mit JST SYP 1x2P Receptacle, GND auf Pin 1.

Verteilung Fan Kabel:

Fan 1Tool 1 Print Fan
Fan 2Tool 2 Print Fan (nc)
Fan 3Tool 1 Extruder & Heatsink Fan
Fan 4Tool 2 Extruder Fan
(Tool 2 Heatsink Fan nicht montiert)
Reserve (Tool)Tool 1: -NC-
Tool 2: -NC-
Reserve (Sensor)-NC-

Einfach Schaltung mit 2 Mosfets auf Steckbrett erstellt und an 12V, Servo 0 und Servo 1 Anschlüssen an RAMPS Board angeschlossen.
Verteilung auf RAMPS Board:

Servo 0Fan 1
Servo 1Fan 2

M106 und M107 G-Code Commands mit Macro für mehrere Fans ersetzt.
Aufrufe mit dem P Parameter setzen den jeweiligen Fan (P0 für Tool 0, P1 für Tool 1, etc.). Aufrufe ohne P Parameter setzen alle Fans.
Das neue Macro SET_TOOL_FAN funktioniert genauso wie der M106 Command, nimmt jedoch Werte von 0.0-1.0 entgegen (statt 0-255). Da es sich um ein Macro und nicht um ein G-Code Command handelt müssen Parameter mit einem Gleichheitszeichen angegeben werden (z.B. P=0, S=0.75, etc.).

Mosfet Schaltung, Verkabelung und Macro erfolgreich auf Funktion getestet durch manuelle Aufrufe in der Konsole.

2023-09-07

Lüfter Breakout Platine designed (Gerber Files, BOM & CPL ).

TMC2209 Treiber eingesetzt und verkabelt. Die insgesamt 5 Treiber wurden auf 3 UART Paare aufgeteilt:

Achse / TreiberAdresseUART PinsDIAG Pin
X00RX → AUX2-10 → A11 / D65 → PK3
TX → AUX2-9 → A12 / D66 → PK4
AUX2-4 → A9 / D63 → PK1
Y01RX → AUX2-10 → A11 / D65 → PK3
TX → AUX2-9 → A12 / D66 → PK4
AUX2-3 → A5 / D59 → PF5
Z00RX → AUX2-8 → D42 → PL7
TX → AUX2-7 → D44 → PL5
AUX1-8 → D0
AUX1-7 → A4 / D58 → PF4
Extruder 000RX → AUX2-6 → D40 → PG1
TX → AUX2-5 → A10 / D64 → PK2
AUX1-7 → A4 / D58 → PF4
SD-4 → AUX3-5 → D52 → PB0
Extruder 101RX → AUX2-6 → D40 → PG1
TX → AUX2-5 → A10 / D64 → PK2
AUX1-6 → D1
SD-3 → AUX3-6 → D53 → PB1

Weil D0 und D1 UART0 auf dem Arduino Mega 2560 sind, können diese doch nicht verwendet werden 😕
Stattdessen wird das SD Ribbon Cable ausgesteckt und dort Pins benutzt. Das Display nutzt (zumindest in Klippers Config) keine Pins des SD-CARD Headers auf dem Erweiterungsboards. Doppelte Pin Belegungen wurden auch überprüft, die einzigen Überschnitte zwischen den Headern werden nicht vom Display belegt (AUX3-2 → EXP2-4 & SD-7, AUX3-3 → EXP2-10 & SD-6, AUX3-5 → EXP2-9 & SD-4, AUX3-6 → EXP2-7 & SD-3) (Achtung: EXP1, EXP2 und SD Header sind in der Klipper Config um 180° gedreht! Also EXP1_1 (config) = EXP1-10 (header)).

Momentan nutzt Klipper den DIAG Pin nur für Sensoreless Homing, was aber bei den verbauten optischen Endstops sinnlos ist (da diese sowieso schon extrem präzise sind und kein physikalisches crashen benötigen um anzuschlagen).
Genutzt werden die Pins also momentan sowieso nicht, sie sind eher in der Hoffnung verkabelt, dass Klipper irgendwann mal Crash Detection oder andere nützliche Features implementiert die von den DIAG Pins gebrauch machen könnten.

Die 2-bit UART Adresse wird über die MS1 und MS2 Pins gesetzt. Ein überbrückter Jumper entspricht einem gesetztem Bit, ein fehlender Jumper einem ungesetztem Bit. Die Jumper auf dem RAMPS Board sind unter den Treibern zu finden.

run_current ist vorerst auf 1.0 gestellt. „Current“ (ohne Angabe ob Peak oder RMS) wird bei den Steppern (FL42STH47-1304AC-01) mit 1.30A angegeben (herauszulesen aus dem Modellnamen → 1304AC → 1.30A, 4 Kabel, AC ???).
Bei 1.3 * 0.707 =~ 0.9 springen die Y und Z Stepper. Bei 1.0 können beide homen und sich mit voller Geschwindigkeit bewegen.
Es sollte im weiteren Betrieb am besten auf die Hitzeentwicklung der Stepper geachtet werden.

2023-09-09

Kabel für BLTouch konfektioniert und verlegt. Statt des ursprünglichen Plans, die neuen Kabel durch das bestehende, sehr gescheite, Kabelhülle durchzuführen wurde eine neue Kabelhülle verwendet, da die Kabel nicht so einfach durch den Schrumpfschlauch am Ende der bestehende Kabelhülle durchgepasst hätten.
Es wurden 5 neue Kabelstränge verlegt und angeschlossen:

KabelBLTouch PinRAMPS Pin
Grau GND (Control)I2C-2 → GND
Weiß VCC / +5V (Control)I2C-1 → 5V
Gelb Signal / IN (Control)I2C-3 → D20 → PB1
Blau GND (Sensor)ZMAX-2 → GND
Lila Signal / OUT (Sensor)ZMAX-1 → D19 → PB2

Achtung: die Endstop Header haben den Pin 1 „oben“ (wenn man das RAMPS Board mit den Power Anschlüssen Links und AUX4 rechts orientiert), der I2C Header hat aber seinen Pin 1 „unten“, also genau umgedreht.

2023-09-09

Neues Hotend verkabelt und gecrimpt.
Hotend Thermistor Kabel auf Toolseite mit JST XH Buchsen versehen.
Alle neuen Kabel mit beschriftitem Schrumpfschlauch versehen.

BLTouch montiert; dafür 4 M3 Gewindelöcher in die X Carriage gebohrt, sodass die Probe ein paar Zentimeter hinter, und zentriert zwischen den Hotends sitzt. Bei dem neuen E3D Volcano Hotend ist die Probe im eingefahrenen Zustand zirka 2mm über der Hotendspitze. Ausgefahren zirka 4mm unter der Hotendspitze. Die Probe hat zirka 1.5mm travel bevor sie anschlägt.

BLTouch eingerichtet und kalibriert.
Bed Mesh eingerichtet (5×5 Probe Points, 2 Points per Subdivision, Bicubic Interpolation). Defekt (Loch) im Druckbett in der Bed Mesh Config hinzugefügt.
Bed Mesh leveling zum Print Start Macro hinzugefügt.
Bett Endstop auf neue Hotendlänge justiert (alte Schraube war zu kurz).
Z-Offsets (Bett und Probe) kalibriert.

Prime Line Macro gefixt. Die Prime Line wird jetzt ähnlich wie bei Prusa unten links gezogen.

Erster erfolgreicher Testdruck mit dem neuen Hotend aber ohne Printlüfter absolviert. Neue Lüfterhalterung angefangen zu drucken (alternative Halterung).

Run Currents für Stepper angepasst. Z Achse wurde sehr heiß, X Achse wurde ziemlich heiß. Y Achsen wurden erst nach 30min drucken merkbar warm/heiß. Dementsprechend Current der Z und X Achsen deutlich runtergesetzt und bei Y Achse leicht hochgesetzt.
Eventuell ist eine aktive Kühlung sinnvoll, besonders für die Z Achse.

2023-09-10

Neuen Fanduct montiert. Luftzufuhr zum Druckobjekt leider sehr schlecht. Nebenher den alternativen Fanduct als Druck gestartet.
Faulty Region in Bed Mesh für die vorderen zwei Montageschrauben des Druckbetts, da sonst der Fanduct beim leveling dagegenstößt.

Ringing Tower gedruckt und Input Shaper konfiguriert.
Square Tower gedruckt und Pressure Advance konfiguriert.

Run Current für Y Achse leicht runtergesetzt da der Treiber zu heiß wurde.

Ringing Tower und Square Tower Drucke (beide mit 100mm/s) soweit sehr zufriedenstellend.
Versuchter 3DBenchy Druck mit RatRig 0.15mm HF Default Einstellungen (ursprüngliche Schätzung 46min) musste leider wegen mangelhafter Druckobjekt Kühlung und (zu der Zeit noch) fehlender Pressure Advance Einstellungen abgebrochen werden.

Noctua 80mm Lüfter aus Lüftereurobox ausgegraben; 80mm auf 70mm Adapter designt und auf 3D Druck gestartet. Lüfter soll dann als leiser Ersatz für den „Elektronikkastenlüfter“ dienen (der Lüfter in der Elektronikbox mit den Arduino, RAMPS und SSR Boards). Damit sollte dann die Kühlung der Treiber hoffentlich auch leicht verbessert werden.

3D Druck von Halterung & Gehäuse für das Display gestartet.

2023-09-11

Noctua Lüfter in Elektronikbox montiert. Statt direkt Aderendhülsen an das Lüfterkabel zu crimpen wurde ein kleines Aderendhülsen auf 3-Pin Fan Header Adapterkabel zwischengeschaltet, um ein späteres Austauschen oder umstecken des Lüfters zu vereinfachen.
Bisher nach 1.5 Drucken noch kein überhitzter Treiber.

Alternativer Fan Duct passt leider nicht auf das Hotend, da es nach oben hin mit den Extrudern kolidieren würde, oder, auf Kopf montiert, mit dem Thermistor Kabel und die Montagevorrichtung für den Druckobjekt Lüfter könnte nicht auf der richtigen Höhe montiert werden.
Da die Halterung des jetzigen Fan Ducts am original „clip on“ Heatsink Halter einen guten Eindruck macht, wurde in CAD eine neue Halterung die ebenfalls auf den clip on Halter draufgeschraubt werden kann angefangen zu arbeiten. Die Halterung für den Druckobjekt Lüfter kann dann beibehalten werden.

Displaycase montiert, Montage an der Front des Druckers geplant. Ideallerweise wären HDMI und Mikro USB Flachbandkabeladapter nötig, um die zwei Anschlüssen sauber in das Innere des Druckers zu routen, ohne dabei die zwei Anschlüsse am Display auf Dauer (und ständiger Justierung) zu ermüden. Eventuell ist sowas noch im Privatvorrat vorhanden… 🤔

3DBenchy erfolgreich gedruckt. Default RatRig 0.15 HF Einstellungen aus PrusaSlicer, Hotend 205°C, Heatbed 60°C. Flow wurde manuell auf 95% gestellt. Eventuell muss der Extruder nochmal kalibriert werden.
Trotz extra auf dem Druckbett platzierten Zusatslüfter (der leider größtenteils vom jetzigen Fan Duct blockiert wurde) mangelte es deutlich an Kühlleistung.

2023-09-15

Neuer Fanduct fördert merkbar deutlich mehr Luft, Drucke sind nun auf der Seite des Fanducts optimal.Zweiter Fanduct wird für die rechte Seite ebenfalls gedruckt.

Kleiner „Stand“ an die Rückseite des Displays geklebt, nun liegt der Stand auf dem Acrylglas auf, statt dass es am Gelenk oder teilweise am HDMI Stecker aufliegt.

Front-Acrylplatte in der Mitte mit einem Winkel an die untere Acrylplatte befestigt. Nun ist sowohl die untere Acrylplatte gestärkt (sie hing vorher einige Millimeter durch), was aber viel wichtiger ist, dass nun die Front-Acrylplatte bei der Bedienung nicht mehr lästig scheppert.

Mainsail, Fluidd und Crowsnest installiert. Octoprint auf Port 80 mit Mainsail ersetzt, haproxy mit systemctl disable haproxy deaktiviert.
Fluidd auf Port 8081 gesetzt.
Crowsnest / mjpgstream läuft auf Port 8080.

Neue Filamenthalterung designed und angefangen zu drucken. Mit der neuen Halterung kann die Deckel-Acrylplatte wieder montiert werden.
Wireguide für den Toolhead kann dann eventuell mit einem Gummi oder ähnlichem am Deckel fixiert werden, damit er nicht immer auf der Y Achse aufstößt.

Ein zweites Hotend für 3mm Filament zusammengebaut, montiert und verkabelt. E3D V6 Hotend mit 0.6mm Hartmetall Nozzle, ~30W Heater, 100k NTC Thermistor.
Testerhitzen funktioniert, ebenfalls funktioniert der Thermistor.
T0 und T1 Macros angelegt. Bei einem Toolchange wird der aktive Extruder in der Variable current_extruder gespeichert (z.B. current_extruder=extruder nach T0, current_extruder=extruder1 nach T1).

LOAD_FILAMENT und UNLOAD_FILAMENT gefixt.
Beim Laden werden erst 80mm mit 30mm/s geladen, danach 30mm mit entweder der ausgewählten Geschwindigkeit (SPEED Parameter, sonst mit 5mm/s) gepurged.
Beim entladen werden erst 15mm mit der ausgewählten Geschwindigkeit (SPEED Paramter, sonst mit 5mm/s) retracted, danach 150mm mit 45mm/s.

maschinen/german_reprap_x400.txt · Zuletzt geändert: 2023/09/15 11:36 von alex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki