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?
Re: [Inoffizieller Mod] Z-Offset Scan -> RF2000
Verfasst: Mi 7. Dez 2016, 16:43
von Nibbels
Sodele
Einfach nur geil 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
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.
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Mi 7. Dez 2016, 17:11
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
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Do 8. Dez 2016, 16:00
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
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Do 8. Dez 2016, 19:15
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.
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Fr 9. Dez 2016, 12:44
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.
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Fr 9. Dez 2016, 13:19
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.
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Fr 9. Dez 2016, 19:13
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
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: Sa 10. Dez 2016, 21:31
von Nibbels
Der Repetierserver sagt immer während eines Scans:
Müsste man in die Z-Offset-Scan-Funktion noch irgendein "Alive" einbauen, das gepingt wird?
LG
Re: [Inoffizieller Mod] Z-Offset Scan
Verfasst: So 11. Dez 2016, 17:57
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.