Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Höhe des Druckbett justieren

geschrieben von Glatzemann 
Re: Höhe des Druckbett justieren
19. October 2015 09:48
Habe jetzt nochmal einen neuen Test mit stark verstelltem Bett gemacht:
Quote

15:29:41.796 : Z-probe:7.08 X:10.00 Y:10.00
15:29:56.015 : Z-probe:8.84 X:340.00 Y:10.00
15:30:11.909 : Z-probe:10.58 X:205.00 Y:300.00
15:30:22.602 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:30:32.430 : Z-probe:6.89 X:10.00 Y:10.00
15:30:39.081 : Communication timeout - reset send buffer block
15:30:45.846 : Z-probe:7.44 X:340.00 Y:10.00
15:30:59.796 : Z-probe:8.08 X:205.00 Y:300.00
15:31:05.633 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:31:15.406 : Z-probe:6.82 X:10.00 Y:10.00
15:31:28.578 : Z-probe:7.00 X:340.00 Y:10.00
15:31:41.883 : Z-probe:7.24 X:205.00 Y:300.00
15:31:43.214 : Communication timeout - reset send buffer block
15:31:46.116 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:31:55.901 : Z-probe:6.80 X:10.00 Y:10.00
15:32:08.979 : Z-probe:6.86 X:340.00 Y:10.00
15:32:22.076 : Z-probe:6.94 X:205.00 Y:300.00
15:32:25.758 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:32:35.525 : Z-probe:6.79 X:10.00 Y:10.00
15:32:47.564 : Communication timeout - reset send buffer block
15:32:48.578 : Z-probe:6.81 X:340.00 Y:10.00
15:33:01.610 : Z-probe:6.85 X:205.00 Y:300.00
15:33:05.120 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:33:05.338 : Resend:64
Da sieht man schön, dass die Werte dann etwas weiter auseinander liegen.
Danach dann ohne etwas zu verstellen noch nen Test:
Quote

15:39:34.641 : Z-probe:6.78 X:10.00 Y:10.00
15:39:47.694 : Z-probe:6.80 X:340.00 Y:10.00
15:40:00.687 : Z-probe:6.81 X:205.00 Y:300.00
15:40:04.148 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:40:13.920 : Z-probe:6.79 X:10.00 Y:10.00
15:40:26.950 : Z-probe:6.79 X:340.00 Y:10.00
15:40:39.935 : Z-probe:6.79 X:205.00 Y:300.00
15:40:43.353 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:40:53.105 : Z-probe:6.79 X:10.00 Y:10.00
15:41:06.156 : Z-probe:6.79 X:340.00 Y:10.00
15:41:19.137 : Z-probe:6.79 X:205.00 Y:300.00
15:41:22.540 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:41:32.304 : Z-probe:6.79 X:10.00 Y:10.00
15:41:45.346 : Z-probe:6.79 X:340.00 Y:10.00
15:41:58.319 : Z-probe:6.79 X:205.00 Y:300.00
15:42:01.736 : X:205.00 Y:300.00 Z:0.000 E:0.0000
15:42:11.490 : Z-probe:6.79 X:10.00 Y:10.00
15:42:24.540 : Z-probe:6.79 X:340.00 Y:10.00
15:42:37.528 : Z-probe:6.79 X:205.00 Y:300.00
15:42:40.945 : X:205.00 Y:300.00 Z:0.000 E:0.0000
Das sieht sehr gut aus.
Komisch ist nur, dass nach der ersten Reihe null Änderungen gemacht wurden und trotzdem liegen die Werte der letzten Messung der ersten Reihe nicht gleich mit den Werten der ersten Messung der zweiten Reihe. Aber das schiebe ich mal auf den induktiven Sensor.
Re: Höhe des Druckbett justieren
19. October 2015 16:20
@justMaD: Es macht ja nicht wirklich Sinn aus den Messwerten eine Matrix zu erzeugen und diese dann wieder zu verwenden, um daraus die Steps/mm zu ermitteln. Wenn das richtig funktioniert (mal abgesehen von Float-Ungenauigkeiten) kommen da natürlich wieder exakt die gleichen Werte raus. Die Level-Routine (die wir beide verwenden) gibt ja schon exakt den Offset in Millimeter zurück, den die Achse an der Stelle bewegt werden muss

@immergut: Vielen Dank für's Testen. Ich habe eine Vermutung, woran das liegen könnte. Ich mache da morgen mal ein paar Tests und melde mich dann nochmal. Ich habe die Vermutung, daß die Koordinaten nach dem Leveln leicht verfälscht werden und dann erst zu einem späteren Zeitpunkt wieder korrigiert werden.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
19. October 2015 17:22
Naja, du erhälst ja den Abstand zum Druckbett an dem Messpunkt, bewegst aber nur eine Achse nach oben, um das zu korrigieren, nicht das ganze Druckbett.
Wenn das Bett nicht sonderlich schief ist, und der Messpunkt nahe an der Achse ist, dann macht das nicht viel aus, aber wenn man den Abstand genau auf der Achse berechnet, sollte der Wert genauer sein.

Zumindest theoretisch in meinem Kopf winking smiley
Re: Höhe des Druckbett justieren
20. October 2015 02:31
Ich hab da ehrlich gesagt auch schon drüber nachgedacht... Vielleicht ist das ja wirklich die Lösung des Problems, ich werde das aber gleich nochmal durchtesten...


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 02:45
Damit könnte man bei einem extrem schiefen Brett vielleicht einen Umlauf schneller ans Ziel kommen. Viel dürfte das aber nicht ausmachen, wenn der Messpunkt an der Spindel liegt und wenn er nicht dort liegt, dann macht man sowieso was falsch. Oder nicht?

Gruß Andreas


Einen Sparkcube 1.1XL für größere Objekte, einen Trinus3D im Gehäuse und einen Tantillus R im Bau und einen Qidi Tech Q1 Pro im Zulauf.
Sparkcube: Komplett auf 24V - DDP 8mm + 1,5mm Carbonplatte - RADDS 1.5 + Erweiterungsplatine + RAPS128 - Nema 17/1,7A 0,9 Grad - ind. Sensor für Z-Probe (kein ABL) - FTS - Titan Booster Hotend - Sparklab Extruder - Firmware Repetier mit @ Glatzemanns G33 - Repetier Server pro - Simplify3D
Re: Höhe des Druckbett justieren
20. October 2015 02:57
Viel dürfte das tatsächlich nicht ausmachen, aber die Spindel liegt ja eigentlich immer etwas außerhalb des Druckbett... Daher ist es schon richtig, daß man an dieser Stelle das Bett etwas mehr hoch oder runter fahren muss um es am Messpunkt richtig zu leveln.

Ich habe aber gerade auch mal den ersten Testlauf mit einer veränderten Logik durchgeführt. Ich mache es jetzt eher so, wie Andreas es schon beschrieben hatte:

  • Höhe Messpunkt 1 nehmen
  • Höhe Messpunkt 2 nehmen
  • Differenz berechnen und Motor 2 um diese Differenz korrigieren
  • Die letzten drei Schritte maximal 5x wiederholen, wenn die Differenz > einem einstellbaren Schwellwert ist
  • Höhe Messpunkt 1 nehmen
  • Höhe Messpunkt 2 nehmen
  • Höhe in der Mitte zwischen diesen beiden Messpunkten berechnen
  • Höhe Messpunkt 3 nehmen (der liegt ja auf der X-Achse in der Mitte zwischen Messpunkt 1 und 2, daher im vorherigen Schritt der Durchschnitt)
  • Differenz zwischen Mitte und Messpunkt 3 berechnen und Motor 3 um diese Differenz korrigieren
  • Die letzten fünf Schritte maximal 5x wiederholen, wenn die Differenz > einem einstellbaren Schwellwert ist
  • Den gesamten Vorgang maximal 5x wiederholen

Die Anzahl der Wiederholungen ist konfigurierbar und die Schwellwerte ebenfalls. Erste Tests haben gute Ergebnisse erzielt. Ich teste das jetzt nochmal mit stark verstelltem Druckbett.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 03:31
So, Testlauf mit stark verstelltem Bett ist nun durch. Ich hatte die Achsen jeweils um ca. 2-3mm "verdreht".

// 1. Wiederholung

// Beginn Leveling Z1/Z2
09:01:09.531 : Z-probe:7.47 X:0.00 Y:30.00
09:01:31.138 : Z-probe:11.06 X:220.00 Y:30.00

09:01:57.385 : Z-probe:6.85 X:0.00 Y:30.00
09:02:17.292 : Z-probe:8.27 X:220.00 Y:30.00

09:02:39.051 : Z-probe:6.62 X:0.00 Y:30.00
09:02:58.290 : Z-probe:7.15 X:220.00 Y:30.00

09:03:18.246 : Z-probe:6.56 X:0.00 Y:30.00
09:03:37.243 : Z-probe:6.73 X:220.00 Y:30.00

09:03:56.455 : Z-probe:6.53 X:0.00 Y:30.00
09:04:15.362 : Z-probe:6.59 X:220.00 Y:30.00

// Beginn Leveling Z3
09:04:34.363 : Z-probe:6.51 X:0.00 Y:30.00
09:04:53.239 : Z-probe:6.54 X:220.00 Y:30.00
09:05:13.420 : Z-probe:9.25 X:110.00 Y:210.00

09:05:37.332 : Z-probe:6.77 X:0.00 Y:30.00
09:05:56.453 : Z-probe:6.77 X:220.00 Y:30.00
09:06:16.089 : Z-probe:7.93 X:110.00 Y:210.00

09:06:37.316 : Z-probe:6.86 X:0.00 Y:30.00
09:06:56.535 : Z-probe:6.87 X:220.00 Y:30.00
09:07:15.937 : Z-probe:7.37 X:110.00 Y:210.00

09:07:36.024 : Z-probe:6.91 X:0.00 Y:30.00
09:07:55.280 : Z-probe:6.91 X:220.00 Y:30.00
09:08:14.581 : Z-probe:7.12 X:110.00 Y:210.00

09:08:34.164 : Z-probe:6.92 X:0.00 Y:30.00
09:08:53.432 : Z-probe:6.92 X:220.00 Y:30.00
09:09:12.684 : Z-probe:7.02 X:110.00 Y:210.00

09:09:32.091 : Z-probe:6.92 X:0.00 Y:30.00
09:09:51.364 : Z-probe:6.92 X:220.00 Y:30.00
09:10:10.598 : Z-probe:6.97 X:110.00 Y:210.00

// 2. Wiederholung

// Beginn Leveling Z1/Z2
09:10:29.899 : Z-probe:6.92 X:0.00 Y:30.00
09:10:49.175 : Z-probe:6.93 X:220.00 Y:30.00

// Begin Leveling Z3
09:11:08.455 : Z-probe:6.92 X:0.00 Y:30.00
09:11:27.740 : Z-probe:6.92 X:220.00 Y:30.00
09:11:46.959 : Z-probe:6.95 X:110.00 Y:210.00

// 3. Wiederholung

// Beginn Leveling Z1/Z2
09:12:06.214 : Z-probe:6.93 X:0.00 Y:30.00
09:12:25.486 : Z-probe:6.92 X:220.00 Y:30.00

// Beginn Leveling Z3
09:12:44.763 : Z-probe:6.92 X:0.00 Y:30.00
09:13:04.034 : Z-probe:6.92 X:220.00 Y:30.00
09:13:23.249 : Z-probe:6.94 X:110.00 Y:210.00

09:13:42.489 : Z-probe:6.93 X:0.00 Y:30.00
09:14:01.769 : Z-probe:6.93 X:220.00 Y:30.00
09:14:20.983 : Z-probe:6.93 X:110.00 Y:210.00

09:14:40.202 : Z-probe:6.92 X:0.00 Y:30.00
09:14:59.475 : Z-probe:6.93 X:220.00 Y:30.00
09:15:18.685 : Z-probe:6.93 X:110.00 Y:210.00

09:15:37.912 : Z-probe:6.92 X:0.00 Y:30.00
09:15:57.189 : Z-probe:6.93 X:220.00 Y:30.00
09:16:16.403 : Z-probe:6.93 X:110.00 Y:210.00

Wie man sieht, ist nun am Ende der Kalibrierprozedur alles auf der gleichen Höhe. Dabei habe ich zwei Erkenntnisse gewonnen:

  • Das (starke) justieren einer Spindel führt zu (leichten) Höhenveränderungen an allen anderen Spindeln. Ohne Wiederholung kommt man also nicht aus
  • Das Verfahren um die Höhendifferenz am Messpunkt auszugleichen ist minimal ungenau. Tatsächlich ist der Höhenunterschied etwas geringer als direkt an der Spindel

