Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Firmware Veröffentlichungen und Einstellungen können hier angekündigt und diskutiert werden.
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RFrank »

Hallo zusammen

Diesen Artikel mußte ich kurz vor Vollendung komplett ändern, da ich eine Systematik erkannte.

Ich habe versucht mit der ausgegeben Matrix (M3013) mein Heizbett in die bestmögliche Lage zu bringen.
Das dazu verwendete Excel-Blatt zeigt mir die Höhenunterschiede in mm an. Die Auflagerpunkte wurden auf das notwendige Mass gebracht, aber die exakte Position wurde nicht erreicht. Es wurde besser, aber nicht wie vorher angezeigt. Mein Fehler ich hatte die Achsen vertauscht.
Denoch fiel eine Unregelmäßigkeit auf.
Ich prüfte die Matrix mit den Werten die zuvor in der Repetier-Command-Zeile abgelegt wurden und mußte einen Unterschied erkennen.

Was passiert in der Matrix. Es wird der innere Bereich des Bettes gescannt. Zum Schluss wird um diesen Kern ein Ring von Werten dubliziert und zwar werden die Werte des direkten Nebenmannes , um für das ganze Bett Ausgleichsdaten zu haben.
Diese erste Matrix zeigt, aber auf die falschen Werte (eine Reihe zu früh) ggf. liege ich auch falsch und die Werte werden nur nicht korrekt angezeigt.

Dies ist ein Beispiel von mir. Das EEPROM war vorher gelöscht worden, erkennbar weil unter den X-Werten keine Werte eingetragen sind.
Dafür sind die Werte der letzten Reihe für immer verloren (siehe letzte Reihe der handgeschriebenen Matrix).
Ebenfalls wird die letzte Y-Spalte nicht mit übernommen. Die Werte der handgeschriebene Matrix resultieren aus den Repetier-Log-Daten (angehängt).

Hier meine Matrix:

22:57:06.476 : scanHeatBed(): raw heat bed compensation matrix:
22:57:06.476 : front left ... front right
22:57:06.476 : ... ... ...
22:57:06.476 : back left ... back right
22:57:06.476 : ;6;0;14;34;54;74;94;114;134;154;174;194;214
22:57:06.476 : ;0;0;0;0;0;0;0;0;0;0;0;0;0
22:57:06.476 : ;29;0;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228
22:57:06.476 : ;49;0;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244
22:57:06.477 : ;69;0;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260
22:57:06.477 : ;89;0;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252
22:57:06.477 : ;109;0;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256
22:57:06.477 : ;129;0;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248
22:57:06.477 : ;149;0;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240
22:57:06.477 : ;169;0;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232
22:57:06.477 : ;189;0;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216
22:57:06.477 : ;209;0;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208
22:57:06.477 : offset = 0 [steps]0
22:57:06.477 : g_uZMatrixMaxX = 13
22:57:06.477 : g_uZMatrixMaxY = 12
22:57:06.683 : scanHeatBed(): total scan time: 1854
22:57:06.683 : scanHeatBed(): g_uZMatrixMaxY.1 = 13
22:57:06.683 : scanHeatBed(): g_uZMatrixMaxY.2 = 13
22:57:06.683 : scanHeatBed(): converted heat bed compensation matrix:
22:57:06.683 : front left ... front right
22:57:06.683 : ... ... ...
22:57:06.683 : back left ... back right
22:57:06.683 : ;6;0;14;34;54;74;94;114;134;154;174;194;214;245
22:57:06.683 : ;0;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;29;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;49;-1520;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244;-1244
22:57:06.683 : ;69;-1516;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260;-1260
22:57:06.683 : ;89;-1492;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252;-1252
22:57:06.683 : ;109;-1488;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256;-1256
22:57:06.684 : ;129;-1468;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248;-1248
22:57:06.684 : ;149;-1432;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240;-1240
22:57:06.684 : ;169;-1396;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232;-1232
22:57:06.684 : ;189;-1328;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216;-1216
22:57:06.684 : ;209;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : ;245;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : offset = -848 [steps]-848
22:57:06.684 : g_uZMatrixMaxX = 14
22:57:06.684 : g_uZMatrixMaxY = 13
22:57:06.684 : saveCompensationMatrix(): valid data detected

Höhenwerte Matrix von Hand.JPG
Eine Matrix von Diebesbeute aus dem Forum:
Matrix
< 12:27:23: front left ... front right
< 12:27:23: ... ... ...
< 12:27:23: back left ... back right
< 12:27:23: ;6;0;14;34;54;74;94;114;134;154;174;194;214
< 12:27:23: ;0;0;0;0;0;0;0;0;0;0;0;0;0
< 12:27:23: ;29;0;-772;-748;-548;-428;-376;-308;-268;-328;-216;-548;-556
< 12:27:23: ;49;0;-808;-776;-668;-628;-456;-356;-316;-260;-380;-620;-560
< 12:27:23: ;69;0;-916;-860;-756;-700;-512;-448;-404;-544;-96;-692;-660
< 12:27:23: ;89;0;-1008;-944;-836;-772;-580;-508;-472;-604;-516;-772;-736
< 12:27:23: ;109;0;-1076;-972;-872;-824;-636;-568;-528;-652;-572;-832;-824
< 12:27:23: ;129;0;-1124;-1000;-876;-852;-672;-616;-576;-680;-608;-872;-872
< 12:27:23: ;149;0;-1116;-1028;-924;-892;-708;-636;-592;-720;-644;-880;-876
< 12:27:23: ;169;0;-1152;-1068;-852;-908;-704;-644;-608;-760;-668;-908;-920
< 12:27:23: ;189;0;-1136;-1088;-972;-916;-716;-652;-624;-776;-704;-936;-720
< 12:27:23: ;209;0;-1152;-1084;-964;-900;-720;-680;-648;-784;-696;-976;-968
< 12:27:23: offset = 0 [steps]0
< 12:27:23: g_uZMatrixMaxX = 13
< 12:27:23: g_uZMatrixMaxY = 12
< 12:27:23: scanHeatBed(): total scan time: 1561
< 12:27:23: scanHeatBed(): g_uZMatrixMaxY.1 = 13
< 12:27:23: scanHeatBed(): g_uZMatrixMaxY.2 = 13
< 12:27:23: scanHeatBed(): converted heat bed compensation matrix:
< 12:27:23: front left ... front right
< 12:27:23: ... ... ...
< 12:27:23: back left ... back right
< 12:27:23: ;6;0;14;34;54;74;94;114;134;154;174;194;214;245
< 12:27:23: ;0;-772;-772;-748;-548;-428;-376;-308;-268;-328;-216;-548;-556;-556
< 12:27:23: ;29;-772;-772;-748;-548;-428;-376;-308;-268;-328;-216;-548;-556;-556
< 12:27:23: ;49;-808;-808;-776;-668;-628;-456;-356;-316;-260;-380;-620;-560;-560
< 12:27:23: ;69;-916;-916;-860;-756;-700;-512;-448;-404;-544;-96;-692;-660;-660
< 12:27:23: ;89;-1008;-1008;-944;-836;-772;-580;-508;-472;-604;-516;-772;-736;-736
< 12:27:23: ;109;-1076;-1076;-972;-872;-824;-636;-568;-528;-652;-572;-832;-824;-824
< 12:27:23: ;129;-1124;-1124;-1000;-876;-852;-672;-616;-576;-680;-608;-872;-872;-872
< 12:27:23: ;149;-1116;-1116;-1028;-924;-892;-708;-636;-592;-720;-644;-880;-876;-876
< 12:27:23: ;169;-1152;-1152;-1068;-852;-908;-704;-644;-608;-760;-668;-908;-920;-920
< 12:27:23: ;189;-1136;-1136;-1088;-972;-916;-716;-652;-624;-776;-704;-936;-720;-720
< 12:27:23: ;209;-1152;-1152;-1084;-964;-900;-720;-680;-648;-784;-696;-976;-968;-968
< 12:27:23: ;245;-1152;-1152;-1084;-964;-900;-720;-680;-648;-784;-696;-976;-968;-968
< 12:27:23: offset = -96 [steps]-96
< 12:27:23: g_uZMatrixMaxX = 14
< 12:27:23: g_uZMatrixMaxY = 13


Als ich den Scan-Vorgang zum ersten Mal sah, dachte ich: "Nicht einfach zu programmieren" und ich hatte Recht.
Wobei es bevor ich diesen umkleidenden Rahmen erkannte, deutlich schlimmer aussah.
Hier kann ich jetzt nur sagen, das sie in der richtigen Reihenfolge sind, lediglich fehlen 1 Reihe und 1 Spalte.

Wie die Matrix hinterher in die Berechnung eingeht und ob auch andere Raster zum Beispiel 10x10 oder 15x10 möglich sind kann uns nur RF1000 sagen.

Gruß Frank
(Kein Programm ohne Fehler und es gibt noch ein paar Fehler die ich aufschreiben könnte)
Software ist die RF1.11.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
Benutzeravatar
riu
Administrator
Administrator
Beiträge: 1296
Registriert: Do 4. Sep 2014, 23:48
Wohnort: Düsseldorf
Has thanked: 53 times
Been thanked: 165 times
Kontaktdaten:

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von riu »

Hallo Frank.

Ich denke die Matrix ist was extra für uns, die uns was vorgaukelt was in Wirklichkeit garnicht da ist - letzen Endes sind wir alle nur Batterien :yes:

Spass beiseite. Es wäre schon wenn "User" RF1000 einmal beschrieben könnte wie die Matrix benutzt wird. Ob einfach schnöde interpoliert wird, und wenn ja auf welchen Achsen (immer der nächste reale Scanpunkt oder trianguliert zu 3 Punkten) und ob man mal daran Denkt eine Testfunktion zu realisieren wo man selbst einen X-Y wert eingeben kann und den Wert für real und aktuell Z bekommt zum vergleichen mit z.B. einer Fühllehre um zu schauen ob der Scan überhaupt noch was taugt oder ob das Bett wieder transformiert wurde.

Lieben Gruß,
Udo
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von rf1k_mjh11 »

RFrank, Udo,

Die Z-Kompensation ist das meist diskutierte Thema im Forum, denke ich. Ich bin da meist mit dabei.

Ohne die Suchfunktion bemühen zu wollen, erinnere ich mich recht genau, dass RF1000 sagte, es wird linear interpoliert.
Ob zu 3 Punkten trianguliert wird, kann ich nicht sagen - diese Frage kam nie auf, glaube ich.
Rechnerisch einfacher wäre, die nächsten 4 Matrixpunkte linear zu berücksichtigen. Das resultiert in eine Vereinfachung, natürlich. Hätte man zwischen zwei benachbarten Matrixpunkten eine Erhebung oder Absenkung, wird die Z-Kompensation diese nicht berücksichtigen. Damit würde die 'Fühlerlehre-Methode fehlschlagen (obwohl der Fehler vermutlich im Hundertstel-Bereich liegen wird).

Udo,
Anhand der HBS Matrix kann man recht einfach einen Fühlerlehren-Test durchführen. Es hilft dabei, wenn das Bett nicht zu eben ist. Man sucht sich den höchsten und tiefsten Punkt laut Matrix heraus, schreibt ein Dutzend GCode-Zeilen wo die Düse zum höchsten Punkt fährt und 20 Sekunden pausiert, dann auch zum tiefsten. In 20 Sekunden müsste man messen können, sonst pausiert man halt 1 Minute....
Das Ganze macht man einmal mit und ohne Z-Kompensation. Sieht man keinen Unterschied, dann ist was faul.

Dass der Scan, bzw. die Z-Kompensation tatsächlich zu einer Reaktion führt, steht außer Zweifel.
Die ersten paar Betriebsstunden meines RF1000 führten bei mir zu einem deutlichen Gefühl des Unwohlseins. Die raschen Z-Bewegungen während des Drucks verursachen ein unregelmäßiges 'Knacks-Geräusch' (zumindest bei meinem Drucker). Dieses Geräusch ließ mich an ein mechanisches Problem des Druckers glauben - daher das Unwohlsein. Erst als ich begann, den Finger auf die Gewindespindel zu legen, und die zeitliche Übereinstimmung der Knacksgeräusche mit der Spindeldrehung feststellte, konnte ich mich beruhigen.

mjh11
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
RF1000
Developer
Developer
Beiträge: 340
Registriert: Fr 10. Okt 2014, 16:31
Has thanked: 40 times
Been thanked: 80 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RF1000 »

RFrank hat geschrieben: Hier kann ich jetzt nur sagen, das sie in der richtigen Reihenfolge sind, lediglich fehlen 1 Reihe und 1 Spalte.
Es sollte nichts fehlen. Beim Scan können die x und y Achsen nicht auf 0 und x/y Max gefahren werden, daher enthält die 1. nach dem Scan ausgegebene Matrix (= die "raw" matrix) keine Werte für diese 2 Reihen und 2 Spalten. Die 1. Matrix ist in deinem Beispiel:

22:57:06.476 : scanHeatBed(): raw heat bed compensation matrix:
22:57:06.476 : front left ... front right
22:57:06.476 : ... ... ...
22:57:06.476 : back left ... back right
22:57:06.476 : ;6;0;14;34;54;74;94;114;134;154;174;194;214
22:57:06.476 : ;0;0;0;0;0;0;0;0;0;0;0;0;0
22:57:06.476 : ;29;0;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228
22:57:06.476 : ;49;0;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244
22:57:06.477 : ;69;0;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260
22:57:06.477 : ;89;0;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252
22:57:06.477 : ;109;0;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256
22:57:06.477 : ;129;0;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248
22:57:06.477 : ;149;0;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240
22:57:06.477 : ;169;0;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232
22:57:06.477 : ;189;0;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216
22:57:06.477 : ;209;0;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208
22:57:06.477 : offset = 0 [steps]0

Die 2. Matrix (= die "converted matrix") ist jene, mit welcher die Z-Kompensation rechnet und die sieht in deinem Beispiel so aus:

22:57:06.683 : scanHeatBed(): converted heat bed compensation matrix:
22:57:06.683 : front left ... front right
22:57:06.683 : ... ... ...
22:57:06.683 : back left ... back right
22:57:06.683 : ;6;0;14;34;54;74;94;114;134;154;174;194;214;245
22:57:06.683 : ;0;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;29;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;49;-1520;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244;-1244
22:57:06.683 : ;69;-1516;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260;-1260
22:57:06.683 : ;89;-1492;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252;-1252
22:57:06.683 : ;109;-1488;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256;-1256
22:57:06.684 : ;129;-1468;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248;-1248
22:57:06.684 : ;149;-1432;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240;-1240
22:57:06.684 : ;169;-1396;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232;-1232
22:57:06.684 : ;189;-1328;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216;-1216
22:57:06.684 : ;209;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : ;245;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : offset = -848 [steps]

Was genau könnte bei der 2. Matrix fehlen?

RFrank hat geschrieben: Wie die Matrix hinterher in die Berechnung eingeht und ob auch andere Raster zum Beispiel 10x10 oder 15x10 möglich sind kann uns nur RF1000 sagen.
In der Firmware ist ein minimaler Scanabstand von 10x10 mm vorgesehen. Jeder größere Scanabstand geht auch, also z.B. 15x10 oder 50x50 mm.
Die Berechnung für den Druckmodus findet komplett in doHeatBedZCompensation() statt (in der RF.01.15 ab Zeile 1053 von RF.cpp). Vereinfacht gesagt:

