[Inoffizieller Mod] Z-Offset Scan

Firmware Veröffentlichungen und Einstellungen können hier angekündigt und diskutiert werden.
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 247 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Ein paar Gedanken:

Die Firmware sieht x/y-Max Endschalter durchaus vor, die Frage ist, ob es entsprechend Eingänge bei der Hardware gibt. Das scheint nicht der Fall zu sein, da ja schon für den Z-Max-Schalter eine Krücke gebraucht wurde. Da diese Krücke extrem schlecht funktioniert (bei mir geht es noch immer nicht zuverlässig!), würde ich stark davon abraten. Wenn es dir erstmal um den bloßen Schutz der Hardware geht, kannst du die X/Y-Max-Schalter natürlich mit der Reset-Leitung verbinden, dann wird alles abgebrochen, sobald er da gegen fährt.

Ich würde so oder so unbedingt empfehlen, möglichst immer von der SD-Karte zu drucken. Das Problem ist nämlich generell, dass die Software nicht zwingend mitbekommt, wenn die Firmware neustartet (z.B. wegen einem Crash oder weil sie wegen den X/Y-Max-Schaltern resettet wurde). In dem Fall schickt sie einfach weiter muter Befehle, nur ist leider zwischenzeitlich das Homing verloren gegangen. Ich kann mir vorstellen, dass genau das passiert ist. Wenn der Druckkopf irgendwo mittig über dem Druckbett steht, während er neu startet, nimmt er trotzden X=Y=Z=0 an erstmal. Dann kommt ein Befehl, der theoretisch vielleicht sogar eine Bewegung in Richtung kleinere X sein sollte, da er aber denkt, er wäre am Ursprung, fährt er eine große Strecke in Richtung positive X und damit ggf. über den zulässigen Bereich hinaus.

Das Problem ist in Firmware nicht so ohne Weiteres zu lösen, es sei denn, man verbietet jegliche Bewegung (zumindest mit absoluten Koordinaten-Angaben), wenn das Homing nicht bekannt ist. So etwas ähnliches gibt es schon (FEATURE_ALLOW_UNKNOWN_POSITIONS), allerdings wirkt das auf die manuellen Bewegungen, wir bräuchten es für die G-Code Bewegungen. Vielleicht wäre das die beste Lösung?

PS: Vielleicht kann ein Mod die Beiträge zu diesem Thema abspalten in einen separaten Thread?
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan -> RF2000

Beitrag von Nibbels »

Sodele :D

Einfach nur geil :D
https://github.com/Nibbels/Repetier-Firmware
Ich habe deine Firmware geforked, die anderen Branches gelöscht und die Änderungen des RF1000 auf den RF2000 übernommen.
Kompilieren funktioniert.
Der Drucker läuft.
Der Scan scheint zu funktionieren.


###DebugKram################################
teststreifen3.jpg
M190 S[first_layer_bed_temperature]
M104 T0 S[first_layer_temperature_0] ; set temp extruder 1
M116 ;warten, bis alle Temperaturen stimmen.
M3900 ;mhiers z-Offset-Korrektur
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
M3001 ; activate Z-Compensation
M3006 Z0.0; +n = um bed down, -n = um bed up
; initialization line for extruder 1
; M3006 S0 -> 0.00mm zoffset
; M3006 Z0.14 ; als +0.14mm für bluetape HINWEIS: diese Zeilenvariante funktioniert erst ab Version RF.01.21 !!
T0
M109 T0 S[first_layer_temperature_0] ; wait for extruder temp to be reached
G92 E0
G1 F300 E-0.5
G1 X0 Y25 Z0.35 F2000
G1 F800 E8
G1 X180 Y30 E25 F1000
; speeds
M201 X1500 Y1500 Z1000
M202 X1500 Y1500 Z1000