Der zweite Punkt wurde ja bereits vermutet. Trotzdem ist es so glaube ich ok, da der Code etwas einfacher ist und weniger Rechenzeit benötigt wird. Wiederholungen sind auf jeden Fall notwendig und eine stärkere Korrektur im ersten Durchgang führt dazu, daß danach die anderen Achsen stärker neu kalibriert werden müssen.

Dem ein oder anderen ist vielleicht aufgefallen, daß der Vorgang nun recht lange dauert. Bei mir ca. 15 Minuten. Das liegt bei mir unter anderem daran, daß ich mit 5 Messwiederholungen pro Messpunkt getestet habe (Default-Einstellung von Repetier). Zwei oder Drei Wiederholungen würden hier auch reichen, dann braucht's schon deutlich weniger Zeit. Evtl. werde ich auch noch mehr "Early out" einbauen.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 06:21
@Boui3D,
wenn man einen Sensor (kapazitiv oder induktiv) und noch 2 Filamentkühler am Hotend montiert hat, und die Spindeln an den äußeren Kanten montiert sind, ist es unmöglich genau an den Spindeln zu messen.

@Glatzemann,
werde ich gleich mal testen.
Kann ich eigentlich danach direkt ein G28 zwecks homen machen?

Grüße,
Jürgen

1-mal bearbeitet. Zuletzt am 20.10.15 06:22.
Re: Höhe des Druckbett justieren
20. October 2015 06:23
Ich hab die Änderung noch nicht online gestellt. Ich sag heute Nachmittag bescheid, wenn der aktuelle Stand online ist.

Homen kannst du danach natürlich.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 08:57
Der aktuelle Stand ist nun in meinem Repository (siehe oben) online. Damit kann weiter getestet werden.

Offene Punkte:

  • Rückmeldung über den Fortschritt und die Präzision des Leveling-Vorgangs im Log
  • Konfigurierbarkeit einiger Parameter


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 09:10
Kurz nochmal zu meiner alten Idee. Ich glaube die kam falsch rüber. smiling smiley

Wie wäre es, wenn du einen ganz normalen G29 (G32 oder wie das auch immer bei Repetier heißt) durchführst. Jetzt hast du die genaue Drehmatrix (und Offset vom Sensor ja eh). Jetzt hast du in der Config irgendwo stehen, wo jeder Motor genau positioniert ist. Darüber kannst du jetzt eine Aussage machen, auf welcher Position jetzt jeder Anschluss vom Motor ist und über die Drehmatrix den Ausgleich berechnen. Dadurch sollte man doch mit einem Messdurchgang fertig sein?!?

Ist wahrscheinlich Code-mäßig nicht ganz so leicht umzusetzen, aber am Ende doch effektiver.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
20. October 2015 09:20
Ja, genau so hatte ich das auch verstanden :-)

Ich habe das auch (fast) so gemacht, allerdings in einem zweiten Codepfad. Wenn man ein G33 ("Arbeitstitel") gemacht wird, dann wird der gleiche Code wie für G29/G32 ausgeführt, aber die ABL-Matrix wird nicht gespeichert, sondern verwendet um die drei Achsen entsprechend zu verändern. Das funktioniert auch relativ gut, nur leider verändern sich die anderen Achsen durchaus schon mal um bis zu 4-5 Zehntel, wenn nur ein Motor bewegt wird. Daher sind leider die Wiederholungen notwendig. Und ich habe noch festgestellt, daß sich das Ergebnis bzw. die Genauigkeit deutlich mit der Reihenfolge der Messungen/Motorbewegungen verändert.

EDIT: Den ersten Ansatz: Fahren bis Z-Probe ausgelöst wird und dann stoppen habe ich verworfen, da so weniger Code benötigt wird.

1-mal bearbeitet. Zuletzt am 20.10.15 09:21.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 09:25
Nicht einen Motor drehen. Alle um deren Schwerpunkt.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
20. October 2015 09:29
Ist es wichtig alle drei gleichzeitig drehen zu lassen? Das ist nämlich tatsächlich etwas komplizierter, bzw. sogar richtig kompliziert, weil so (noch) nicht vorgesehen.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
20. October 2015 09:35
Hey,
tolle Arbeit hier! Ich bringe eigentlich alles Voraussetzungen mit um das auch mal zu testen. Ich habe ja 2x SC XL mit jeweils 6x Raps (vordorglich für diesen Einsatzzweck geordert!). Momentan sind die Drucker rund um die Uhr beschäftigt. Das Druckbett habe ich an den drei Punkten auf 1-2 Hundertstel genau einstellen können. Dafür brauche ich aber auch mehrere Wiederholungen. Ich mache das einfach mit einem G-Code Script. An 3 Positionen Tasten, Motoren aus. Dann drehe ich nach Gefühl an den Spindeln (irgendwann weiß man auch auswendig in welche Richtung) und fahre mein Script. Auch beim Ausschalten der Drucker (Motoren stromlos...) muss ich nichts nachjustieren. Diese FW Umsetzung hier ist natürlich absoluter Luxus, mir fehlt momentan nur leider die druckfreie Zeit das auszutesten.
Kann ich eine bestehende Configuration.h modifizieren und um die Zeilen erweitern und nur die zusätzlich veränderten Files überschreiben? Oder muß ich in diesem Fall die ganze FW neu aufsetzen? Ich komme von hier leider nicht auf Github...


Deltadrucker, Tantillus Reborn by Toolson/Protoprinter, meine kommerzielle Webseite
Re: Höhe des Druckbett justieren
20. October 2015 09:44
Du musst sie ja nicht direkt gleichzeitig bewegen. Kannst ja auch jeden Motor nacheinander bewegen. Aber den einen oder zwei hochfahren und einen oder zwei runterfahren. Je nachdem was dir die Matrix dann erzählt. Ziel ist ja nicht das Bett auf 0 zu stellen in dem Falle, sondern Eben.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
20. October 2015 11:58
Moin moin aus HU.
Kann man die Höhe des Druckbettes nicht errechnen anhand von 6 Messpunkten. Wobei zB der linke als Referenzpunkt gilt. Dafür müssen die Messpunkte aber alle die gleiche Entfernung zur Mitte der Spindel haben und auf der Verbindungslinie zw 2 Spindeln liegen.



Hier ergibt sich dann das Höhenprofil. Mit rechtwinkliger Dreiecksberechnung sollte das gehen. Selbst wenn die Spndeln ausserhalb des Bettes sind (grüne Linie), kann man das doch berechnen.
Höhe 1 und 2 ergeben den Neigungswinkel bzw den Höhenunterschied.. Die Gesamtlänge der Messachse auf den Achsenabstand gerechnet ergibt den Unterschied zwischen den Achsen

Höhenunterschied / Abstand Messpunkte * definierte Lange Achsen.
Beispiel
Höhenunterschied 0,5mm
Messachse 100mm
Abstand Achsen 200mm
0,5/100*200=1mm

6-mal bearbeitet. Zuletzt am 20.10.15 18:00.


Liebe Grüße aus Kaltenkirchen.
Frithjof
Meine Seite
[www.facebook.com]
Re: Höhe des Druckbett justieren
20. October 2015 14:14
Quote
Protoprinter
Kann ich eine bestehende Configuration.h modifizieren und um die Zeilen erweitern und nur die zusätzlich veränderten Files überschreiben? Oder muß ich in diesem Fall die ganze FW neu aufsetzen? Ich komme von hier leider nicht auf Github...

Ja, du kannst die bestehende configuration.h modifizieren. Du musst nur die Zeilen, die ich weiter oben beschrieben habe einfügen. Dann fehlen noch ein oder zwei defines, die mittlerweile in der 0.92.5 von Repetier dazugekommen sind und dann kompiliert alles mit der neuen Version und der alten Config. Den Konfigurator kannst du dann allerdings erstmal nicht benutzen.

Edit: bei den anderen Punkten teste ich noch...

1-mal bearbeitet. Zuletzt am 20.10.15 14:18.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
21. October 2015 02:25
Quote
Wurstnase
Du musst sie ja nicht direkt gleichzeitig bewegen. Kannst ja auch jeden Motor nacheinander bewegen. Aber den einen oder zwei hochfahren und einen oder zwei runterfahren. Je nachdem was dir die Matrix dann erzählt. Ziel ist ja nicht das Bett auf 0 zu stellen in dem Falle, sondern Eben.

Ich habe das jetzt mal ausprobiert. Das Ergebnis ist im Grunde genommen das gleiche, wie bei nur einem bewegten Motor. Wenn man mal nur die beiden vorderen Motoren betrachtet, wird bei meiner Methode folgendes gemacht:

