[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: 246 times

[Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Hallo zusammen,

schon seit einiger Zeit bastele ich an einer eigenen Firmware-Modifikation, da ich wenig Zeit hatte, bin ich aber nur sehr langsam voran gekommen. Nun scheint mir der Zeitpunkt gekommen zu sein, meine Entwicklung mit euch zu teilen. Die modifizierte Firmware kann unmittelbar vor dem Druck den Abstand zwischen Extruder und Heizbett durch Scannen eines einzelnen Messpunktes der Heat Bed Matrix kalibrieren.

Benutzungsanleitung:

Dazu habe ich einen neuen Befehl eingeführt: M3900. Dieser Befehl hat keine Parameter und ersetzt im Prinzip das Homen. Der Befehl sollte natürlich idealerweise nach dem Aufheizen ausgeführt werden, da sich der Extruder ja in der Länge verändert, wenn er heiß ist.

Wird der Befehl ausgeführt, werden zunächst alle Achesen gehomed, die Z-Kompensation ausgeschaltet (sofern sie an ist) und die erste Position des Head Bed Scans angefahren. An dieser Stelle wird wie beim Head Bed Scan gescannt (nur mit erhöhten Grenzwerten für den Druck, da typischerweise ja Filament eingelegt sein wird, was den Scan andernfalls unzuverlässig macht). Das Ergebnis wird mit dem Wert in der Matrix verglichen und die Matrix entsprechend um die Differenz korrigiert. Die so geänderte Matrix wird nicht im EEPROM abgelegt, so dass diese Korrektur nach einem Neustart verloren geht.

Es gibt einige Konfigurations-Parameter in der Datei RF1000.h (unter "configuration for the head bet offset search (M3900 command)"), die die Funktionsweise des Befehls beeinflussen:
  • SEARCH_HEAT_BED_OFFSET_CONTACT_PRESSURE_DELTA, SEARCH_HEAT_BED_OFFSET_RETRY_PRESSURE_DELTA und SEARCH_HEAT_BED_OFFSET_IDLE_PRESSURE_DELTA stellen die Kraft ein, die die Dehnungsmessstreifen beim Scan messen (analog zu den entsprechenden Parametern von Heatbedscan).
  • SEARCH_HEAT_BED_OFFSET_SCAN_POSITION_INDEX_X und SEARCH_HEAT_BED_OFFSET_SCAN_POSITION_INDEX_Y definieren den Index des Messpunktes aus dem Heatbedscan, an dem der Offset gescannt wird. Der Index zählt von 1 an, wenn also beides auf 1 gesetzt wird, wird der Scan vorne links durchgeführt.
  • SEARCH_HEAT_BED_OFFSET_RETRACT_BEFORE_SCAN ist aktuell ungenutzt (das Feature funktioniert nicht und wurde deaktiviert)
  • SEARCH_HEAT_BED_OFFSET_SCAN_ITERATIONS legt die Zahl der Messwiederholungen fest. Der größte gemessene Offset wird verwendet.
Die Standardwerte der Konfiguration sollten aber gut funktionieren.

Warnung / Wichtiger Hinweis / Haftungsausschluss:

Ausprobieren der Firmware erfolgt auf eigene Gefahr! Weder ich noch Conrad können und werden für eventuelle Schäden an eurem Drucker haften! Conrad ist an dieser Entwicklung vollkommen unbeteiligt, und ich stelle diese Firmware so zur Verfügung, wie sie ist - ohne Garantien etc. Unbedingt solltet ihr zu aller erst die neue Funktion genauestens mit eurem Drucker und in eurem üblichen Arbeitsablauf testen. Ich habe solche Tests bisher nur unzureichend durchführen können, weshalb es zu Fehlverhalten kommen kann! Diese Firmware richtet sich erstmal an experimentierfreudige Experten, die das nötige Wissen haben, wie man solche Tests sicher durchführt!


Wer ganz sicher gehen möchte, selbst am Code etwas verändert hat oder Probleme beobachtet, kann mit folgender Methode einen sicheren Test durchführen, ohne Hardwareschäden zu riskieren:
Test
Die Firmware testet ihr am besten zunächst "trocken". Dazu legt ihr z.B. ein passendes Holzbrett auf das Heizbett, um dieses und den Extruder zu schützen. Entsprechend müsst ihr natürlich die Stellschraube für den Z-Schalter anpassen, da euer Heizbett ja jetzt höher liegt. Dann erzeugt ihr den G-Code mit dem Slicer und den modifizierten Einstellungen (die den neuen Befehl beinhalten), allerdings stellt ihr die Temperaturen auf 20 Grad (oder entfernt die entsprechenden Befehle mit einem Editor aus der Datei). Dann lasst ihr den G-Code wie gewohnt aber ohne eingelegtes Filament auf dem Drucker laufen, habt aber währenddessen die Hand am Ausschalter, um notfalls eingreifen zu können (Notaus-Schalter falls vorhanden, sonst Schalterleiste neben den Drucker legen). Bitte probiert das Ganze ein paar mal aus, ggf. mit unterschiedlichen Konfigurationen (z.B. in welcher Reihenfolge ihr die Befehle setzt). Wenn der eigentliche Druck startet, könnt ihr natürlich abbrechen.

Ob der Scan die Matrix verändert hat, könnt ihr z.B. mit dem Befehl "M3013 P1" sehen. Einfach den Befehl vor und nach dem Scan ausführen und in der Konsole die Matrix ansehen. Wenn ihr gezielt die Stellschraube für den Z-Schalter verdreht, könnt ihr auch prüfen, ob die Korrektur in die richtige Richtung (negativere Zahlen in der Matrix bedeuten ein stärkeres Überfahren des Z-Schalters) geht und sogar grob auch in der richtigen Größenordnung (z.B. 1/2 Umdrehung entspricht 0.25mm) liegt. Bitte lasst während allen Test immer die Konsole mitlaufen und aktiviert die Debug-Ausgabe (M3005 S6), so dass ihr die Meldungen hier posten könne, wenn etwas schief geht.

Wenn das erfolgreich funktioniert und ihr ausreichendes Vertrauen gewonnen habt, entfernt ihr die Platte, kalibriert den Z-Schalter neu und versucht es mal mit eingelegtem Filament. Hier kann es gut sein, dass der Scan abbricht, da vielleicht die Toleranzen noch zu eng sind.
Bekannte Probleme:

Bitte beachtet folgende bekannte Probleme:
  • Im Falle eines Scan-Abbruchs wird der Druck nicht abgebrochen. Mir ist aktuell noch unklar, wie man das realisieren könnte (ohne den Drucker komplett einzufrieren, dass er einen Hardware-Reset braucht)
  • Der Mod ist nur im RF1000-Verzeichnis enthalten. Für den RF2000 kann ich nichts testen und damit auch nichts entwicklen, da ich keinen habe...
  • Ungültige Konfigurationswerte werden nicht abgefangen (z.B. zu große Werte für SEARCH_HEAT_BED_OFFSET_SCAN_POSITION_INDEX_X/Y werden zu undefiniertem Verhalten führen!)
Wenn ihr Probleme findet, bitte postet sie hier mit möglichst genauer Fehlerbeschreibung. Bitte schreibt nie einen Bug-Report an Conrad, wenn ihr diese Firmware drauf habt, sondern testet immer erstmal noch mit der Original-Firmware!

Und noch etwas: Solltet ihr nicht alles verstanden haben, was ich hier schreibe, bitte probiert die Firmware erstmal NICHT aus, sondern fragt nach!

Download:

Ihr findet den Sourecode in unserem Community Repository auf GitHub, zusammen mit weiteren Modifikationen:
https://github.com/RF1000community/Repetier-Firmware/

Letztes Update dieses Posts: 24.03.2017
Letztes Update auf Github: laufend :-)

Für den RF2000 empfehle ich die Lektüre dieses Posts von Nibbels:
http://www.rf1000.de/viewtopic.php?f=7& ... 529#p15514
Zuletzt geändert von mhier am Fr 24. Mär 2017, 11:00, insgesamt 11-mal geändert.
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)
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: 246 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Hier ist noch mal ein Beispiel-GCode, das ist der Anfang einer Datei, die ich gerade drucke:

Code: Alles auswählen

; GCode generated by CraftWare

M109 S205 ; wait for extruder temp to be reached
M190 S60 ; wait for bed temp to be reached

M3005 S6 ; enable debug output

M400
M3900 ; home and find heat bed z offset		<<--------------
M3001 ; Aktivate Z-Compensation 
M400

G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion

; Acceleration up to...
; Acc printing
M201 X6000 Y6000 Z1000
; Acc travel
M202 X6000 Y6000 Z1000

; Move Z-axis n-steps up (see manual)
M3004 S0 ; + n-steps bed down // - n-steps bed up!

;--------------------------------------
G92 E0 ; start line
G1 F300 E-0.5
G1 X200 Y25 Z0.35 F5000
G1 F800 E8
G1 X20 E25 F1000
M400 ; Warten bis Idle
;--------------------------------------
;header end
;--------------------------------------

M190 S60 ;set bed temp (wait)
M109 S205 ;set head temp (wait)
; ------------------------------------
; Layer #0
; ------------------------------------
G21 ; mm
G90 ; abs
G92 E0 ; reset extr
M106 S0
;segType:Skirt
G0 F4800 E-1.0000
G0 F300 Z0.300
G0 X143.831 Y90.939 F3600
G0 F4800 E0.0000
G1 X137.143 Y84.821 E0.2025 F1200
G1 X118.035 Y84.821 E0.6293
G1 X117.637 Y85.039 E0.6394
G1 X112.860 Y89.409 E0.7841
G1 X112.541 Y89.555 E0.7919
G1 X106.171 Y83.728 E0.9847
...
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
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3391
Registriert: So 15. Nov 2015, 20:55
Has thanked: 745 times
Been thanked: 591 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von AtlonXP »

Hallo mhier,

dein Beitrag hört sich gut an.

Aber hier möchte ich gleich vorbeugend eine WARNUNG aussprechen!

Wer dem RF1000 oben an der Z- Stellschraube zu viel Weg klaut,
dem fehlt es dann unten in der Output Position.
Die Z- Spindeln könnten unten auf Kollision fahren. :schock:
Oder hast du das bereits berücksichtigt?

Siehe meinen Link: http://www.rf1000.de/viewtopic.php?f=67&t=1498

LG AtlonXP
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: 246 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

AtlonXP hat geschrieben:Wer dem RF1000 oben an der Z- Stellschraube zu viel Weg klaut,
dem fehlt es dann unten in der Output Position.
Die Z- Spindeln könnten unten auf Kollision fahren. :schock:
Oder hast du das bereits berücksichtigt?
Ich habe den offiziellen Fräsumbausatz installiert mit dem unteren Z-Schalter. Da die Logik mit beiden Z-Schaltern noch immer zu Problemen führt, deaktiviere ich den unteren Schalter normalerweise, natürlich ohne ihn zu demontieren. Damit fährt er jedes Mal "auf Kollision" mit dem Schalter, wenn er in die Output-Position fährt. Zumindest bei eingebautem unteren Z-Schalter passiert da nichts schlimmes, es macht nur etwas Krach. Übrigens ist das sogar offiziell vorgesehen, wenn nämlich bei aktiviertem unteren Z-Schalter (also die "circuit" Einstellung) der Drucker eingeschaltet wird während der Tisch ganz unten ist und somit der Z-Schalter gedrückt, wird der Drucker beim Homing versuchen, etwas nach unten zu fahren. Ich hatte das mal kritisch angemerkt, RF1000 hat hier im Forum aber bestätigt, dass das nicht nur bekannt sondern auch unproblematisch ist.

Ich weiß nicht genau, was passiert, wenn der untere Schalter nicht eingebaut ist (sprich, wo gegen fährt er dann). Ich kann mir aber nicht so wirklich vorstellen, dass dabei was kaputt geht? Die Spindeln kriegst du nicht kaputt mit dem Motor, der ist dafür viel zu schwach.

So oder so betrifft das aber nur meinen Vorschlag, mit der Holzplatte zu testen, oder? Die Korrektur, die da im Realbetrieb herauskommt, ist ja nur im Bereich von 0.1mm, vielleicht 0.2mm. Überhaupt ist die maximale Korrektur begrenzt, da die Matrix nur 16 Bit Einträge hat und somit keine Werte größer als 32768 Teilschritte speichern kann (Overflow habe ich abgefangen, muss ich aber noch mal testen).
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)
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: 246 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Ich habe gerade ein Update auf github veröffentlicht, das die Zuverlässigkeit deutlich verbessern sollte. Der Scan wird jetzt dreifach durchgeführt und anschließend das kleinste (also negativste) Ergebnis verwendet. Dadurch wird verhindert, dass Störungen bei der Kraftmessung, die durch das eingelegte Filament kommen können, die Messung verfälschen.