teststreifen5.jpg
15:55:14.718: M3013: current heat bed z-compensation matrix:
15:55:14.721: front left ... front right
15:55:14.722: ... ... ...
15:55:14.725: back left ... back right
15:55:14.728: ;7;0;20;40;60;80;100;120;140;160;180
15:55:14.734: ;0;-0.01;-0.03;-0.06;-0.10;-0.12;-0.16;-0.18;-0.21;-0.25;-0.28
15:55:14.739: ;30;-0.01;-0.03;-0.06;-0.10;-0.12;-0.16;-0.18;-0.21;-0.25;-0.28
15:55:14.746: ;50;-0.06;-0.07;-0.10;-0.12;-0.14;-0.17;-0.20;-0.23;-0.26;-0.29
15:55:14.755: ;70;-0.08;-0.09;-0.11;-0.14;-0.16;-0.18;-0.21;-0.24;-0.27;-0.30
15:55:14.762: ;90;-0.09;-0.10;-0.13;-0.15;-0.16;-0.19;-0.21;-0.24;-0.26;-0.30
15:55:14.771: ;110;-0.10;-0.11;-0.14;-0.16;-0.16;-0.19;-0.22;-0.24;-0.26;-0.30
15:55:14.778: ;130;-0.12;-0.12;-0.15;-0.17;-0.18;-0.20;-0.22;-0.25;-0.27;-0.30
15:55:14.786: ;150;-0.15;-0.15;-0.16;-0.19;-0.19;-0.22;-0.23;-0.26;-0.28;-0.30
15:55:14.795: ;170;-0.18;-0.18;-0.20;-0.20;-0.21;-0.23;-0.25;-0.27;-0.29;-0.30
15:55:14.803: ;190;-0.20;-0.19;-0.20;-0.22;-0.22;-0.24;-0.26;-0.28;-0.29;-0.31
15:55:14.811: ;210;-0.21;-0.21;-0.22;-0.23;-0.23;-0.25;-0.26;-0.27;-0.29;-0.30
15:55:14.819: ;230;-0.21;-0.21;-0.22;-0.23;-0.23;-0.25;-0.25;-0.27;-0.28;-0.30
15:55:14.828: ;245;-0.21;-0.21;-0.22;-0.23;-0.23;-0.25;-0.25;-0.27;-0.28;-0.30
15:55:14.831: offset = -16 [steps] (= -0.01 [mm])
15:55:14.833: g_uZMatrixMax[X_AXIS] = 10
15:55:14.835: g_uZMatrixMax[Y_AXIS] = 13
15:55:14.838: g_nActiveHeatBed = 1





15:55:53.219: N733 M105
15:55:53.447: X:0.00 Y:0.00 Z:0.00 E:0.00
15:55:53.450: searchHeatBedZOffset(): move = 1280
15:55:54.670: searchHeatBedZOffset(): STEP 2
15:55:54.676: searchHeatBedZOffset(): Scan position in steps: 12190, 13714
15:55:54.812: busy: processing
15:55:56.146: searchHeatBedZOffset(): STEP 3
15:55:57.385: readIdlePressure(): pressure calibration: 0 / -94
15:55:58.179: readIdlePressure(): idle pressure: -94
15:55:58.194: searchHeatBedZOffset(): g_nMinPressureContact = -134, g_nMaxPressureContact = -54, g_nMinPressureRetry = -124, g_nMaxPressureRetry = -64, g_nMinPressureIdle = -94, g_nMaxPressureIdle = -94
15:55:58.197: searchHeatBedZOffset(): STEP 4
15:56:11.245: searchHeatBedZOffset(): STEP 5 i = 0
15:56:11.678: searchHeatBedZOffset(): STEP 6 i = 0
15:56:15.306: searchHeatBedZOffset(): STEP 7 i = 0
15:56:15.310: searchHeatBedZOffset(): g_nZScanZPosition = -1184
15:56:15.314: searchHeatBedZOffset(): min_nZScanZPosition = -1184
15:56:15.412: searchHeatBedZOffset(): STEP 5 i = 1
15:56:15.845: searchHeatBedZOffset(): STEP 6 i = 1
15:56:20.628: searchHeatBedZOffset(): STEP 7 i = 1
15:56:20.632: searchHeatBedZOffset(): g_nZScanZPosition = -1188
15:56:20.636: searchHeatBedZOffset(): min_nZScanZPosition = -1188
15:56:20.735: searchHeatBedZOffset(): STEP 5 i = 2
15:56:21.167: searchHeatBedZOffset(): STEP 6 i = 2
15:56:25.209: searchHeatBedZOffset(): STEP 7 i = 2
15:56:25.214: searchHeatBedZOffset(): g_nZScanZPosition = -1180
15:56:25.218: searchHeatBedZOffset(): min_nZScanZPosition = -1188
15:56:25.316: searchHeatBedZOffset(): STEP 5 i = 3
15:56:25.750: searchHeatBedZOffset(): STEP 6 i = 3
15:56:25.820: Warning: Communication timeout - resetting communication buffer.
15:56:25.820: Connection status: Buffered:63, Manual Commands: 1, Job Commands: 0
15:56:25.820: Buffer used:63 Enforced free byte:7 lines stored:9
15:56:25.820: N734 M105
15:56:25.821: N735 M105
15:56:26.828: N736 M105
15:56:27.835: N737 M105
15:56:28.843: N738 M105
15:56:29.852: N739 M105
15:56:30.532: searchHeatBedZOffset(): STEP 7 i = 3
15:56:30.536: searchHeatBedZOffset(): g_nZScanZPosition = -1184
15:56:30.540: searchHeatBedZOffset(): min_nZScanZPosition = -1188
15:56:30.637: searchHeatBedZOffset(): STEP 5 i = 4
15:56:30.860: N740 M105
15:56:31.071: searchHeatBedZOffset(): STEP 6 i = 4
15:56:31.868: N741 M105
15:56:32.876: N742 M105
15:56:35.516: searchHeatBedZOffset(): STEP 7 i = 4
15:56:35.520: searchHeatBedZOffset(): g_nZScanZPosition = -1188
15:56:35.524: searchHeatBedZOffset(): min_nZScanZPosition = -1188
15:56:35.624: searchHeatBedZOffset(): g_ZCompensationMatrix[1][1] = -416
15:56:35.628: searchHeatBedZOffset(): min_nZScanZPosition = -1188
15:56:35.631: searchHeatBedZOffset(): nZ = -772
15:56:35.637: searchHeatBedZOffset(): g_ZCompensationMatrix[1][1] = -788
15:56:35.640: searchHeatBedZOffset(): STEP 8
15:56:36.868: searchHeatBedZOffset(): STEP 9
15:56:36.872: searchHeatBedZOffset(): g_nZScanZPosition =-1188
15:56:36.875: X:80.00 Y:90.00 Z:-0.46 E:0.00
15:56:36.929: searchHeatBedZOffset(): finished



