Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Firmware Veröffentlichungen und Einstellungen können hier angekündigt und diskutiert werden.
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von rf1k_mjh11 »

Habe heute im Zuge der Untersuchungen zu diesem Thread einen Bug in der Z-Kompensation entdeckt.


[ul][*]Beim erstmaligen Einschalten der Z-Kompensation bewegt sich der Tisch um 0.02mm hoch (d.h. der Z-Wert wird um 0.02mm veringert), egal in welcher Höhe sich die Düse befindet. Diese Bewegung wird in der Anzeige auch dargestellt (neuer Z-Wert ist um 0.02mm verringert).[*]Das Ausschalten der Z-Kompensation (auch wenn es unsinnig sein sollte) führt zu einer Änderung der Anzeige auf den ursprünglichen Z-Wert, aber OHNE Bewegung! Damit ist der angezeigte Z-Wert um 0.02mm daneben.[*]Ein Wiedereinschalten der Z-Kompensation (nach dem Ausschalten (ich weiss, das ist unsinnig, aber trotzdem)) führt zu einem nochmaligen anheben des Tisches um 0.02mm, wobei in der Anzeige der ursprüngliche Z-Wert wieder um 0.02mm reduziert wurde.[/ul]

Etwas Hintergrunginformation:
Die Z-Kompensation, falls aktiviert, ist nur in den ersten Layern aktiv. Nach 3mm Höhe gibt es keine Änderungen mehr. (laut RF1000 in diesem Beitrag): [indent]- Wenn der G-Code eine Z-Höhe von mehr als HEAT_BED_Z_COMPENSATION_MAX_MM (Default = 3mm) erreicht hat soll die Z-Kompensation aufhören.[/indent]

Der Bug lässt sich leicht anhand der angehängten GCode-Datei leicht nachprüfen. Im GCode wird die Düse in die Mitte des Tisches gefahren, dann auf eine Höhe von 80mm (aus Sicherheitsgründen). Danach wird wiederholt die Z-Kompensation ein- und ausgeschaltet. Dabei bewegt sich der Tisch mit langsamen, kleinen Schritten nach oben (wahrscheinlich um die 1.5mm, insgesamt). Dabei zeigt zum Schluß die Anzeige aber brav 80.00mm als Z.

Ich weiß, es ist unsinnig, die Z-Kompensation wieder aus-, und vor allem danach wieder einzuschalten. Mein Punkt ist die unmotovierte Bewegung von 0.02mm. Wenn der Tisch 5, 10 oder 80mm unter der Düse steht, sollte sich beim Einschalten der Z-Komp gar nichts bewegen.
Befindet sich die Düse innerhalb der Z-Komp-Höhe (kleiner-gleich 3mm), ändert sich dieser Sprung (0.02mm) je nach Komp.matrix und kann deutlich mehr werden. Schaltet man hier die Z-Komp aus und wieder ein, kommt die Düse dem Bett sehr schnell nahe.
Ich nehme an, der Wert von 0.02mm kommt von einem Minimalwert, unter der nicht mehr korrigiert wird. Dummerweise wird dieser Wert aber defaultmäßig eingesetzt, auch wenn gar kein Bedarf besteht.
Zusätzlich sollte man sich überlegen, ob der Tisch beim Ausschalten der Z-Komp nicht wieder in die entsprechende Höhe gefahren werden sollte, anstatt nur das Display zu korrigieren (auf einen eigentlich falschen Wert).

mjh11
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von JoBo »

Hi,

hab's gerade mal ausprobiert und der der Tisch bewegt sich tatsächlich nach oben, Anzeige bleibt bei 80 mm (zuckt zwar kurz nach 79.99, nach aber wieder 80 mm). In 80 mm Höhe sollte da nichts passieren. Mal sehen, was da los ist.

JoBo
Think positive, flaps negative
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von JoBo »

Irgendwie komme ich nicht dahinter. Wenn ich mir PrintLine::bresenhamStep() in der motion.cpp ansehe, müsste die FW bei Aktivierung/Deaktivierung der Kompensation aus der Funktion zurückkehren, bevor im weiteren Verlauf der Funktion irgendwelche Bewegungen gemacht werden.
Ich habe auch mal das Feature Debug HBS eingeschaltet, um zu sehen, ob da was beim Ein- und Ausschalten der Komenstion passiert (s. Anhang). Man sieht sehr schön, das das Homing ausgeführt und dann die entsperechnde Position angefahren wird. Sobald aber das Ein/Aus beginnt, zuckt der Tisch aber es gibt keinen Debug-Report.