Motor 1 - Messpunkt Höhe 90mm
Motor 2 - Messpunkt Höhe 96mm

Motor 2 wird nun 6mm nach unten gefahren und beide Motoren sind auf der gleichen Höhe (90mm; soweit die Theorie).

Bei Wurstnase's Verfahren wird nicht ein Motor um 6mm bewegt, sondern zwei Motoren werden um den Mittelpunkt "gedreht". Gleiche Messpunkte wie vorher:

Motor 1 - Messpunkt Höhe 90mm
Motor 2 - Messpunkt Höhe 96mm

Mittelpunkt - Höhe 93mm

Motor 1 wird also um 3mm hoch gefahren und Motor 2 wird um 3mm runter gefahren. Danach sollten (soweit die Theorie) beide Motoren auf der gleichen Höhe (93mm) sein.

Beide Verfahren können natürlich auf drei Motoren erweitert werden. Bei Wurstnase's Verfahren liegt dann der "Drehpunkt" ungefähr in der Mitte des Druckbetts.


Das Problem bei beiden Verfahren ist aber nun, daß man keinen Motor bewegen kann ohne nicht auch die anderen Höhen zu beeinflussen. Das liegt meines Erachtens daran, daß (bei meinem Aufbau) die Träger für die Achsen starr miteinander verbunden sind. Von Motor 1 zu Motor 2 geht ein 20mm Alu-Profil und verbindet die beiden Auflagepunkte fest miteinander. Wird nun lediglich Motor 2 hochgefahren und Motor 1 nicht, so entsteht ein Winkel zwischen Motor 1 und Motor 2. Bei meinem Aufbau kann dieser ziemlich groß werden, ohne das das Druckbett verkantet. Je nach Aufbau und Größe des Druckbett kann es sogar so "stabil" sein, daß man mit Motor 2 alleine das Druckbett komplett anheben kann. Jedenfalls führt die Bewegung von Motor 2 dazu, daß sich die Höhe bei Motor 1 ebenfalls minimal verändert. Diesen Effekt könnte man vermutlich durch eine flexible (z.B. kugelgelagerte) Auflage des Druckbett-Trägers minimieren bzw. verhindern.

Das Verhalten ist jedenfalls so, daß das Ergebnis zwischen: Wir fahren zwei/drei Motoren Richtung Schwerpunkt/Mitte oder wir fahren ein/zwei Motoren Richtung Messpunkt 1 das gleiche Ergebnis liefern. Bei ersterem müssen jedoch noch die internen Positionen der Achsen korrigiert werden, was bei Verfahren zwei nicht notwendig ist. Im Grunde ändert sich bei Verfahren 1 die Z-Length unter Umständen, bei Verfahren zwei nicht.

Ich mache heute noch weitere Tests und würde mich weiterhin über zusätzliche Tester freuen.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
21. October 2015 03:19
Quote
immergut
@Boui3D,
wenn man einen Sensor (kapazitiv oder induktiv) und noch 2 Filamentkühler am Hotend montiert hat, und die Spindeln an den äußeren Kanten montiert sind, ist es unmöglich genau an den Spindeln zu messen

Das weniger aber Du hast natürlich prinzipiell Recht. Ich hatte den Aufbau falsch im Kopf und sehe gerade auf der Zeichnung, dass die beiden vorderen Spindeln schon deutlich entfernt vom Druckbettrand liegen.

Gruß

2-mal bearbeitet. Zuletzt am 21.10.15 03:21.


Einen Sparkcube 1.1XL für größere Objekte, einen Trinus3D im Gehäuse und einen Tantillus R im Bau und einen Qidi Tech Q1 Pro im Zulauf.
Sparkcube: Komplett auf 24V - DDP 8mm + 1,5mm Carbonplatte - RADDS 1.5 + Erweiterungsplatine + RAPS128 - Nema 17/1,7A 0,9 Grad - ind. Sensor für Z-Probe (kein ABL) - FTS - Titan Booster Hotend - Sparklab Extruder - Firmware Repetier mit @ Glatzemanns G33 - Repetier Server pro - Simplify3D
Re: Höhe des Druckbett justieren
21. October 2015 03:59
Quote
Fridi
Kann man die Höhe des Druckbettes nicht errechnen anhand von 6 Messpunkten. Wobei zB der linke als Referenzpunkt gilt. Dafür müssen die Messpunkte aber alle die gleiche Entfernung zur Mitte der Spindel haben und auf der Verbindungslinie zw 2 Spindeln liegen.