15:58:08.758: M3013: current heat bed z-compensation matrix:
15:58:08.759: front left ... front right
15:58:08.762: ... ... ...
15:58:08.765: back left ... back right
15:58:08.768: ;7;0;20;40;60;80;100;120;140;160;180
15:58:08.774: ;0;-0.31;-0.33;-0.36;-0.40;-0.42;-0.46;-0.49;-0.52;-0.55;-0.59
15:58:08.779: ;30;-0.31;-0.33;-0.36;-0.40;-0.42;-0.46;-0.49;-0.52;-0.55;-0.59
15:58:08.787: ;50;-0.36;-0.37;-0.40;-0.43;-0.45;-0.47;-0.50;-0.53;-0.56;-0.59
15:58:08.794: ;70;-0.39;-0.39;-0.42;-0.44;-0.46;-0.49;-0.51;-0.54;-0.57;-0.60
15:58:08.802: ;90;-0.40;-0.40;-0.43;-0.45;-0.46;-0.49;-0.51;-0.54;-0.56;-0.60
15:58:08.811: ;110;-0.40;-0.41;-0.44;-0.46;-0.47;-0.49;-0.52;-0.54;-0.57;-0.60
15:58:08.818: ;130;-0.42;-0.42;-0.45;-0.47;-0.48;-0.50;-0.52;-0.55;-0.57;-0.60
15:58:08.827: ;150;-0.45;-0.45;-0.47;-0.49;-0.49;-0.52;-0.54;-0.56;-0.58;-0.61
15:58:08.835: ;170;-0.48;-0.48;-0.50;-0.51;-0.51;-0.53;-0.55;-0.57;-0.59;-0.60
15:58:08.842: ;190;-0.50;-0.50;-0.51;-0.52;-0.53;-0.55;-0.56;-0.58;-0.59;-0.62
15:58:08.851: ;210;-0.51;-0.51;-0.52;-0.53;-0.53;-0.55;-0.56;-0.57;-0.59;-0.61
15:58:08.859: ;230;-0.51;-0.51;-0.52;-0.53;-0.53;-0.55;-0.55;-0.57;-0.58;-0.60
15:58:08.868: ;245;-0.51;-0.51;-0.52;-0.53;-0.53;-0.55;-0.55;-0.57;-0.58;-0.60
15:58:08.871: offset = -788 [steps] (= -0.31 [mm])
15:58:08.874: g_uZMatrixMax[X_AXIS] = 10
15:58:08.875: g_uZMatrixMax[Y_AXIS] = 13
15:58:08.878: g_nActiveHeatBed = 1

###################################

teststreifen.jpg
teststreifen2.jpg
teststreifen4.jpg

Ein erster Funktionstest:
https://youtu.be/2RP7RZfwYSU



Ein erster "fast erfolgreicher" Druck. Nur meine HBS stimmt nicht mehr richtig. War mir aber bekannt:
https://youtu.be/bYOfzQU8mDI



Ich werde nun einen besseren HBS machen und den Drucktest noch einmal wiederholen. Der war OK, aber wie man evtl. auf dem Video sehen kann vorne "leicht zu weit im Minus". Dass das Problem am Scan liegt, glaube ich nicht. Hinten am Bett schien es perfekt zu sein und vorne zu knapp
-> Kenne ich von bisherigen Drucken. Mein letzter HBS ist schon länger her.

LG


EDIT: Erwartet hätte ich ein Offset von ca. -0,15 bis -0,19. Da muss ich nochmal genauer nachschauen, ob das passt. Auf dem Video sehe ich, dass hinten die Testlinie ebenfalls etwas matscht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

@mhier:

Bevor ich lange suche (, ich muss jetzt abbrechen und weg, ) ein paar Exploitideen zur schnellen Abklärung:
- Wenn vorher ein Offset eingestellt war, verfälscht das den Scan?
- Wenn ich den Scan mehrmals hintereinander mache und teilweise/zwischendurch ein M3006-Offset eingestellt war, könnte er sich dann verfälschen/addieren?
- Völlig klar: Temperaturausdehnungen verfälscht einen Scan nachträglich.
- Völlig klar, das Hotend "längt nach". Vielleicht müsste ich beim Start länger warten.
- Es ist, wie ich laut Code zu verstehen meine egal, wo ich den Scan mache (egal auf welcher Matrix-Position) - Das Offset wird immer gleich? Korrekt? - Auch wenn ich in einer Talsole messen würde?

LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 247 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Sehr schön, danke dir, Nibbels!
Nibbels hat geschrieben:- Wenn vorher ein Offset eingestellt war, verfälscht das den Scan?
Was für einen Offset meinst du? Mehrere Scans in Folge beeinflussen sich nicht gegenseitig, falls du das meinst. Ob ein anderweitig eingestellter Z-Offset die Messung beeinflusst, bin ich mir gerade nicht sicher. Müsste man testen.
Nibbels hat geschrieben:- Wenn ich den Scan mehrmals hintereinander mache und teilweise/zwischendurch ein M3006-Offset eingestellt war, könnte er sich dann verfälschen/addieren?
Siehe vorherige Frage. M3006 habe ich nicht getestet in dem Zusammenhang. Es kann sein, dass ein eingestellter Offset dann wegkompensiert würde, was ein Bug wäre. Letzlich sollte man M3006 o.ä. mit dem Feature einfach nicht mehr brauchen.
Nibbels hat geschrieben:- Völlig klar: Temperaturausdehnungen verfälscht einen Scan nachträglich.
Deswegen sollte man den Scan ja machen, wenn das Hotend bereits auf Temperatur ist.
Nibbels hat geschrieben:- Völlig klar, das Hotend "längt nach". Vielleicht müsste ich beim Start länger warten.
Sicher. Betrifft aber jede Art der Z-Offset-Einstellung genauso. Wenn ich händisch den Offset z.B. während eines Skirt korrigiere, stimmt es dann auch nicht mehr, wenn ich vorher nicht gut vorgeheizt habe.
Nibbels hat geschrieben:- Es ist, wie ich laut Code zu verstehen meine egal, wo ich den Scan mache (egal auf welcher Matrix-Position) - Das Offset wird immer gleich? Korrekt? - Auch wenn ich in einer Talsole messen würde?
Korrekt, wichtig ist nur, dass auf einer Matrix-Position gemessen wird. Ich habe allerdings nur zwei Positionen getestet bisher :-)
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

mhier hat geschrieben:
Nibbels hat geschrieben:- Wenn vorher ein Offset eingestellt war, verfälscht das den Scan?
Was für einen Offset meinst du? Mehrere Scans in Folge beeinflussen sich nicht gegenseitig, falls du das meinst. Ob ein anderweitig eingestellter Z-Offset die Messung beeinflusst, bin ich mir gerade nicht sicher. Müsste man testen.
Ich meine das "Z-Offset" das durch M3006 eingestellt wird und soweit ich das verstanden und ausgetestet habe, ist es dasselbe wie im Druckermenü unter
Configuration -> Z-Configuration -> Z-Offset.
Das ist kein Bug, ich hatte nur bereits früher das Gefühl, dass mit Offset beim HBS irgendwas schieflaufen könnte. (Unbestätigt)

Ich komme mit deinem Mod ziemlich gut klar.

Was ich zur Zeit beobachte:
- Einmal habe ich die Z-Tasten während des Homings bedient und dann passierten ganz komsiche Sachen.
- Ich habe einmal das Bett heißer gehabt, als im Startcode vorgesehen. Soll: 66°C, dann warte ich mit M116 bis die Temperaturen aufs Grad genau stimmen. Aber der Drucker kam nie auf 66°C, der blieb dauerhaft bei 67°C und der Druck begann nie.
- Ich habe einen HBS für PLA und einen für ABS gemacht. Hauptsächlich war dadurch in der "Matrix" ein Offset um 0,13 entstanden. Alle sonstigen Abweichungen waren im Bereich -0,01 bis +0,02, 2x +0,03.
- Generell scheint mir dein Mod immer ein ganz klein wenig zu weit ranzufahren. Ich würde also mit dem M3006 gerne nach dem Z-Scan eine Winzigkeit mehr Platz schaffen wollen (~ +0,025).

LG

EDIT: M116 scheint mist zu sein ^^. Auch bei 108°C Sollbetttemperatur bleibt der immer bei 109°C. Diesesmal von Kalt nach Warm.
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
mhier
Prof. Dr. des 3D-Drucks
Prof. Dr. des 3D-Drucks
Beiträge: 1672
Registriert: Fr 11. Sep 2015, 11:37
Has thanked: 279 times
Been thanked: 247 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Nibbels hat geschrieben:Ich meine das "Z-Offset" das durch M3006 eingestellt wird und soweit ich das verstanden und ausgetestet habe, ist es dasselbe wie im Druckermenü unter
Configuration -> Z-Configuration -> Z-Offset.
Das ist kein Bug, ich hatte nur bereits früher das Gefühl, dass mit Offset beim HBS irgendwas schieflaufen könnte. (Unbestätigt)
Ja wie gesagt, ich habe das nie ausprobiert. Kann also gut sein, dass dort ein Bug ist. Das sollte schon in Kombination funktionieren.
Nibbels hat geschrieben:- Einmal habe ich die Z-Tasten während des Homings bedient und dann passierten ganz komsiche Sachen.
Was denn für Sachen? Wenn du mehr oder weniger während des Scans mit den Z-Tasten eingreifst, wird das vermutlich Probleme machen. Wahrscheinlich sollte man die so lange deaktivieren, aber ich glaube das ist auch während des HBS nicht der Fall.
Nibbels hat geschrieben:- Ich habe einmal das Bett heißer gehabt, als im Startcode vorgesehen. Soll: 66°C, dann warte ich mit M116 bis die Temperaturen aufs Grad genau stimmen. Aber der Drucker kam nie auf 66°C, der blieb dauerhaft bei 67°C und der Druck begann nie.
Nibbels hat geschrieben:EDIT: M116 scheint mist zu sein ^^. Auch bei 108°C Sollbetttemperatur bleibt der immer bei 109°C. Diesesmal von Kalt nach Warm.
Vielleicht stimmen deine PID-Parameter nicht ganz. Hast du irgend was am Drucker modifiziert, was das beeinflussen könnte? Bei mir geht das problemlos, allerdings benutze ich M109 und M190.
Nibbels hat geschrieben:- Ich habe einen HBS für PLA und einen für ABS gemacht. Hauptsächlich war dadurch in der "Matrix" ein Offset um 0,13 entstanden. Alle sonstigen Abweichungen waren im Bereich -0,01 bis +0,02, 2x +0,03.
Logisch. Was wäre denn deine Erwartung gewesen? Ich mache überhaupt keine getrennten Scans mehr, sondern einen einzigen HBS bei kaltem Extruder. Die Längenänderung des Extruders wird ja durch meinen Mod abgefangen.
Nibbels hat geschrieben:- Generell scheint mir dein Mod immer ein ganz klein wenig zu weit ranzufahren. Ich würde also mit dem M3006 gerne nach dem Z-Scan eine Winzigkeit mehr Platz schaffen wollen (~ +0,025).
Woran machst du das fest? Hast du wirklich nachgemessen (wenn ja, mit welcher Genauigkeit)? Falls nicht, viele Effekte sind schwer unterscheidbar. Z.B. ist es im ersten Layer nicht zu unterscheiden, ob minimal zu viel Material extruiert wird oder die Layerhöhe etwas zu klein ist. Die anderen Layer sind in der Hinsicht meist erheblich unempfindlicher.
Gruß, Martin