JoBo
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Think positive, flaps negative
RF1000
Developer
Developer
Beiträge: 340
Registriert: Fr 10. Okt 2014, 16:31
Has thanked: 40 times
Been thanked: 80 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von RF1000 »

Hallo mjh11,
hallo JoBo,


wir werden uns das ansehen - eine Änderung der Z-Anzeige ohne Änderung der realen Z-Position ist ja eher nicht erwünscht.
Grundsätzlich wird die Z-Kompensation übrigens nur dann automatisch ausgeschalten, wenn der Z-Motor ausgeschalten wird. Wir werden auch prüfen ob es aus Sicherheitsgründen sinnvoll sein könnte, die Z-Kompensation auch bei jedem Z-Homing auszuschalten.


mfG
RF1000
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von JoBo »

Hallo RF1000

eigentlich ist es eine Änderung der realen Z-Position ohne Änderung der Anzeige. Ist aber egal, beides ist nicht erwünscht.

JoBo
Think positive, flaps negative
RF1000
Developer
Developer
Beiträge: 340
Registriert: Fr 10. Okt 2014, 16:31
Has thanked: 40 times
Been thanked: 80 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von RF1000 »

Hallo,

Mein Punkt ist die unmotovierte Bewegung von 0.02mm. Wenn der Tisch 5, 10 oder 80mm unter der Düse steht, sollte sich beim Einschalten der Z-Komp gar nichts bewegen.
Das ist nicht ganz richtig. Wenn eine Z-Position über HEAT_BED_Z_COMPENSATION_MAX_MM (also per Default 3 mm) erreicht wird dann findet zwar keine aktive Z-Kompensation mehr statt, die Z-Achse steht aber trotzdem nicht auf der Z-Position laut G-Code sondern auf der Z-Position (G-Code - X), wobei X dem kleinsten Abstand zwischen Düse und Heizbett entspricht der während des Z-Scans ermittelt worden ist, wenn der Z-Min Endschalter auslöst (was in deinem Fall die 0.02 mm sind). Dementsprechend stellt die Z-Kompensation diesen Abstand auch ein, wenn die Z-Position laut G-Code auf z.B. 80 mm steht und erst dann die Z-Kompensation aktiviert wird. Würde das nicht passieren könnte jemand theoretisch a) die Z-Achse auf 80 mm fahren, b) die Z-Kompensation einschalten und dann c) die Z-Achse auf unter 3 mm fahren - in dem Fall gäbe es bei den 3 mm einen "Sprung". Würde man danach d) die Z-Achse wieder auf 80 mm fahren, dann wäre sie real auch nicht mehr dort wie nach a) sondern auf (80 mm - X).

Zusätzlich sollte man sich überlegen, ob der Tisch beim Ausschalten der Z-Komp nicht wieder in die entsprechende Höhe gefahren werden sollte, anstatt nur das Display zu korrigieren (auf einen eigentlich falschen Wert).
In der aktuell intern getesteten, nächsten Version der Firmware wurde das bereits korrigiert - dort zeigt das Display den richtigen Wert an (und die Position der Z-Achse wird beim Ausschalten der Z-Kompensation nicht verändert). Für ein Szenario wo jemand tatsächlich die Z-Kompensation ständig ein- und ausschaltet wäre es aber wohl besser, die Z-Achse beim Ausschalten der Z-Kompensation wieder auf die nicht-kompensierte Position zurück zu fahren - nur dann ist ja gewährleistet, dass die Z-Kompensation immer auch beim 2. Einschalten wieder auf die gewünschte Stelle fährt.
Wenn bei der aktuell intern getesteten, nächsten Version der Firmware übrigens ein absoluter Z-Fahrbefehl per G-Code zwischen dem Aus- und Einschalten der Z-Kompensation wäre, dann würde bereits diese Version der Firmware auch beim 2. Einschalten wieder auf die gewünschte Stelle fahren, weil der absolute Z-Fahrbefehl den Z-Offset von der Z-Kompensation in diesem Fall ja "schlucken" würde.
Ich denke, dass wir das noch entsprechend anpassen werden. Damit muss aber auch klar sein, dass es eine eher schlechte Idee wäre die Z-Kompensation während dem Drucken auszuschalten, weil es in dem Moment einen Z-Versatz und damit zwei wohl nicht mehr zusammenhängende Layer geben würde.