Man kann aus drei beliebigen Punkten eine Ebene im dreidimensionalen Raum ableiten. Diese Ebene "liegt" exakt auf dem Druckbett (wenn die drei Messpunkte auf dem Druckbett liegen), hat aber eine unendliche Ausdehnung. Diese Ebene wird mittels einer Matrix dargestellt. Mit dieser Matrix kann man dann ganz einfach die Höhe für jeden beliebigen Punkt berechnen. Dies wird beim "normalen" softwaremäßigen ABL so gemacht. Wenn der Druckkopf beispielsweise an Position 100,100 steht, dann kann man mittels der Matrix die Höhe des Druckbetts an dieser Stelle berechnen und damit die tatsächliche Höhe korrigieren.

Voraussetzung ist dafür jedoch, daß das Druckbett plan ist. Aber das ist ja sowieso etwas, was wir sicherstellen wollen, damit wir anständig darauf drucken können. Daher können wir diesen Punkt als gegeben annehmen.

Wenn man nun die Position der Spindeln kennt, dann kann man mittels dieser Matrix ganz einfach die Höhe exakt an Spindelposition berechnen, auch wenn diese außerhalb des Druckbetts liegen.



Mittlerweile habe ich ein paar Informationsausgaben für das Log eingebaut, damit man besser erkennen kann, was wie und wann passiert. Auch habe ich ein "Early Out" eingebaut, sowie diverse Werte konfigurierbar gemacht (z.B. den Schwellwert). Wenn man nun die Level-Routine startet, wenn das Druckbett bereits justiert ist, dann erhält man folgende Ausgabe:

09:48:05.811 : Info:Autoleveling disabled
09:48:05.811 : Info:Motorized bed leveling repetition 1
09:48:05.814 : Info:leveling z1 and z2, iteration 1
09:48:56.724 : Z-probe:6.69 X:0.00 Y:30.00
09:49:15.763 : Z-probe:6.69 X:220.00 Y:30.00
09:49:34.728 : Z-probe:6.68 X:110.00 Y:210.00
09:49:37.464 : Info:leveling not necessary, bed is flat
09:49:37.468 : Info:Autoleveling enabled

Ich versuche nun noch das Problem mit der Überkompensation ein wenig in den Griff zu bekommen, so daß weniger Wiederholungen zum Leveln notwendig sind und der Vorgang damit schneller beendet wird.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
21. October 2015 04:35
Genau das meinte ich @Glatzemann.

Beim ABL bekommen wir die Matrix.

Wenn wir jetzt die Positionen der Motoren kennen, dann haben wir unsere Matrix R und unseren Motorvektor V_M1 bis V_M3.

Vielleicht verdrehe ich grad bissl was aber demnach müsste man die Position am Motor über R*V_M bekommen. Das Problem hier wäre nur dass die XY-Position durch die Drehung auch verschoben wird, was aber wahrscheinlich vernachlässigt werden kann.

Wenn wir jetzt also einmal unser Bett abtasten, dann die Matrix auf die Positionen unserer Motoren berechnen, dann können wir bei allen 3 Motoren gleichzeitig die Höhe verstellen und sollten dann direkt auf die Plane Ebene kommen.

Ich habe das aktuell mal kurz durchgerechnet. Bei einem verdrehten Bett um die Y-Achse um 5° (das ist richtig übelst viel) und X-Verdrehung lassen wir auf 0, dann sieht das in etwa so aus.

Motoren liegen bei -10/-10, 200/-10, -10/100.

Die Drehmatrix sieht in etwa so aus: [0.996 0 0.087, 0 1 0, -0.087 0 0.996]

x/y/z
Motor 1 -9.962/-10/0.872
Motor 2 199.239/-10/-17.431
Motor 3 -9.962/100/0.872