PS an die Forum-Admins: Leider kann man hier Beiträge nicht mehr editieren, wenn schon drauf geantwortet wurde. Ich würde aber gerne den Eingangspost laufend updaten. Wäre es möglich, das freizuschalten?
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
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3391
Registriert: So 15. Nov 2015, 20:55
Has thanked: 745 times
Been thanked: 591 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von AtlonXP »

Hallo mhier,

ja ich meine das mit der Holzplatte.

An meinem RF1000 wird es ab einer Zustellung von 2 mm, an der Z- Stellschraube, unten eng und er fährt mehr oder weniger den Kabelschlepp platt und bekommt bestimmt Schrägzug auf der Y- Platte und … !

Ich sehen das mit der Kollision all so, nicht so locker wie du.

Es ist nicht nur die Kraft des Motors, sondern auch die gesamte bewegte Masse muss gebremst werden, dazu kommt noch das Übersetzungsverhältnis der Z- Spindel.

Hat die bewegte Masse garkeinen Bremsweg, (hartes Aufsetzen weil unten nichts nachgibt) dann geht die Kraft theoretisch ins Unendliche bis doch etwas nachgibt!

Man kann auch sagen: „Jeder Tropfen höhlt den Stein“!

Scherzhaft gemeint:
RF1000 soll mal seinen Finger an der Quetschkannte unten rein stecken und dann mal sehen: „Ist er ab, oder nur blau?“
Ich würde mir da was Überlegen, zu verbessern.

Wenn dein Drucker unten aufsitzt, schafft es der Motor alleine wieder weg zu fahren, oder musst du von Hand nachhelfen?

LG AtlonXP
Oo
Globaler Moderator
Globaler Moderator
Beiträge: 541
Registriert: Fr 5. Sep 2014, 19:08
Has thanked: 48 times
Been thanked: 60 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von Oo »

AtlonXP hat geschrieben:
Hat die bewegte Masse garkeinen Bremsweg, (hartes Aufsetzen weil unten nichts nachgibt) dann geht die Kraft theoretisch ins Unendliche bis doch etwas nachgibt!

LG AtlonXP
Ist es nicht so das der Riemen dann durchdreht?
Zumindest hört sich das bei mir immer so an, wenn der Drucker mal wieder nicht weiß wo Schluss ist.

Oo
Benutzeravatar
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3391
Registriert: So 15. Nov 2015, 20:55
Has thanked: 745 times
Been thanked: 591 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von AtlonXP »

Hallo Oo
Oo hat geschrieben:
Ist es nicht so das der Riemen dann durchdreht?
Zumindest hört sich das bei mir immer so an, wenn der Drucker mal wieder nicht weiß wo Schluss ist.

Oo
Ich würde sagen, dann hat es sich schon ausgebremst, du musst nur noch die Kupplung treten. :woohoo:

Sehe nicht nur den Motor, sondern auch die anderen bewegten Massen.
Wenn die beiden Z-Spindeln sich drehen ist schon ordentlich Masse dahinter und die sind auch noch untersetzt.
Bei mir hat es auch schon überall einmal gerattert.

Stellt sich nur die Frage, wie oft machen wir sowas bis.... :dash:

LG AtlonXP
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: 246 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Also wie gesagt, bei mir fährt er auch ohne verstellen der Schraube unten an den Anschlag. Der Anschlag ist bei mir der untere Z-Schalter. Wenn der eingebaut ist, passiert das immer beim Ausgeben des Objektes! Das laute Rattern kommt lediglich daher, dass der Stepper "überspringt", also Schritte verliert. Ich gebe dir recht, das ist nicht schön. Wer es für diesen Test vermeiden will, kann aber ja einfach im richtigen Moment den Drucker ausschalten. Der Test sollte ja vorbei sein, wenn der Drucker das Objekt ausgibt :-) Und unbeaufsichtigt wird ja keiner den Test laufen lassen, das wäre ja irgendwie sinnlos.
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)
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: 246 times

Re: [Inoffizieller Mod] Z-Offset Scan

Beitrag von mhier »

Ich habe noch vergessen zu schreiben, dass ich Sonntag Abend noch ein Update auf github veröffentlicht habe. Falls jemand vorher schon die Firmware heruntergeladen hat, bitte unbedingt das Update verwenden! Sonst kann es Probleme mit der Temperatursteuerung geben...
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)
Antworten

Zurück zu „Firmware / Tweaks“