- Die aktuell vom G-Code angefahrene x/y/z Position wird ermittelt.
- Danach werden die 4 umliegenden Punkte der Matrix ermittelt.
- Aus diesen 4 Punkten wird über die entsprechenden 3 linearen Interpolationen der z-Offset an der aktuellen x/y Position ermittelt.
- Auf Basis der vom G-Code gewünschten z-Position, dem interpolierten z-Offset und dem gewünschten Wirkungsbereich der Z-Kompensation (= g_minZCompensationSteps ... g_maxZCompensationSteps) wird wiederum linear interpoliert, wie viel Korrektur in z-Richtung erforderlich ist.


mfG
RF1000
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RFrank »

Hallo RF1000

Danke für die schnelle Antwort. Wenn du dir meine handgeschriebene Matrix ansiehst (Foto), wirst du sehen, dass die untere Reihe nirgendwo mehr auftaucht (die letzten X-Werte [X-Reihe]) sie wird aber vom RF1000 abgescannt.
Die Daten fehlen auch schon in der der Ersten RAW-Matrix.
Genauso ist die letzte Y-Spalte komplett verloren und taucht nicht mehr auf, das macht ja keinen Sinn erst zu scannen und dann die Werte hinten überfallen lassen.
Da ist in der Programmsequenz der Einsprungpunkt falsch (vergleichbar mit einer For-Next-Schleife, die eigentlich bei 1 statt bei Null loszählen muss).
Es fehlen also die Werte einer Reihe und einer Spalte und damit ist ein ungewollter Versatz am Ende möglich, da die gemessenen Positionen nicht mit der Matrix übereinstimmen (Bereich hinten und rechts).
Ich habe mir den Log geschnappt und aus den X,Y,Z-Werten eine Matrix erstellt und mit der ausgegebenen verglichen.
Kein Hexenwerk und von jedem nachvollziehbar (Daten angehängt).

Gruß Frank
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
Benutzeravatar
riu
Administrator
Administrator
Beiträge: 1296
Registriert: Do 4. Sep 2014, 23:48
Wohnort: Düsseldorf
Has thanked: 53 times
Been thanked: 165 times
Kontaktdaten:

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von riu »

Ok. Ich verstehe. Das was mir eben gestern aufgefallen ist, ist folgendes. Mit einer 0,5er Düse und einem ersten Layer mit 0,25mm muss ich manuell zwar auch immer korrigieren (Bett mit den Pfeiltasten 2 ticks nach oben fahren) aber dann geht es über die ganze platte "fast" perfekt. Nehme ich eine 0,3mm Düse und mache einen ersten Layer mir 0,2mm bin ich total aufgeschmissen. HBS aktuell und Z wird beim Drucken beobachtet. Also der Wert am Display als auch die Spindelbewegunen.

Die aktualle Bettposition wird m.E. immer nur Stufenweise angefahren und nicht fliessend. Ist das richtig interpretiert?
Wenn ja. Welches Raster wird da herangezogen? Ich habe den Sourcecode jetzt nicht durchgeackert, was ich eigentlich auch nicht möchte.


Liebe Grüße,
Udo
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RFrank »

Hallo zusammen
riu hat geschrieben:Nehme ich eine 0,3mm Düse und mache einen ersten Layer mir 0,2mm bin ich total aufgeschmissen. HBS aktuell und Z wird beim Drucken beobachtet. Also der Wert am Display als auch die Spindelbewegunen.
Je nachdem ob das Bett im Randbereich stark abweicht, kann es sehr großen Einfluß auf das Druckergebnis haben.

Ich möchte meine Beobachtungen noch ein etwas besser erklären. Es hätte durchaus ein Mix der Daten mit den jeweiligen Koordinaten vorliegen können, dies scheint aber nicht vorzuliegen, höchstens eine Verschiebung im Bereich der fehlenden Daten.

Um zu sehen ob die Daten richtig abgelegt werden im EEPROM, habe ich mich neben den RF1000 gesetzt und habe die Z-Werte während des Scans mitgeschrieben (oben links im Bild). Darunter sind die original Daten der 1.Matrix (von RF1000 RAW-Daten genannt [unten links]).