Demnach müssten Motor 1 und Motor 3 um 0.872mm abgesenkt werden und Motor 2 um 17,431mm angehoben um in etwa auf der gleichen Höhe zu sein. Ich würde dann nochmal einen zweiten Druchlauf starten, da wir hier 'schiefe' Ebenen miteinander vergleichen.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
21. October 2015 09:14
Moin moin aus HU.
Die Messungen sind doch nicht untereinander beeinflusst, wenn man auf den gedachten Verbindungslinien zwischen den Spindeln misst. Dann benötigt man aber vier Messungen. 2 an der Referenzachse und jeh eine an den gegenüberliegenden Achsen.
Aber vielleicht liege ich auch falsch, wie das Leveling bei repetier ja zeigt und ich habe das nur nicht verstanden.thumbs down


Liebe Grüße aus Kaltenkirchen.
Frithjof
Meine Seite
[www.facebook.com]
Re: Höhe des Druckbett justieren
21. October 2015 09:27
Also mit meinen ersten Versuchen nach meiner Methode (mit Matrix und Berechnung der Z-Differenz an den tatsächlichen Motorpositionen) komme ich bereits nach einem Durchgang auf ein (laut Messwerten des zweiten Durchgangs) nivelliertes Bett.

1-mal bearbeitet. Zuletzt am 21.10.15 11:22.
Re: Höhe des Druckbett justieren
21. October 2015 09:45
Quote
justMaD
Also mit meinen ersten Versuchen nach meiner Methode (mit Matrix und Berechnung der Z-Differenz an den tatsächlichen Motorpositionen) komme ich bereits nach einem Druchgang auf ein (laut Messwerten des zweiten Durchgangs) nivelliertes Bett.

So wie ich das beschrieben habe? Oder habe ich einen Denkfehler?


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
21. October 2015 09:48
So wie du es beschrieben hast funktioniert gut. Ich hatte ein verkantetes Druckbett, daher die Messfehler bei mir.

Ich mache noch ein paar Tests und poste dann das Ergebnis.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
21. October 2015 09:49
Quote
Wurstnase
So wie ich das beschrieben habe? Oder habe ich einen Denkfehler?

So wie wir beide es unabhängig voneinander beschrieben haben, ja smiling smiley
Re: Höhe des Druckbett justieren
21. October 2015 09:52
Hurray grinning smiley So einfach kann es gehen thumbs up


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Höhe des Druckbett justieren
21. October 2015 09:57
Ja, aber...

Wenn die Motor- bzw. Achsposition nicht 100% angegeben wird (und die ist ja durchaus schwer zu messen), dann wird das Bett falsch nivelliert. Da helfen dann auch Wiederholungen nicht mehr unbedingt. Bei der momentan von mir eingesetzten Variante wird solange angenähert, bis der Fehler weg ist.

Vermutlich ist eine Kombination aus beidem am Besten.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: Höhe des Druckbett justieren
21. October 2015 10:10
Es sind bei mir zugegebenermaßen aktuell noch geschätzte Positionen, ja.
Die sollten auf wenige mm genau sein und sodass die Abweichung des ABL zumindest auf ein 1/100 genau zu sein scheint.

Ich habe es noch nicht komplett durchautomatisiert bei mir.

Aktuell messe ich an 3 Positionen, lasse mir die Matrix berechnen und sowohl den Abstand an der Messposition, als auch den berechneten Abstand an der Motorposition ausgeben (in mm aber auch Steps).
Danach verfahre ich per G-Code jeden Motor um den berechneten Abstand zur Ideal-Ebene (aktuell auch noch per mm-Angabe, die automatische Variante wird direkt mit Schritten arbeiten).
Danach vermesse ich erneut manuell und erhalte an allen 3 Punkten den gleichen Abstandswert.


Edit: Ich muss aber zugeben, dass bei mir keine riesige Schiefstellung "oben" am Druckkopf ankommt, da ich auch 3 separate Z-Max-Endstops habe, welche zuerst alle separat angefahren werden, um das Bett "unten" bereits in einen einigermaßen nivellierten Zustand zu bringen.

Edit 2: ok, ich habe relativ kleine Abweichungen im Bereich von +- 0,01mm. Mir fällt auch grade auf, dass ich eigentlich nicht auf den Spindelmittelpunkt berechnen sollte, sonder eher auf die Bettaufhängung als solche. Diese sitzt bei mir etwas (gute 20mm!) abseits der Spindel in einem Kugelgelenk.
Ich werde mich mal dransetzen und versuchen diese Position besser zu bestimmen, dann sollte auch die Messgenauigkeit noch etwas besser werden.

2-mal bearbeitet. Zuletzt am 21.10.15 11:17.
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen