RF1000 hat geschrieben:Nun. Wenn beide Z-Endschalter in einem Kreis zusammen geschlossen sind dann soll der Z-Endschalter immer frei gefahren werden - eben damit es nicht passieren kann, dass die Z-Achse stehen bleibt wenn der Z-Endschalter noch gedrückt ist.
Kommt es denn (mit der RF.01.11) jemals vor, dass der Z-Endschalter nicht freigefahren wird?
Der obere Endschalter kann nicht freigefahren werden, wenn wir drucken wollen. In der Standard-Konfiguration ist außerdem das Output Objekt Script so eingestellt, dass er bis zum unteren Endschalter fährt und dann die Stepper disabled. Danach knallt es regelmäßig... Es kann außerdem immer etwas Unvorhergesehenes passieren, also darf keine Annahme gemacht werden wenn nicht eindeutig ist, wie der wahre Zustand ist. Ich habe ja ein mögliches Verfahren beschrieben.
mhier hat geschrieben:
Das passiert letztlich immer dann, wenn die Firmware kein gültiges Homing mehr hat aber einer der Endschalter gedrückt ist.
Kannst du beschreiben, wie du in diesen Zustand kommst?
Bin mir nicht ganz sicher, ich glaube, wenn die Stepper disabled werden, geht die Firmware davon aus, dass alle Positionen verschoben sein könnten und setzt intern das Homing als ungültig. So richtig verstanden habe ich das aber noch nicht.
mhier hat geschrieben:
Wenn die Firmware mit gedrücktem Endschalter bootet, gibt es genau eine richtige Reaktion: Alles verweigern, was die Z-Achse bewegt außer der manuellen Bewegung über das Bedienfeld. Homing darf unter keinen Umständen ausgeführt werden in dem Zustand. Der Benutzer muss erst manuell (also per Tastendruck) in die richtige Richtung fahren, bis kein Endschalter mehr gedrückt ist. Alles andere ist 50:50 Glücksspiel!
Nach unten zu fahren ist in dem Zustand OK, weil beim unteren Endschalter nichts kaputt werden kann. Man kann in der Configuration.h FEATURE_ALLOW_UNKNOWN_POSITIONS auf 0 setzen - dann lässt die Firmware bei unbekannten Positionen (= nach dem Starten der Firmware bzw. nach jedem Ausschalten der Stepper) keine Bewegung außer dem Homing zu.
Per Default nach jedem Druck erstmal in den unteren Endschalter volle Möhre reinfahren zu müssen, finde ich irgendwie keine gute Idee. Es knattert jedenfalls für 2-3 Sekunden gewaltig, und das kleine Schalterchen macht das sicher nicht ewig mit.
Ich bräuchte das Gegenteil von FEATURE_ALLOW_UNKNOWN_POSITIONS sozusagen. Ich möchte nach dem Einschalten per Bedienfeld das Heizbett bedingungslos fahren können, egal ob die Firmware meint ich wäre an einer Endposition. Ich weiß es nämlich besser. Damit könnte man die Situation dann retten.
mhier hat geschrieben:
Punkt 1 wird m.E. nirgendwo zufriedenstellend behandelt, weil es schlicht ein Bug ist. Der "Endschalter" muss letzlich komplett ignoriert werden, nachdem das Homing mal stattgefunden hat. Stattdessen sollte die Firmware wenn dann softwareseitig sicherstellen, dass keine Z-Positionen angefahren werden, bei denen der Extruder in das Heizbett fahren würde. Welche das ist, hängt aber von der x/y-Position ab, der "Endschalter" gibt hier keine Auskunft!
Well. Im Moment ist es so, dass G-Codes keine Endschalter überfahren können. Dieses Verhalten wurde in der Firmware noch nicht geändert, insofern wurde das Thema noch nicht in der Firmware behandelt. In den entsprechenden Threads gibt es aber diverse Anmerkungen dazu, was man tun kann um diese Anforderung (dass G-Codes überhaupt den Endschalter überfahren müssen) eigentlich gar nicht mehr notwendig zu haben.
Außer man möchte z.B. mit dem Druckkopf vor dem Druck über ein kleines Bürstchen fahren um geooztes Filament loszuwerden und muss dazu nach dem Homing einmal nach oben. Ich hatte auch lange Zeit Start-Gcode in meiner slic3r Konfiguration (irgendwo her kopiert...), die als erstes nach dem Homing ein Stück das Bett nach unten fährt (wohl um nicht über die Kante des Betts zu schleifen, falls die hoch steht - eher sinnlos denk ich). Auch wenn das vielleicht unnötig ist, es ist unglaublich schwer zu verstehen für einen Neuling, warum plötzlich die Z-Kompensation nicht mehr funktioniert...
mhier hat geschrieben:
Übrigens habe ich noch deutlich mehr Bugs im Bezug auf den Fräsmodus gefunden, die nutze ich gerade mal um mich ein bisschen in die Firmware einzuarbeiten und werde hoffentlich in den nächsten Tagen schon fixes auf meinem Fork veröffentlichen. Zum Fräsen taugt die Firmware aktuell gar nicht. Da frag ich mich dann irgendwie, ob eigentlich jemand bei Euch sowas mal testet? Ich mein, schwer reproduzierbare Bugs seh ich ja ein, wenn die Kunden die erst finden, aber wenn so grundlegende Dinge wie der Z-Nullpunkt einfach nicht korrekt gesetzt werden hat offensichtlich niemand versucht, mit der Version mal was zu fräsen...
Da muss ich widersprechen. Das Fräsen funktioniert genau so, wie es beschrieben ist. Ich wage beinahe zu behaupten, dass wir signifikant mehr und öfters gefräst haben als der durchschnittliche Anwender, der den RF1000 zum Fräsen verwendet
Was genau klappt bei dir nicht? Den Z-Nullpunkt auf die Werkstückoberfläche zu legen ist ja eine Grundvoraussetzung, die wir definitiv bei jedem Fräsvorgang auch verwenden.
Der Z-Nullpunkt wird bei mir einfach ignoriert. Genauso lässt sich Start- und End-Position des Werkstückscans nicht festlegen - das hab ich aber zumindest lokal bei mir gefixed. Ich kann jetzt nicht alle einzelheiten nennen, weil ich das gerade nicht vor mir habe und auch nicht ausschließen kann, dass mancher Bug sich vielleicht durch verkehrte Fixes anderer Bugs erst eingeschlichen haben. Irgendwie glaube ich aber nicht, dass RF.01.11 auf dem RF1000 wirklich zum Fräsen taugt - oder ihr habt einen sehr anderen Workflow als ich. Das macht es aber nicht besser, es sind v.a. Funktionen aus dem Menü, die bei mir nicht funktionieren. Mit der Original-Firmware komm ich nicht mal so weit, dass ich nur auf die Idee kommen könnte, den eigentlichen G-Code zum Fräsen auszuführen.
Mein Workflow ist ungefär folgender (Platinenfräsen):
1. Material ist eingespannt. Ich habe 4 G-Code Dateien (Oberseite, Unterseite, Löcher und Außenabmessungen). Unterseite und Löcher gehen in negative X-Richtung, da gespiegelt.
2. Nullpunkt wird irgendwo "rechts vorne" gewählt, so dass die Platine nach links hinten auf das Material passt. An den Nullpunkt fahre ich per Menü hin (-> Firmware untauglich, da keine genaue Positionierung möglich!)
3. Ich bohre ein Loch an den Nullpunkt, damit ich den jederzeit wieder einstellen kann (auch von der anderen Seite).
4. Ich setze Start und Stopp für den Workpart-Scan (-> geht nicht, bleibt bei 0) und starte diesen.
5. Ich fahre an den Nullpunkt (so dass der Bohrer ins Loch passt) und setze den XY-Origin (wird ignoriert).
6. Ich wechsele das Tool auf das Fräsbit, fahre in die Mitte der Platine und lasse den Z-Origin finden (er findet den, ignoriert aber den Z-Offset im Folgenden - außerdem zerstört das den XY-Origin)
7. Ich fräse die Unterseite
(Rest ist erstmal egal, das würde dann funktionieren, wenn ich bis hierhin gekommen bin)
Wie gesagt, vielleicht habe ich manche der späteren Bugs im Workflow selbst verursacht durch Fixes der ersten, aber eher nicht alle... Hier ist einiges im Argen! Ich komme Aktuell bis Schritt 6 - warum der mir den XY-Origin wieder kaputt macht verstehe ich nicht. Wenn ich das gelöst habe (hoffentlich im Verlauf der Woche), committe ich das in meinen Fork, dann könnt ihr euch das ja mal ansehen.