Benutzer-Werkzeuge

Webseiten-Werkzeuge


maschinen:german_reprap_x400

Dies ist eine alte Version des Dokuments!


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)).

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.

maschinen/german_reprap_x400.1694142804.txt.gz · Zuletzt geändert: 2023/09/08 05:13 von alex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki