Re: Neue Development Firmware (RF.01.31)
Verfasst: Fr 24. Jun 2016, 12:35
Hallo mhier,
deine Tests 1 und 2 fangen damit an, dass die Einstellung von Z-Min signifikant außerhalb der vom Handbuch vorgegebenen Toleranz erfolgt. Weder der Microschalter vom RF1000 noch die Lichtschranke vom RF2000 überleben es auf Dauer, wenn sie um z.B. 5 mm überfahren werden, der Heizbettscan ist in einer derartigen Konfiguration daher mit der originalen Hard- und Firmware nicht möglich.
Wenn du einen Z-Min Schalter verwenden würdest der diese Attacke überlebt, dann würde dein Test 1 tatsächlich nicht die gewünschte Objekthöhe bringen. Test 2 sollte aber problemlos funktionieren.
Wir sind bei der Diskussion nun an dem Punkt angelangt wo wir grundsätzlich darüber übereinstimmen, dass die RF.01.31 die Höhe von den ersten Layern exakt so abfährt, wie der G-Code es will (und zwar unabhängig davon, ob dafür Z-Min überfahren werden muss oder nicht). Korrekt? Diese Funktionalität wird durch FEATURE_Z_MIN_OVERRIDE_VIA_GCODE erreicht - wenn dieses Funktionalität aktiv ist kann G-Code den Z-Min Schalter überfahren. Z_OVERRIDE_MAX ist die daraus resultierende, notwendige Konsequenz die verhindert, dass der G-Code den Z-Min Schalter zu weit überfährt. Bis zu diesem Punkt ist es noch nicht relevant, ob die Z-Kompensation aktiv ist oder nicht, weil ich ja ein "G1 Z-10" jederzeit an die Firmware senden könnte ... und die Firmware muss das korrekt verarbeiten, ohne den Extruder durch das Heizbett zu stoßen.
Die nächste Evolutionsstufe wäre das Verhindern der Berührung zwischen Heizbett und Extruderspitze auf Basis der bekannten Heizbettmatrix. Das wurde in diesem Schritt noch nicht umgesetzt weil:
- es unter normalen Bedingungen nicht auftreten kann (weil G-Code keine negativen Z-Positionen anfährt, Z-Min mechanisch korrekt eingestellt ist und die Firmware immer korrekt erkennt, ob Z-Min oder Z-Max ausgelöst ist)
- dieser Schritt weitere Abhängigkeiten erzeugt, z.B. muss ja der Extruder potenziell auch bei X/Y-Bewegungen vom Heizbett weggefahren werden, um den gewünschten Sicherheitsabstand zu behalten
- dieser Schritt unter manchen Umständen keine Verbesserung bringt, z.B. wenn die Heizbettmatrix nicht vorhanden oder falsch ist, wenn die Z-Kompensation nicht eingeschalten worden ist, wenn das Bett sehr schräg ist und die Geschwindigkeit in X/Y-Richtung sehr schnell ist, ...
Ist dir denn ein Scenario bekannt, bei dem es mit der RF.01.31 und einem korrekt (= laut Anleitung) eingestellten Z-Min Schalter zur Berührung zwischen Extruder und Heizbett kommen kann, ohne dass du die Z-Achse manuell bis zur Berührung nach oben fährst? Falls ja, können wir bitte den entsprechenden G-Code bekommen?
mfG
RF1000
deine Tests 1 und 2 fangen damit an, dass die Einstellung von Z-Min signifikant außerhalb der vom Handbuch vorgegebenen Toleranz erfolgt. Weder der Microschalter vom RF1000 noch die Lichtschranke vom RF2000 überleben es auf Dauer, wenn sie um z.B. 5 mm überfahren werden, der Heizbettscan ist in einer derartigen Konfiguration daher mit der originalen Hard- und Firmware nicht möglich.
Wenn du einen Z-Min Schalter verwenden würdest der diese Attacke überlebt, dann würde dein Test 1 tatsächlich nicht die gewünschte Objekthöhe bringen. Test 2 sollte aber problemlos funktionieren.
Das ist eine falsche Annahme. Beide Tests kannst du auch mit einem korrekt eingestellten Z-Min Schalter durchführen, mit einer Abstandslehre kann man den Abstand von Heizbett <-> Extruder schließlich auf zumindest 0,05 mm genau ermitteln. Zusätzlich kann man sich die Z-Position auch im Display wahlweise auch "ab Heizbett" oder "ab Z-Min" anzeigen lassen und kann damit die Messung laut Abstandslehre kontrollieren. Falls du Interesse an unseren entsprechenden G-Codes dafür hast kann ich sie dir einmal zusammen mit dem Testablauf zusenden.mhier hat geschrieben: Solche Tests sind extrem wichtig, werden aber anscheinend nicht durchgeführt von Conrad.
Wir sind bei der Diskussion nun an dem Punkt angelangt wo wir grundsätzlich darüber übereinstimmen, dass die RF.01.31 die Höhe von den ersten Layern exakt so abfährt, wie der G-Code es will (und zwar unabhängig davon, ob dafür Z-Min überfahren werden muss oder nicht). Korrekt? Diese Funktionalität wird durch FEATURE_Z_MIN_OVERRIDE_VIA_GCODE erreicht - wenn dieses Funktionalität aktiv ist kann G-Code den Z-Min Schalter überfahren. Z_OVERRIDE_MAX ist die daraus resultierende, notwendige Konsequenz die verhindert, dass der G-Code den Z-Min Schalter zu weit überfährt. Bis zu diesem Punkt ist es noch nicht relevant, ob die Z-Kompensation aktiv ist oder nicht, weil ich ja ein "G1 Z-10" jederzeit an die Firmware senden könnte ... und die Firmware muss das korrekt verarbeiten, ohne den Extruder durch das Heizbett zu stoßen.
Die nächste Evolutionsstufe wäre das Verhindern der Berührung zwischen Heizbett und Extruderspitze auf Basis der bekannten Heizbettmatrix. Das wurde in diesem Schritt noch nicht umgesetzt weil:
- es unter normalen Bedingungen nicht auftreten kann (weil G-Code keine negativen Z-Positionen anfährt, Z-Min mechanisch korrekt eingestellt ist und die Firmware immer korrekt erkennt, ob Z-Min oder Z-Max ausgelöst ist)
- dieser Schritt weitere Abhängigkeiten erzeugt, z.B. muss ja der Extruder potenziell auch bei X/Y-Bewegungen vom Heizbett weggefahren werden, um den gewünschten Sicherheitsabstand zu behalten
- dieser Schritt unter manchen Umständen keine Verbesserung bringt, z.B. wenn die Heizbettmatrix nicht vorhanden oder falsch ist, wenn die Z-Kompensation nicht eingeschalten worden ist, wenn das Bett sehr schräg ist und die Geschwindigkeit in X/Y-Richtung sehr schnell ist, ...
Ist dir denn ein Scenario bekannt, bei dem es mit der RF.01.31 und einem korrekt (= laut Anleitung) eingestellten Z-Min Schalter zur Berührung zwischen Extruder und Heizbett kommen kann, ohne dass du die Z-Achse manuell bis zur Berührung nach oben fährst? Falls ja, können wir bitte den entsprechenden G-Code bekommen?
mfG
RF1000