mfG
RF1000
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von rf1k_mjh11 »

RF1000,

Das Folgende muss mir erklärt werden:
RF1000 hat geschrieben:....die Z-Achse steht aber trotzdem nicht auf der Z-Position laut G-Code sondern auf der Z-Position (G-Code - X), wobei X dem kleinsten Abstand zwischen Düse und Heizbett entspricht der während des Z-Scans ermittelt worden ist, wenn der Z-Min Endschalter auslöst (was in deinem Fall die 0.02 mm sind). ...
Heisst das, dass die 0.02mm bei mir in der ermittelten Heatbed Matrix aufscheinen? Falls ja, welcher Wert ist es denn? Der 'niedrigste' Wert ist "-58". Hier ist die Matrix, die der Drucker ausgespuckt hat (mittels M3013):

;6;0;15;35;55;75;95;115;135;155;175;195;215;245
;0;. -824;-718;-582;-506;-402;-258;-126;-102;-158;-238;-334;-384;-384
;30; -810;-716;-593;-514;-402;-242;-118;-107;-163;-230;-310;-364;-384
;50; -802;-719;-596;-509;-402;-231;-105;-115;-166;-220;-289;-330;-344
;70; -788;-705;-580;-488;-380;-222; -92; -97;-151;-208;-271;-296;-316
;90; -774;-683;-564;-472;-342;-216;-103; -71;-117;-177;-239;-266;-276
;110;-766;-672;-553;-466;-339;-230;-114; -58; -91;-153;-239;-280;-256
;130;-790;-698;-576;-492;-374;-260;-130; -69;-113;-174;-258;-306;-304
;150;-868;-775;-639;-551;-431;-292;-162;-104;-148;-225;-282;-298;-308
;170;-910;-813;-660;-557;-429;-289;-170;-120;-164;-234;-269;-268;-288
;190;-930;-824;-660;-542;-403;-296;-207;-152;-185;-227;-259;-276;-248
;210;-948;-840;-676;-556;-414;-314;-244;-184;-198;-238;-278;-304;-304
;245;-948;-948;-732;-620;-492;-336;-292;-196;-172;-224;-252;-304;-304
offset = -58


@JoBo,

Kannst du bestätigen, dass es sich um denselben Betrag von 0.02mm handelt? Es wäre schon sehr unwahrscheinlich, dass wir zwei den haargleichen Abstand zwischen Düse und Bett haben.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von JoBo »

Hi,

nein, den Wert von 0,02 mm kann ich nicht bestätigen. Der Wert ist definitiv negativ, was aber dann korios wäre, da mein Scan positive Werte hat. Der Tisch hat sich, wie ich geschrieben habe, nach oben bewegt.

Wenn ich das richtig interpretiere, müsste sich der Tisch aber nach unten bewegen.

JoBo
Think positive, flaps negative
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von rf1k_mjh11 »

JoBo,

Die 0.02 lassen sich leicht bestätigen.

Drucker aus- und einschalten (damit es garantiert 'jungfräulich' ist).

Folgende 3 Befehle an den Drucker senden:

G28 ; alle Achsen auf 0
G1 Z50 F1200 ; Mit Tisch um 50mm nach unten
M3001 ; Z-Kompensation einschalten.

Bevor "M3001" gesendet wird, steht, wie erwartet, "Z: 50.00" in der Anzeige. Nach dem Senden von "M3001" steht nach 1-2 Sekunden "Z: 49.98" in der Anzeige. Hier liegen die 0.02mm von der gesprochen werden (von denen ich spreche, zumindest). Wobei es egal ist, ob ich die Übung bei Z=50, Z=80 oder Z=101.67 mache.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
RF1000
Developer
Developer
Beiträge: 340
Registriert: Fr 10. Okt 2014, 16:31
Has thanked: 40 times
Been thanked: 80 times

Re: Bug Bei Z-Kompensation (FW 0.91.51) - 0.2mm Sprung

Beitrag von RF1000 »

Hallo mjh11,


dein Scan ergibt einen minimalen Abstand von 58 Z-Steps. Bei 32 Microsteps haben wir 2560 Z-Steps pro mm.

1 [mm] / 2560 [Steps] * 58 [Steps]= 0,02 [mm]

D.h. wenn sich deine Z-Achse beim Einschalten der Z-Kompensation um 0,02 mm bewegt dann wäre das das erwartete Ergebnis.


mfG
RF1000
Antworten

Zurück zu „Firmware / Tweaks“