Klipper Firmware für den RFx000: Klipper für RFx000 | Original-Dokumentation | Diskussion | Wiki mit Installations-Anleitung

(Ich bin in diesem Forum nicht mehr aktiv)
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

mhier hat geschrieben:
Nibbels hat geschrieben:- Einmal habe ich die Z-Tasten während des Homings bedient und dann passierten ganz komsiche Sachen.
Was denn für Sachen? Wenn du mehr oder weniger während des Scans mit den Z-Tasten eingreifst, wird das vermutlich Probleme machen. Wahrscheinlich sollte man die so lange deaktivieren, aber ich glaube das ist auch während des HBS nicht der Fall.
Naja, ich habe "komische Sachen geschrieben" weil ichs nicht genau erklären kann. Der Drucker hat angefangen zu Vibrieren, weil irgendein Motor gerattert hatte. (Das Bett ist nicht in die Düse gefahren oder so, es stand etwa auf halber Z-höhe)
Ich kanns aber nicht mehr genau sagen, weil ich reflexartig auf den Notaus gedrückt hatte.
mhier hat geschrieben: Vielleicht stimmen deine PID-Parameter nicht ganz. Hast du irgend was am Drucker modifiziert, was das beeinflussen könnte? Bei mir geht das problemlos, allerdings benutze ich M109 und M190.
Seit meinem kleinen Bugfix hier, funktioniert es.
http://www.rf1000.de/viewtopic.php?f=67&t=1577
PID-Parameter. Welche genau?
Was ich gemacht habe, war deine Änderungen auf den RF2000 zu portieren und den Rest der Werte habe ich so belassen wie sie waren. Hardwaremodifikationen oder ähnliches habe ich nicht gemacht.
mhier hat geschrieben:
Nibbels hat geschrieben:- Ich habe einen HBS für PLA und einen für ABS gemacht. Hauptsächlich war dadurch in der "Matrix" ein Offset um 0,13 entstanden. Alle sonstigen Abweichungen waren im Bereich -0,01 bis +0,02, 2x +0,03.
Logisch. Was wäre denn deine Erwartung gewesen? Ich mache überhaupt keine getrennten Scans mehr, sondern einen einzigen HBS bei kaltem Extruder. Die Längenänderung des Extruders wird ja durch meinen Mod abgefangen.
Die Erwartung: Größenausdehnung und Verzug des Heizbettes.
Die Erkenntnis: Das Offset hat sich am meisten verändert, der Verzug des Heizbettes "kaum", wenn man einen Unterschied von bis zu 0,04 als kaum betrachten kann. Naja, grenzwertig.
:)
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

Z-Offset:

100% dahintergestiegen bin ich noch nicht, aber wenn man den M3900 beim Mod ausführt, korrigiert es das eingestellte Z-Offset (ziemlich sicher) wieder raus.

(Am besten lässt man das Z-Offset aber auf 0. Als ich den Z-Offset ohne Druckerneustart gewaltig verstellt hatte, konnte ich "Emergency Block" provozieren. Das ist ohne Kraft auf den Sensor passiert, weil ich neben dem Druckbett Z gehomed hatte. Ich habe das nicht weiter verfolgt und weiß nicht mehr genau wie es dazu kam.)

