New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Issue Split] homing macht evtl. mit G92 probleme? #131
Comments
Ich hab mir G92 angesehen. Es scheint erstmal nichts verdächtig zu sein. Es wird immer der alte Origin wieder neu reingeschrieben, wenn die Variable nicht verändert werden soll. Printer::queuePositionLastMM ändert sich natürlich beim Homen. Repetier-Firmware/Repetier/Printer.cpp Line 536 in 4b17639
in homeAxis: https://github.com/Nibbels/Repetier-Firmware/blob/b1f28c5935860fb8368134bfe5ae4c2bcb122e91/Repetier/Printer.cpp#L2019 Bin also immernoch gleich verwirrt. |
Das scheint falsch zu sein, interessiert uns nur leider nicht ^^. memoryE = queuePositionLastSteps[E_AXIS]*axisStepsPerMM[E_AXIS]; [mm] != [Steps]*[Steps]/[mm] --> memoryE = queuePositionLastSteps[E_AXIS]*invAxisStepsPerMM[E_AXIS]; |
Da wir uns nach dem Homing auf 0 befinden, wäre es noch denkbar, dass du mal testest, ob die Fehler mit // M3115 - set the x/y origin to the current x/y position verschwunden sind. Position 0 gilt ja für X und Y. Z ist aussen vor. Bei Z wird beim M3115 das bisherige Offset behalten. LG |
Ich hatte den Fehler leider gerade auch trotz M400 zwischen dem G28 und dem G92. Das hilft also leider nicht. Filmen ist irgendwie schwierig, ich weiß ja nicht, wann das passiert und es passiert eher selten... In wie fern unterscheidet sich M3115 von G92 X0 Y0? |
Eigentlich unterscheiden sich die Befehle kaum bis garnicht. Wenn das aber nur selten auftritt, glaube ich fast nicht mehr an einen Bug beim G92. Ich selbst konnte das noch nie nachstellen. |
.. und dieses originOffsetMM zählt wirklich nur in dieser Funktion: Wichtig wäre vermutlich einfach mal ein Ausschlussverfahren:
|
Ich hatte heute das Problem noch mal und zwar beim Z Offset Scan aus dem Menü - also ganz ohne G28 und G92. Ich bin mir trotzdem 100%ig sicher, dass kein mechanisches Problem dahinter steckt. Er versucht eindeutig nicht einmal wieder in die andere Richtung zu fahren und macht auch sofort weiter mit der Ausführung des nächsten Befehls bzw. des Scans. Wenn schlechtes Fett (kalt ist es eh nicht bei mir) oder ein zu kleiner Motorstrom das Problem wären, würde man ja ein Knattern o.ä. hören, weil der Motor die Bewegung versuchen würde. Das Einzige an der Hardware, was ich mir noch theoretisch vorstellen könnte, ist, dass mein Schalter irgendwie eine Macke hat, aber auch das ist extrem unwahrscheinlich vom Fehlerbild her. Der müsste ja exakt in dem Moment, wo die Fahrrichtung umgedreht wird, wieder schließen, und das obwohl er normalerweise erst ein paar Millimeter weiter oben schließen würde. Es ist echt schwer, so einen Fehler zu debuggen, wenn er nicht reproduzierbar passiert... Ich werde mich demnächst aber mal genauer darum kümmern. (Erstmal will ich mein E3Dv6 wirklich ans Laufen bringen :-)) Bzgl. dem freien RAM: Es gibt die Funktionen Commands::checkFreeMemory() und Commands::writeLowestFreeRAM(), kann man sich damit irgendwie ausgeben lassen, ob der RAM mal knapp geworden ist? Vielleicht kann man das sonst als Feature einbauen und sogar bei knappem RAM automatisch eine Meldung an die Konsole oder aufs Display schreiben. Ansonsten checke ich heute abend mal, wie viel freies RAM der Drucker beim Starten meldet, der schreibt das ja an die Konsole. Kannst du mal nachsehne, wie viel das bei dir ist? |
M3200 P1 spuckt bei mir aktuell Folgendes aus (mitten im Druck):
Ich bin z.Z. auf der "alten" Firmware, d.h. RF.01.37x9 - aber da hatte ich den Homing-Bug ja auch schon zweimal gesehen. |
Was übrigens evtl. in Zukunft helfen würde, wenn du die Entwicklung in kleinschrittigen Commits (am besten hier im Repo) machen würdest und größere Errungenschaften mit Tags markierst. Dann könnte ich kleinschrittiger nach Fehlern suchen und eher konkrete Änderungen identifizieren und man behielte dennoch die Übersicht, welche Versionen als verwendbar angesehen werden können. |
Das mit den kleinen Commits versuche ich schon länger :D Der M3200 bringt dir was, wenn du |
Ah ok gut zu wissen. Dann muss ich das wohl mal heute abend aktivieren. |
Ah!! Guck mal 🗡 11:37:07.764: Error:Wrong checksum |
Ich versteh nur Bahnhof :-D |
Naja da läuft was schief. Der kotzt irgendwelchen Ram oder Rom aus. |
FSTRINGVALUE(Com::tNAN,"NAN") vs. 11:37:07.858: 'NANINITYINF = Vermutlich hängt irgendwo ein Text ohne PSTR() aussenrum. |
LOL |
Mist, war glaube ich nur ein Symptom und nicht mein eigentliches Problem. |
Nach 1x homen sagt M3200 mir 887 ram free und ein zweites mal homen ändert das nicht. Ich versuche nacher mal, den Fehler von hand gezielt zu reproduzieren. |
Ich glaube, ich verstehe das Problem. Mein Schalter hat eine größere Hysterese als das Original, und wenn der Fehler auftritt, fährt er anscheinend nicht weit genug weg, um den Schalter wieder los zu lassen. Früher waren die Werte mal deutlich größer und im Laufe der Zeit sind die beiden Teile (jetzt 0.3mm und Z_ENDSTOP_DRIVE_OVER=0.8mm) immer kleiner geworden. Muss das so knapp sein? |
Nein, die müssen nicht so klein sein. Kannst du dir mal FEATURE_CHECK_HOME als 1 definieren und diese Firmware so draufspielen? Dann siehst du in der Konsole die Auswertung und kannst das 3x machen. Bei mir waren die Hysterese-Werte minimal. So gegen 0.01. Bei einem RF1000 mit mechanischem Schalter wenn ich mich richtig erinnere eher 0.1. Darum haben wir diese Einstellungen gewählt: LG Wegen der Firmware. Es kommt bei mir nun immer noch ab und an ein Übertragungsfehler vor. Aber alles läuft. Die Neuanforderung der Daten funktioniert auch! Ich habe den Verdacht, dass irgendein Timing für UART falsch ist. |
Ok, also diese Fehler sind teilweise etwas komisch: Error: N383 G188 X0.000 Y0.000 E0.0000 Error: N3861 G1 X90.478 Y176.258 E-0.0000 Error: N3956 G225 X0.000 Y-0.000 E0.0000 N3668 G1 X67.586 Y151.093 E0.0000 N3861 G1 X90.478 Y176.258 E-0.0000 N3956 G225 X0.000 Y-0.000 E0.0000 N6644 G78 X0.000 Y0.000 F0.000 N7052 G1 X37.609 Y-0.000 E0.0000 N8064 G119 X0.000 Y-0.000 E-0.0000 N7872 G1 X56.924 Y0.000 E-0.0000 N8159 G1 X0.000 Y-199170.406 E0.0000 N9740 G1 X182.966 Y219.781 F198.086 Für den Fall, dass hier immer die Params falsch sind und die restlichen Daten stimmen müssten: Dann betrifft es immer die ersten 2 Bytes des Command-Puffers. (?) Unser Command-Puffer: Der Command-Puffer liest aus dem Seriell-Ringpuffer: Evtl. sind es tatsächlich nur Übertragungsfehler? Ich werds sehen. Und muss wohl etwas zurückflashen. Was definitiv funktioniert ist die Fletcher-Errorkorrektur! :D |
Ich hab glaub Halluzination. von 22:55:29.222 bis 0:00:09.009 Uhr hatte ich 105 Fehler. -> Es ist Schlafenszeit! |
Gibt es nicht irgend einen Test-Modus, mit dem die Zuverlässigkeit der Übertragung getestet werden kann? Vielleicht hat einfach nur das USB-Kabel ne Macke... Ganz früher in der Anfangszeit gab es immer Probleme mit dem Drucken über USB (hauptsächlich bemerkbar als häufige Pausen beim Drucken, die später als Knubbel auf der Oberfläche sichtbar waren). Ich glaube, irgendwann wurde die Übertragungsgeschwindigkeit dann reduziert und dann ging es besser. Hast du die evtl. höher als normal eingestellt? |
115200 ich hatte übrigens 0:37uhr wieder einen Fehler.
Ich patche erstmal die Debug-Funktion für COM voll durch. |
Das läuft aktuell so sauber ab, dass man es nicht bemerken wird.
Das ist bei allen Fällen die ich mir angeschaut habe so schnell. also grob 10-15ms deltaT pro Error. (Die Kommunikation mit Repetier-Server erfolgt bei mir mit dem binären Protokoll Version 2, also nicht mit Ascii text) LG |
Offenbar hat mein Z-Schalter eine stark schwankende Hystherese und der Auslösepunkt hängt auch sehr stark von der Fahrgeschwindigkeit ab. Vielleicht ändern sich seine Parameter und deswegen funktionieren die Firmware-Einstellungen nicht mehr so wie früher. Ich habe gesehen, dass in der Original-Firmware das back move nur 0.5mm beträgt und also kleiner ist als die (0.3+0.8)mm bei uns. Daran wird es also nicht liegen. Ich habe jetzt mal meine Z-Home-Geschwindigkeit reduziert und das Problem scheint dann nicht mehr aufzutreten. Hier der Output vom FEATURE_CHECK_HOME:
Ich denke, wir können dieses Ticket schliesen - es handelt sich nicht um ein Firmware-Problem an sich. Danke für die Hilfe! |
Dass du mit normalen Geschwindigkeiten mehr Erfolg oder weniger Fehler hast, kann ich nachvollziehen. Schalter: LG |
Ah das kann es natürlich gut erklären. Ich denke, wir können alles so lassen wie es ist. Die Homing-Geschwindigkeit kann ich ja per Menü reduzieren (habe ich ja bereits). Vielleicht sollten wir nur sicherstellen, dass ein unmodifizierter RF1000 mit den Default-Werten auch zuverlässig funktioniert (z.B. in dem man die Homing-Geschwindigkeit deutlich über den Default erhöht und testet, dass es dann immer noch funktioniert). Das kann ich aber leider nicht machen, weil ich ja den Original-Z-Schalter gar nicht mehr habe ;-) Beim Original ist es übrigens mit einer Messung der Hysterese nicht getan, bzw. man muss sie bei der Homing-Geschwindigkeit messen. Bei hohen Geschwindigkeiten wird der Schalter ja etwas überfahren (d.h. verbogen), und die Hysterese wird sich um diesen Wert verlängern. Dummerweise hängt das davon ab, wie stark man die Befestigungsschraube des Schalters anzieht... |
Alter Thread: #129
Wegen dem Homing.
Kann du mir evtl. ein Video machen, wie das aussieht?
Ich verstehe auch noch nicht ganz, wie ein Homing fehlschlagen könnte, nur weil ein G92 danach kommt. Oder ich habe überlesen oder nicht verstanden, was nun genau passieren könnte.
Dagegen spricht, dass ich glaube(!) dass der Homing-Befehl die Gcodeausführung der folgenden GCodes bremst.
Wenn ich eintippe:
G28
M3117 jetzt bin ich da
Dann taucht der text erst nach dem homing auf, nicht dazwischen.
The text was updated successfully, but these errors were encountered: