Seite 7 von 9

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Fr 23. Dez 2016, 22:47
von Nibbels
Ich teste gerade die 1.35mod :)
Screenshot_4.jpg
mhier's Z-Scan M3900
Nibbels Z-Scan Erweiterungen und Konfig M3901
Der Bett-Loch-Fix M3902
Diese Bett-Abkühl-Funktion M3903
M116-fix
Wessix-Licht-Mod (M355 / M355 S0 / M355 S1) zum Umschalten von X19

https://github.com/Nibbels/Repetier-Firmware

Genaueres kann ich noch nicht sagen, es lässt sich für RF1000 und RF2000 kompilieren. Den RF2000 teste ich gerade durch. RF1000 hab ich wie schon früher erwähnt nicht, das bleibt von meiner Seite ungetestet.

LG

(PS: Das mit den HEAT_BED_SCAN_Raster-Einstellungen hab ich inzwischen im Blick, nur waren dann schon so viele Löcher in einer saudoofen Anordnung im Bett, dass es etwas mehr Testarbeit gewesen wäre)

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Fr 30. Dez 2016, 21:34
von Nibbels
Beim Mod funktioniert jetzt auch Arduino 1.8.0
Screenshot_1.jpg
Danke an rf_52, seine Hinweise und das Anfixen :)
Quelle: http://www.rf1000.de/viewtopic.php?f=7& ... =10#p16000

Zusätzlich fehlen diverse Compilerwarnungen. (Nach dem Umschalten Arduino neu starten, sonst sind die Meldungen nicht da, zu viel da oder wirr.)
Screenshot_2.jpg
Alle Warnungen, die beim Warnlevel "Keine" und auch "Standard" angezeigt wurden sind behoben.
Quelle und exakte Changelog: https://github.com/Nibbels/Repetier-Firmware/commits/

Es gilt wie immer: Ich teste auf dem RF2000, den RF1000 kann ich nicht testen. Aber die Bugfixes mache ich nach bestem Wissen und Gewissen und sehr vorsichtig für beide Drucker. (Es ist quasi dieselbe Software mit verschiedenen Configs)
Dass diese Warnungen weg sind, wird vermutlich zu 99,999% egal sein. Doch manche Sachen waren eben arg unschön oder nicht ganz sauber - oder wurden schlichtweg in der neuen Compilerversion als möglicher Fallstrick gewarnt - vorher nie.
Wer nicht auf Arduino 1.6.5 compilieren kann, wird einen Vorteil haben.

LG

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Mo 2. Jan 2017, 14:56
von Nibbels
Grhmmmmm...

Zu Arduino 1.8.0 (.cc)
Am besten scheint immernoch Arduino (.cc) 1.6.5 zu sein. Auch wenn sich diese Version (oder wenn man die Kommentare in der offiziellen RF V1.35 in pins.h umbricht und alle evtl. Warnungen ignoriert) ziemlich sauber kompilieren lässt.
Ich bekomme mit Arduino 1.8.0 (.cc) bei OutputObject einen instabilen Drucker.
Da ich eigentlich was völlig anderes machen wollte, als diesen Fehler zu suchen, höre ich an der Stelle auf und nutze Arduino (.cc) 1.6.5

Siehe:
http://www.rf1000.de/viewtopic.php?f=7& ... 082#p16082

LG

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Fr 6. Jan 2017, 10:31
von mhier
Super :-) Ich hoffe ich finde am Wochenede endlich mal die Zeit, das auf meinem RF1000 zu testen ;-)

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Do 12. Jan 2017, 03:13
von Nibbels
Der Mod ist nun auf einem guten Stand.

Details:
http://www.rf1000.de/viewtopic.php?f=7&t=1638 ist mit eingebaut.
Fast alle Compilerwarnungen sind aufgelöst, bis aktuell auf zwei.
Der ZOffsetScan funktioniert jetzt wie der HBS, der läuft in Schrittchen ab. Seither gibts (bisher zumindest) keine Kommunikationsprobleme mehr.
(Alle weiteren G-Codes müssen aber mit ihrer Ausführung warten. Beim HBS werden die sofort ohne warten ausgeführt.)

LG

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Mo 16. Jan 2017, 02:30
von Nibbels
RF2000, fast neues Keramik-Heizbett
Ich habe gestern und heute einen Test gemacht.
Die Matrix-Positionen 3 bis 9 sind jetzt mit unterschiedlichen HBS-Scans gefüllt, welche bei den folgenden Temperaturen gemacht wurden:

T0 Heizbett
50 24
50 50
50 75
50 85
50 100
50 125
50 140
°C °C

Ich habe also das Heizbett verändert, den Extruder nicht. (bis auf die Tatsache, dass der Extruder bei der Berührung des Heizbettes etwas Wärme mitbekommt.)

Der Messvorgang war folgender:
25°C, 50°C, 75°C -> Abkühlen über Nacht
-> Vorheizen 100°C, 125°C, 140°C, 85°C
Also war 100°C quasi ein Erstscan. Ich habe mindestens 10 Minuten gewartet, aber man sieht das trotzdem in den Diagrammen.
Auch zwischen den Scans wurde immer sehr lange gewartet.

Das ist das Ergebnis: Der Mittelwert aller Höhen über der Temperatur aufgetragen.
heizbett_over_temp.jpg
- Man kann also sagen, dass wenn das Heizbett genügend durchgeheizt wurde, die mittlere Höhe des Heizbettes um 0.0015 mm/°K ansteigt.
- Ist der Drucker kalt, hatte ich trotz eigentlich anständiger Vorheizzeit einen Fehler von 0.03. (Man sieht dass die Durchschnittshöhe bei 100°C zu weit unten liegt!)

Hier sind ein paar Nebendiagramme:
mittelabw over Temp.jpg
- Die Unebenheit der Platte ändert sich je nach Scan ein wenig, ich sehe aber keinen eindeutigen Trend.
ecken.jpg
- Vorne Rechts, wie hinten Rechts haben einen ähnlichen Änderungs-Trend über der Temperatur
- Vorne Links, wie hinten Links haben einen ähnlichen Änderungs-Trend über der Temperatur

LG


------------------------------
Auch interessant:
"Das Phänomen der sich ändernden Höhe des 1. Layers"
http://www.rf1000.de/viewtopic.php?f=25 ... t+Bed+Scan
------------------------------

Und hier die Excel-Datei für Interessierte :)

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Mo 16. Jan 2017, 02:31
von Nibbels
Hier die HBS-Ebenen:
25°C
25.jpg
50°C
50.jpg
75°C
75.jpg
85°C
85.jpg
100°C
100.jpg
125°C
125.jpg
140°C
140.jpg
Und hier ohne 100°C als Gif:
anim_ohne_100.gif
Und hier mit 100°C als Gif:
anim_mit_100.gif
LG

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Mo 16. Jan 2017, 16:33
von mhier
Schick :-) D.h. unser Mod deckt also auch die Temperaturabhängigkeit vom Heizbett ausreichend gut ab.
(Ich kann mich leider nicht für die Posts hier bedanken, weil ich das Topic geöffnet habe - vielleicht würde es eh Sinn machen, diese schönen Erkenntnisse in einem eigenen Post zu zeigen?)

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Mo 16. Jan 2017, 16:55
von Nibbels
mhier hat geschrieben:Schick :-) D.h. unser Mod deckt also auch die Temperaturabhängigkeit vom Heizbett ausreichend gut ab.
Da würde ich dir jetzt zustimmen :)
Kann evtl. ein Mod diese Beiträge in einen anderen Thread verschieben? Weiß aber nicht ob das sein müsste, denn so würde ich die hier sicher wieder finden :D

Um das Bild etwas abzurunden, habe ich heute Mittag ein paar weitere HBS gemacht.
Alle bei 115°C - Anfangs war der Drucker kalt, im Display aber schon 115°C.
5x HBS hintereeinander, der zeitliche Abstand so eng wie möglich.
Immer mit folgendem Script:

Code: Alles auswählen

M104 S50
M140 S115
M116
M3009 Sx ; x = {9,8,7,6,5}
M400
M3010
Randbedingungen:
a) Am Ende jedes HBS hatte das Hotend ca. 60°C, nicht mehr 50°C. Es berührt auch ständig die 115°C heiße Bettoberfläche.
-> Nach der Hotend-V2-Formel mit der Längung von 0.001mm/°K könnten die Werte also bis zu 0.01mm (+10°C) verändert worden sein.
b) Die Zeit habe ich nicht genau notiert, doch ich habe die HBS-Scans ziemlich eng nacheinander gemacht.

Die veränderliche durchschnittliche Höhe der HBS-Matrix bei Scan 1,2,3,4,5 bei jeweils 115°C mit immer besserer/längerer Vorwärmung.
hoehendurchschnitt.jpg
Die Mittelabweichung:
mittelabw_over_messung.jpg
Die Betrachtung der Ecken:
ecken115.jpg
Animation der HBS-Ebenen:
115C_Scans_x5.gif
:coffee: Und schon wieder die Erkenntnis, dass Vorwärmen und langes Warten der gravierende Trick für Wiederholgenauigkeit beim Z-Offset ist. Diesesmal auf das Heizbett bezogen.