Danach habe ich den Rand hinzugefügt, also den Bereich den der Drucker nicht mehr abscannen kann bzw. eben nicht abscannt (oben rechts).

Darunter habe ich 2.Matrix, die im Log übertragen wird eingefügt (diese füllt den Rand selbständig auf; mit Nachbarwerten).

Die Z-Werte der Matrix habe ich durch 2560 dividiert um auf mm zu kommen. Wie man sieht sind die manuell abgelesenen Werte absolut gleich mit den EEPROM abgelegten. Bei ergibt damit eine Absenkung im Randbereich 0,18 mm und damit wäre der Druck mit einer kleinen Düse im Randbereich nicht möglich.Die von mir benutzte Platte ist leider krum, aber ein Wechsel zwischen Fräs und Druckmodus schien mir auch nicht praktisch.
Z-Matrix.JPG
Wie man sieht, fehlt eine Reihe und Spalte, durch das einfache dublizieren von Werten und die nicht benutzten Werte geht die notwendige Genauigkeit verloren.

Bei meiner Testerei habe ich jetzt wenigstens den Fehler isoliert, der mir soviel Stress macht, betrifft alle die Z-Schalter im Kreisbetrieb fahren.

Gruß Frank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
RFrank
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 163
Registriert: Do 13. Nov 2014, 08:55
Wohnort: Wuppertal
Has thanked: 57 times
Been thanked: 9 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RFrank »

Nachtrag: In der 4 fach-Grafik sind X und Y vertauscht. In den beiden rechten Listen ist die Spalte 214 zu eng aufgezogen, dadurch hat Excel die Werte auf 1. Kommastelle gerundet habe ich erst später bemerkt. Die rechte unter Matrix ist die, die bei M3013 ausgegeben wird. Die anderen Werte kann man nur im Log von Repetier ermitteln/sehen.
RF1k_1: Erhöh.+Verl. Kabelk. (2G), NOT-AUS (Reset), Opt. Z-Endschalter, Einhausung, Aludruckfräspl.
RF1k_2: Erhöh. Kabelk., 2x Motorkühlung, Lüfterplatine, 2xY, X-,Y-Gegenlager, magn. Alupl. mit Metallauflage, 2x E3D V6 (L 3mm, R 1,75mm)
Benutzeravatar
Zaldo
Globaler Moderator
Globaler Moderator
Beiträge: 630
Registriert: Do 24. Sep 2015, 10:38
Wohnort: Raum Frankfurt
Has thanked: 38 times
Been thanked: 50 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von Zaldo »

Da könnte durchaus was dran sein. Ich habe nämlich bei mir, als ich das Bett gelevelt habe versucht, die Höhe an den Ecken jeweils anhand der vom HBS ermittelten Höhen(unterschiede) einzustellen, was trotz unzähliger Versuche partout nicht mal ansatzweise gelingen wollte. Ich habe dazu eine viel grobere HBS Matrix gewählt (aus Geschwindigkeitsgründen) und wenn der da jetzt für die äußersten Zeilen/Spalten jeweils stumpf die Werte der Zeile/Spalte davor kopiert hat, würde dies so einiges erklären.
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel
RF1000
Developer
Developer
Beiträge: 340
Registriert: Fr 10. Okt 2014, 16:31
Has thanked: 40 times
Been thanked: 80 times

Re: Unvollständige Ausgabe ggf. Umsetzung der Heat Bed Matrix

Beitrag von RF1000 »

RFrank hat geschrieben: Wie man sieht, fehlt eine Reihe und Spalte, durch das einfache dublizieren von Werten und die nicht benutzten Werte geht die notwendige Genauigkeit verloren.
Korrekt. Wir werden das in der nächsten Version der Firmware korrigieren.
RFrank hat geschrieben: Bei meiner Testerei habe ich jetzt wenigstens den Fehler isoliert, der mir soviel Stress macht, betrifft alle die Z-Schalter im Kreisbetrieb fahren.
Was genau meinst du damit?


mfG
RF1000
Antworten

Zurück zu „Firmware / Tweaks“