Donnerstag, 23. Januar 2014

Achsen des Rostock kalibrieren

Normalerweise werden die Achsen ja über den Riemen, das Riemenrad (Pulley) bzw. dessen Zahnung, das Stepping (1/16 oder 1/8) und die Schritte pro voller Umdrehung des Schrittmotors (üblich 200 bei Spitzenmodellen auch 400) errechnet.
Hierfür gibt es aber auch Onlinerechner wie der von Pruza:
http://calculator.josefprusa.cz/#MotorStuffSPMB

Zunächst habe ich den auch benutzt, wenn man aber nicht mit diesen errechneten Werten auf befriedigende Ergebnisse kommt, dann kann man sie auch einfach durch Probieren anpassen.

Man kann aber diese Berechnungen auch durch Messungen ersetzen, was in diesem Fall zuverlässiger ist, wenn man das Modell noch nie gebaut hat.
Deltabots eignen sich hierfür ganz besonders gut, da alle drei Achsen gleich gebaut sind und die selben Parameter haben.

Zunächst einmal müssen aber die Parallelstäbe möglichst alle gleich lang sein. Hierzu nimmt man eine Lehre und prüft den Abstand der Gelenkköpfe. Sie müssen alle das selben Maß haben (bis auf ca.+- 0.05mm). Die Lehre besteht aus einem einfachen Brett auf dem man zwei Schrauben mit dem Kopf in einem gewünschten Abstand aufklebt.

Dann legt man die Stäbe mitsamt den Kugelgelenken auf diese Messlehre und stellt den Abstand zwischen den Löchern so ein dass alle Stäbe gleich lang sind. Ich hatte die Kugelgelenke nicht geklebt, wie es viele machen, sondern mit Gewinden versehen und auf die Stäbe aufgeschraubt. Durch Drehungen kann man dann die Länge der Stäbe einstellen, wobei man etwas eingeschränkt ist, da die Kugelköpfe ja immer zueinander ausgerichtet sein müssen, sie man also nicht 90° zueinander verdreht verwenden kann.

Um nun zu ermitteln wie groß die Abweichung vom errechneten Wert ist, müssen wir zunächst einmal - nach dem Abstimmen der Parallelstäbe - an den Nullpunkt fahren (Homing).

Von dort aus misst man nun den Abstand der Düse zum Druckbett.

Diese, möglichst genau gemessene Höhe trägt man dann in der Firmware in folgenen Eintrag anstelle von XXX in Millimetern ein:

#define MANUAL_Z_HOME_POS XXX // For delta: Distance between nozzle and print surface after homing.

Bei Nachkommastellen bitte darauf achten, dass diese mit einem Punkt vom Ganzteil getrennt werden!

Nun wird Repetier-Host o.ä. aufgerufen und vom Nullpunkt aus eine Fahrt zum Druckbett durchgeführt. Hierzu gibt man folgenden G-Code ein:

g1 Z0 F2000

F2000 ist eine moderate Beschleunigung man kann sie natürlich auch geringer wählen. In jedem Fall muss der Mauszeiger und somit der Finger auf dem Notausschalter von Repetier-Host ruhen, denn die Düse kann bei dieser Fahrt crashen!

Tut sie das nicht und stoppt die Düse einige Zentimeter vor dem Auftreffen auf die Druckebene, so kann man jetzt damit beginnen, die echten Schritte pro mm durch Annäherung zu ermitteln.

Damit man nicht jedes Mal die Firmware neu hochladen muss, kann man sich diese Daten jedoch auch über das auslesbare EEPROM holen, sie verändern und wieder zurück schreiben. Später sollte man den endgültig ermittelten Wert aber auch in der Firmware eintragen und sie abspeichern, damit die Daten konsistent bleiben.

Für den Fall, dass die Düse des Hotends die Druckebene nicht erreicht hat, muss man den Wert im Repetier-Host erhöhen. Dies sollte man in kleinen Schritten tun und zwar so lange bis die Düse fast die Druckebene erreicht und nur noch ein Blatt Papier zwischen Düse und Druckbett passt.

Wäre die Düse in das Druckbett gecrasht, so muss der Wert verringert werden.

Dann wird eine neue Messfahrt zum Nullpunkt und dann wieder zur Druckebene durchgeführt. Auf diese Weise erhält man dann einen sehr guten Wert für die Auflösung des Antriebes des Deltabots.

Der Eintrag in der Firmware findet sich hier:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {81,81,81,128}  // steps per unit