Ansonsten komme ich inzwischen sehr gut klar. Die Druckdicke passt und es ist tatsächlich eine Verbesserung!

LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

Der Repetierserver sagt immer während eines Scans:

Code: Alles auswählen

21:30:03.448: searchHeatBedZOffset(): min_nZScanZPosition = -536
21:30:03.547: searchHeatBedZOffset(): STEP 5 i = 3
21:30:03.979: searchHeatBedZOffset(): STEP 6 i = 3
21:30:05.623: Warning: Communication timeout - resetting communication buffer.
21:30:05.623: Connection status: Buffered:63, Manual Commands: 1, Job Commands: 0
21:30:05.623: Buffer used:63 Enforced free byte:7 lines stored:9
21:30:08.371: searchHeatBedZOffset(): STEP 7 i = 3
21:30:08.375: searchHeatBedZOffset(): g_nZScanZPosition = -540
21:30:08.379: searchHeatBedZOffset(): min_nZScanZPosition = -540
21:30:05.623: Warning: Communication timeout - resetting communication buffer.
21:30:05.623: Connection status: Buffered:63, Manual Commands: 1, Job Commands: 0
21:30:05.623: Buffer used:63 Enforced free byte:7 lines stored:9


Müsste man in die Z-Offset-Scan-Funktion noch irgendein "Alive" einbauen, das gepingt wird?

LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Nibbels »

Ich habe beim RF2000 die mhier-Firmware verändert und so erweitert wie ich das für mich brauche.

Man kann mit einem neuen Gcode M3901 4 Parameter für mhiers M3900 einstellen

[X] und [Y] an welchem Matrix-Punkt gemessen werden soll:
M3901 X1 Y1 würde vorne links messen.
M3901 X10 Y13 würde hinten rechts messen.

Ebenso kann man mit dem Parameter einstellen, dass eine Messung der Matrix "was beibringt", aber diese nicht komplett überschreibt.
M3901 S50
stellt z.B. ein, dass bei jeder Messung nur das halbe Offset auf die vorhandene Matrix addiert wird. Die Matrix wird dann auch nicht mehr vor der Messung verworfen sondern nur leicht verändert.
Ich kann also einen vorhandenen HBS ganz fein verbessern, indem ich Tendenzen von vielen Scans "draufaddiere"
Damit ist es mir egal, ob ein Scan hinten links leicht andere Offset ergibt wie ein Scan vorne Links oder vorne Rechts. Von jedem geht nur die Tendenz ein und in der Summe passt das dann.
Erster Scan: differenz -100, -> -50 auf die Matrix
Zweiter Scan: differenz -46, -> -23 auf die Matrix
usw.

Was mir aber aufgefallen ist, und mich noch gestört hat, war die Tatsache, dass mein HBS in sich nicht ganz "eben schien". Darum habe ich mir zusätzlich noch einen Gewichtungsfaktor eingebaut.
M3901 P100 -> Addiere nur ein entfernungsgewichtetes Offset
M3901 P50 -> halb entfernungsgewichtet, halb offset
M3901 P0 -> reines offset, addiere überall dasselbe
Damit kann ich limitieren, dass der Einfluss einer Messung nur in ihrer Umgebung, linear abnehmend, eingeht.
Messe ich vorne rechts, ist der Einfluss an dieser Stelle 100%, aber hinten links 0%.
Mache ich das an allen 4 Ecken, kann ich "Eselsohren" aus meiner Heizplatte rausrechen.

Kombiniert man und [P] mit vielen Messungen an unterschiedlichen [X] [Y] Matrixmesspunkten, kann man also seine Matrix quasi korrekturverbiegen.

Wenn es sowas schon mal gab oder irgendwer weiß, dass sowas sinnvoll oder eher weniger sinnvoll ist, sagt mir das :)
Ich werde das was ich da produziert habe, nun ausgiebig testen, es scheint aber schon zu funktionieren.

Zusätzlich habe ich aus der puren Not noch M3902 eingeführt. Dieser G-Code sucht in der Matrix das Loch (2D-Tiefpunkt) in meiner Keramikplatte und ersetzt den dort drin liegenden HBS-Scan-Punkt mit einem Mittelwert, gebildet aus den umliegenden Messpunkten.

LG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Antworten

Zurück zu „Firmware / Tweaks“