Ausreichendes Vorwärmen des Heizbettes bringt also bis zu ~0.08mm Genauigkeit.

Siehe auch:
Marcometaner: "Re: Kalibrierung" http://www.rf1000.de/viewtopic.php?f=23 ... ten#p16109
rf1k_mjh11: "Der Werkstoff ABS" http://www.rf1000.de/viewtopic.php?f=62 ... ten#p16061
rf1k_mjh11: "Das Phänomen der sich ändernden Höhe des 1. Layers" http://www.rf1000.de/viewtopic.php?p=9928#p9928
und weitere.

Abschließendes Fazit: Man darf im Grunde nicht faul/ungeduldig sein - trotz HBS und Z-Offset-Scan! Man muss den Drucker auf Temperatur bringen und genügend lange warten, wenn man ein Teil druckt, dessen erster Layer groß ist. Sonst nähert sich das Bett dem Extruder und der Extruder dem Bett während man "nachwärmt" während dem Druck. Für mich gilt: Nicht nur "bis zu 10 Minuten", sondern "eher 10 bis 30 Minuten vorwärmen".

Beachtet man das, kann man mit Z-Offset-Scan sehr genau große Teile drucken.
Beachtet man das nicht, kann man mit Z-Offset-Scan nur kleine Teile sehr genau drucken - oder man steht daneben und korrigiert mit den Pfeiltasten :schock: .

LG

Re: [Inoffizieller Mod] Z-Offset Scan

Verfasst: Do 19. Jan 2017, 16:38
von Nibbels
Die Konsequenz aus den letzten Erkenntnissen, hier im Thread und den Infos, die ich von AtlonXP über die Nachlängung erhalten habe, ist ein ne neue Mod-Funktion, welche die Digits überwacht und das Offset nachregeln kann.
Wessix hatte die Idee und wir haben uns die letzten paar Abende zusammengesetzt, um das richtig auszuknobeln. Ich habs dann im Mod auf Github (Nibbels Fork von mhiers Mod) integriert.
Schon der erste Versuch war richtig gut, darum hat uns das nicht mehr losgelassen. Inzwischen sind wir ~ bei Version 3 der Regelungslogik.
Extremsituation hat geschrieben:"Wenn man einen Druck startet und die Düse zu nah dran ist, produziert man hauchdünne Folie und die Digits steigen und steigen. Die Düse schmiert nur noch über die Druckplatte und das Filament stockt. Der Extrudermotor fängt an zu knacken."
Dieser Effekt ist die Extremform unserer Ausgangsposition.

Wir sind aber gedanklich nur etwas zu nah dran - das reicht völlig aus.
Der Druck startet, ein zu hoher Digitswert stellt sich ein (dieser muss nicht unaufhörlich ansteigen).
Auch ohne Mod kann man das beheben, indem man das Z-Offset nachstellt oder das Bett mit den Z-Pfeil-Tasten am Drucker etwas nach unten fährt.
Mit etwas Erfahrung sieht man den korrekten Abstand der Düse an den Digits im Druckerdisplay.
Das ist der eigentliche Trick.
Normalsituation hat geschrieben:Wir wissen, dass ABS bei XXX °C in den oberen Layern z.B. in Etwa um 3700 Digits schwanken wird.
Wenn in der Ersten Lage 6000 Digits angezeigt wird, sind wir zu nah am Heizbett, weil das Offset nicht stimmt. Die erste Lage wird zu dünn.
Die neue Funktion im Mod führt einen neuen G-Code ein, den man nach seiner Startmade oder direkt nach M3001 einfügen kann.

Code: Alles auswählen

M3909 P4500 S120 ;nur wenn Z-Compensation aktiv
M3909
[P] = Digits, die nicht überschritten werden sollen. Auf diese Digits wird per Abstandsoffset heruntergeregelt. (obere Wunsch-Digit-Grenze)
= `um`, Mikrometer, über die das zusätzliche Ausgleichsoffset nicht ansteigen darf. (Limiter, P100 = 0,1mm)

Der G-Code aktiviert eine Digits-Überwachung, welche über einen "One-Way"-Regler ein zusätzliches SenseOffset aufbauen kann, welches zum Z-Offset addiert wird.
  • Aufgebaut wird das SenseOffset nur, wenn man sich mit seiner Lage unterhalb des Z-Kompensations-Minimums (g_minZCompensationSteps) befindet, das normalerweise ca. 0.2mm enstpricht. Das sollte fast garantieren, dass man nur im ersten Layer überwacht.
  • Ist die Höhe der Startmade z.B. 0.35, beeinflusst sie nicht die Regelung, weil sie über 0,2 = g_minZCompensationSteps liegt. In dieser Höhe arbeitet M3909 nicht. -> Keine Verfälschung durch hohe Digits bei Startmade.
  • Aufgebaut wird das SenseOffset durch einen kleinen Regler, der stark nachstellt, wenn die Digits ansteigen und extrem schwach oder nicht nachstellen darf, wenn sie fallen oder im Norm-Bereich sind. -> Das hat in Tests am Besten funktioniert.
  • Das SenseOffset ist begrenzt auf einen fest einstellbaren Wert zwischen 0.01mm und 0.2mm. Mehr würde keinen Sinn machen, denn wer sein Heizbett mit normalen Lagendicken über 0.2mm zu weit oben hat, hat prinzipiell etwas nicht verstanden oder Fehlkalibriert - sowas kann nicht gut gehen. Normalerweise sollte die Funktion maximal unter 0.12mm nachregeln müssen, das halte ich noch für sinnvoll.
  • Zurückgenommen (=0 gesetzt) wird dieses SenseOffset erst, wenn man die Funktion neu startet oder der Druck endet. Wir wollen normalerweise keine wellige erste Lage, sondern das quasistatische Temperaturoffset im Drucker automatisch korrekt einstellen.
  • Wird in irgendeiner Form die Z-Compensation deaktiviert, verliert der G-Code seine Wirkung.
  • Ich stelle gerne mein Limit [P]xxxx so ein, dass es etwa 20% über meinen normalen Druck-Digits liegt. Höher lässt unter Umständen mehr Anpressdruck für die erste Lage zu.
  • Ein `zu weit weg vom Heizbett` wird nie nachgeregelt.
  • Der Abstand von Düse-Bett, welcher ohne M3909 vorhanden wäre wird niemals automatisch unterschritten. Das ergibt sich aus der Nur-Plus-SenseOffset-Logik. Die Situation zwischen Düse und Heizbett wird immer nur "entspannt".


Testumgebungen:
  • Wessix testet das aktuell auf seinem RF1000
  • Ich teste das auf meinem RF2000 mit esun-ABS und 0.3er Düse/263°C (~3700digits normallast)


Vorläufiges Fazit:
Es ist extrem komfortabel. Wenn man gute HBS-Daten hat und weiß, dass seine erste 0.2er Lage normalerweise fast perfekt eingestellt ist, aber um +-0.05 schwankt, kann man ganz gemütlich das Z-Offset auf -0.1 (Düse näher ans Bett) stellen, die M3909-Funktion aktivieren und der M3909 entschärft diese -0,1 so lange bis es gut passt.

Wie geht ´Nibbels´ vor, wenn er eine ziemlich wiederholgenaue erste Lage will?
  • Z-Schraube richtig einstellen, und zwar so, dass bei absolut jeder Temperatur das Heizbett "im Minus" liegt, also die HBS-Matrix niemals positiv werden kann. Eher mehr Düse-Bett-Abstand als nötig. 0.3+mm.
  • HBS-Scan (einfach, evtl. bei Filamentoptimaler Betttemperatur)
  • Sicherstellen, dass keine Popel an der Düse sind / Filament retract bei 150"C
  • mhier-Offset-Scan, evtl. mehrmals an unterschiedlichen Positionen machen bis keine Punkte mehr auf der Platte verbleiben. (exakter Scan)
  • korrigierte HBS-Matrix im Ram mit mhier-korrigiertem Offset abspeichern (Mod-Gcode `M3902 S1` für speichern unter Matrix 1)
  • Irgendwas drucken und die "normalen Digits" beobachten und merken.
  • Wissen dass der Drucker kalt vs. warm das Offset stark ändert (AtlonXP http://www.rf1000.de/viewtopic.php?f=25 ... 388#p15339 und http://www.rf1000.de/viewtopic.php?f=25 ... 388#p16388)
  • Das Z-Offset so stellen, dass die erste Lage exakt passt oder die erste Lage etwas zu dünn wird.
  • M3909 aktivieren, gemerkte Digits gut aufgerundet (+20%..+1000digits...) eintragen, drucken
  • Freuen, dass die erste Lage immer gleich wird :D :D :D


TODO / zu Prüfen:
Wenn die erste Lage aufgrund von unterschiedlichen Druck-Einstellungen nicht homogen gefahren wird, kann es sein, dass z.B. Infill andere Digits hervorbringt als die Perimeter. (Doch: Bisher scheint M3909 ziemlich robust zu sein und nur zu regeln, wenn es notwendig ist.)
Doch wir müssen beobachten wann das einmal nicht gut funktionieren könnte (Perimeter?, Infill?, Stützstrukturen?, viele Retracts?) und was man dagegen tun könnte. Evtl. reicht es in problematischen Fällen, das Limit höher zu lassen.

LG