1.33. ERROR: Z COMPENSATION INVALID MATRIX
-
- Gelegenheitsdrucker
- Beiträge: 15
- Registriert: Mo 1. Feb 2016, 16:23
- Wohnort: Lienz
- Has thanked: 6 times
1.33. ERROR: Z COMPENSATION INVALID MATRIX
Hallo,
habe Heute zum ersten Mal die Firmware upgedatet und zwar auf1.33. kenne mich aber absolut nicht mehr aus, das Menü ist irgendwie nicht mehr das selbe.
Es gibt keinen Heatbed Scan mehr und sobald ich was Drucken möchte erscheint folgende Fehlermeldung:
ERROR: Z COMPENSATION INVALID MATRIX
Was kann ich dagegen tun ?
grüße
habe Heute zum ersten Mal die Firmware upgedatet und zwar auf1.33. kenne mich aber absolut nicht mehr aus, das Menü ist irgendwie nicht mehr das selbe.
Es gibt keinen Heatbed Scan mehr und sobald ich was Drucken möchte erscheint folgende Fehlermeldung:
ERROR: Z COMPENSATION INVALID MATRIX
Was kann ich dagegen tun ?
grüße
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Der Heat-Bed Scan ist unter
Configuration -> Z Calibration
- Scan
-> ist das alte Scan.
- Scan PLA
- Scan ABS
-> heizt automatisch auf eine PLA-ähnliche Temperatur vor. Man darf sich hier nicht von der gefühlt ewig langen Wartezeit verwirren lassen. Der lässt sehr viel länger "Heating..." anzeigen und wartet, sodass sich die Wärme im Heat-Bed gut verteilt. Das dauert glaub an die 10 Minuten.
(Und der stürzt nicht dabei ab )
Beim Scan hatte der bei mir auch schon "Scan Aborted" angezeigt. Und dann weider nicht. Ich weiß hier nicht, was ich da geändert hatte, aber das kann Zufall gewesen sein. Ich musste in dem Fall aber nicht den Extruder zerlegen und neu zusammenschrauben...
LG
Configuration -> Z Calibration
- Scan
-> ist das alte Scan.
- Scan PLA
- Scan ABS
-> heizt automatisch auf eine PLA-ähnliche Temperatur vor. Man darf sich hier nicht von der gefühlt ewig langen Wartezeit verwirren lassen. Der lässt sehr viel länger "Heating..." anzeigen und wartet, sodass sich die Wärme im Heat-Bed gut verteilt. Das dauert glaub an die 10 Minuten.
(Und der stürzt nicht dabei ab )
Beim Scan hatte der bei mir auch schon "Scan Aborted" angezeigt. Und dann weider nicht. Ich weiß hier nicht, was ich da geändert hatte, aber das kann Zufall gewesen sein. Ich musste in dem Fall aber nicht den Extruder zerlegen und neu zusammenschrauben...
LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
- rf1k_mjh11
- Developer
- Beiträge: 2096
- Registriert: Di 6. Jan 2015, 19:44
- Wohnort: Autriche
- Has thanked: 276 times
- Been thanked: 557 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
blindy,
Ergänzend dazu:
Die von dir beobachtete Fehlermeldung ist eine Folge einer 'Neuordnung' der Matrix. Der Firmware fehlt jetzt eine Spalte der Daten. Bei älteren FW-Versionen hatten die HBS-Daten (Matrix) eine Spalte weniger (glaube ich). Die Meldung kommt, weil die FW diese neu hinzugekommene Datenspalte nicht findet.
Keine Sorge - nach dem nächsten erfolgreichen HBS stimmt die Matrix wieder und das Problem ist Geschichte.
mjh11
Ergänzend dazu:
Die von dir beobachtete Fehlermeldung ist eine Folge einer 'Neuordnung' der Matrix. Der Firmware fehlt jetzt eine Spalte der Daten. Bei älteren FW-Versionen hatten die HBS-Daten (Matrix) eine Spalte weniger (glaube ich). Die Meldung kommt, weil die FW diese neu hinzugekommene Datenspalte nicht findet.
Keine Sorge - nach dem nächsten erfolgreichen HBS stimmt die Matrix wieder und das Problem ist Geschichte.
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.
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.
-
- Gelegenheitsdrucker
- Beiträge: 15
- Registriert: Mo 1. Feb 2016, 16:23
- Wohnort: Lienz
- Has thanked: 6 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Vielen Dank
Jedoch wenn ich einen HBS mache bricht dieser nach ca. 20 min ab, egal ob Scan ABS oder normaler Scan
Der das Display zeigt mit dann Scan aborted an !
Jedoch wenn ich einen HBS mache bricht dieser nach ca. 20 min ab, egal ob Scan ABS oder normaler Scan
Der das Display zeigt mit dann Scan aborted an !
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Was macht der Drucker gerade, wenn er abbricht?
Und...
- Bricht der immer an der exakt selben Stelle ab?
- Hast du den Scan öfter versucht? (Wie gesagt: Ich hatte das auch und bis heute keine Ahnung, warum das so war.)
- Bist du dir sicher, dass du Anfangs die 0.3mm-Position mit dem Papier oder ähnlichem so gewählt hast, dass keine Position auf deinem Heizbett höher als -0.0 ist? Man soll laut PDF-Anleitung per Sichttest den höchsten Punkt auf dem Heizbett suchen und dort die 0.3mm voreinstellen.
(Abstand Extruder/Düse überall ohne aufsetzen/schleifen)
- Was zeigen deine Digits (Aufpresskraft) im Ruhezustand an, wenn der nicht aufdrückt?
LG
Und...
- Bricht der immer an der exakt selben Stelle ab?
- Hast du den Scan öfter versucht? (Wie gesagt: Ich hatte das auch und bis heute keine Ahnung, warum das so war.)
- Bist du dir sicher, dass du Anfangs die 0.3mm-Position mit dem Papier oder ähnlichem so gewählt hast, dass keine Position auf deinem Heizbett höher als -0.0 ist? Man soll laut PDF-Anleitung per Sichttest den höchsten Punkt auf dem Heizbett suchen und dort die 0.3mm voreinstellen.
(Abstand Extruder/Düse überall ohne aufsetzen/schleifen)
- Was zeigen deine Digits (Aufpresskraft) im Ruhezustand an, wenn der nicht aufdrückt?
LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
- Zaldo
- Globaler Moderator
- Beiträge: 630
- Registriert: Do 24. Sep 2015, 10:38
- Wohnort: Raum Frankfurt
- Has thanked: 38 times
- Been thanked: 50 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Prüfe mal ob Deine Druckplatte links und rechts auf der gleichen Höhe steht, der Fehler passiert gerne wenn die beiden Kugelumlaufspindeln nicht gleich stehen (z.b. weil sich die Riemenscheibe auf einer Spindel aufgrund einer nicht ganz festen Madenschraube etwas verdreht hat.
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel
-
- Gelegenheitsdrucker
- Beiträge: 15
- Registriert: Mo 1. Feb 2016, 16:23
- Wohnort: Lienz
- Has thanked: 6 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Hallo,
ja, der Drucker bricht immer an der selben Stelle ab ( 8. Reihe 3. Zeile), mir ist aufgefallen , dass der Drucker während des Scans min 15-20x Z-Home neu angefahren ist. Jedoch haben sich die Z-Werte kaum geändert, immer zwischen -0,20 und -0,28 außer vor dem Abbruch -0,17mm!
Das ist der gefühlte 10. Scan xD.
Ja bin ich mir, der Drucker hat doch bis vor dem Update ohne gröbere Probleme funktioniert xD
Die Digits zeigen mir im kalten Zustand -850 Digits, im warmen Zustand( Scan ABS) +250 Digits und während des HBS +824 Digits an.
Die Druckplatte ist definitiv auf gleicher höhe bzw. die Abweichung von links auf rechts beträgt 0,03mm.
lg
ja, der Drucker bricht immer an der selben Stelle ab ( 8. Reihe 3. Zeile), mir ist aufgefallen , dass der Drucker während des Scans min 15-20x Z-Home neu angefahren ist. Jedoch haben sich die Z-Werte kaum geändert, immer zwischen -0,20 und -0,28 außer vor dem Abbruch -0,17mm!
Das ist der gefühlte 10. Scan xD.
Ja bin ich mir, der Drucker hat doch bis vor dem Update ohne gröbere Probleme funktioniert xD
Die Digits zeigen mir im kalten Zustand -850 Digits, im warmen Zustand( Scan ABS) +250 Digits und während des HBS +824 Digits an.
Die Druckplatte ist definitiv auf gleicher höhe bzw. die Abweichung von links auf rechts beträgt 0,03mm.
lg
- rf1k_mjh11
- Developer
- Beiträge: 2096
- Registriert: Di 6. Jan 2015, 19:44
- Wohnort: Autriche
- Has thanked: 276 times
- Been thanked: 557 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
blindy,
Achte sehr genau darauf, dass es keine ungewollte Krafteinwirkung (auf die Dehnmessstreifen) während des Scans gibt. Am besten ein kurzes Stück Filament (150mm) im Hot End belassen (beim RF2000 in beide Hot Ends) und die Andrückrollen gespannt lassen. Damit wird sichergestellt, dass die Andrückrolle (oder beim RF1000 der Kugellagerhalter) das Hot End nicht berühren kann. Das kann nämlich zu einer ungewollten Beeinflussung der DMS führen, was zum Abbruch des Abtastvorgangs führen kann. Die Firmware achtet sehr genau auf die Werte der DMS und wird leicht verwirrt.
Ich hatte einmal ein ähnlich 'unerklärliches' Verhalten, wo eine ältere Version die Beeinflussung duldete, die neuere aber nicht. (Siehe einige Posts in diesem Thread).
mjh11
Achte sehr genau darauf, dass es keine ungewollte Krafteinwirkung (auf die Dehnmessstreifen) während des Scans gibt. Am besten ein kurzes Stück Filament (150mm) im Hot End belassen (beim RF2000 in beide Hot Ends) und die Andrückrollen gespannt lassen. Damit wird sichergestellt, dass die Andrückrolle (oder beim RF1000 der Kugellagerhalter) das Hot End nicht berühren kann. Das kann nämlich zu einer ungewollten Beeinflussung der DMS führen, was zum Abbruch des Abtastvorgangs führen kann. Die Firmware achtet sehr genau auf die Werte der DMS und wird leicht verwirrt.
Ich hatte einmal ein ähnlich 'unerklärliches' Verhalten, wo eine ältere Version die Beeinflussung duldete, die neuere aber nicht. (Siehe einige Posts in diesem Thread).
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.
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.
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Ich habe aus eigenem Interesse etwas im Sourcecode der 1.33 gelesen.
g_abortZScan = 0 -> Kein Fehler.
g_abortZScan = 1 -> Abbruchbedingung erreicht.
Was dann
#define UI_TEXT_HEAT_BED_SCAN_ABORTED "Scan aborted"
auslöst.
Das passiert im Druckerbetrieb, wenn:
a) mehr Punkte in X ausgelesen werden, als die Matrix größe hat:
b) Wenn mehr Punkte in Y ausgelesen werden, als die Matrix größe hat:
c) die Ruhekraft nicht korrekt ermittelt werden kann:
a) und b) dürften per Definition nie auftreten, ausser jemand schreibt die anzahl der Punkte um.
c) bleibt übrig.
-----------------------------------------
Also gibt es mit ziemlicher Sicherheit ein Problem mit der Funktion die den Ruhe-Kraft-Mittelwert bildet.
testIdlePressure()
Bzw. darunterliegend:
readAveragePressure
Die darunterliegende Funktion readStrainGauge( ACTIVE_STRAIN_GAUGE ); erfasst einfach nur den Messwert und ist hier vermutlich uninteressant.
Diese Funktion `readAveragePressure` summiert also (g_nScanPressureReads mal) 15 mal den Kraftwert und schreibt mit, welches der kleinst und welches der größte gemessene Kraftwert war, welcher auftrat.
Die Summe der Kraftwerte ergibt den Mittelwert.
Aber dem Mittelwert wird nicht blind vertraut:
Nun wird geschaut, ob die Streuung der Ruhe-Digits, der Abstand zwischen MIN und MAX, nicht größer ist, als (g_nScanPressureTolerance) 15.
Stimmt das nicht, wird fünf weitere Male ausprobiert, ob es klappt und dann abgebrochen.
-> Scan Aborted.
Die Frage ist also:
Warum ist der Messwert in diesen knapp 250ms (15ms x 15 Messungen) nicht konstant?
(Und: Warum ist dieser ganze 5x hintereinander nicht konstant/ungültig?)
a) Vibriert irgendwas so, dass der Kraftsensor das `hört`?
b) Ist das Messsignal schlecht?
c) Stört etwas das Messsignal durch Übersprechen?
d) Existiert ein mechanisches Nachschwingen?
e) Hängt ein Lüfter mit Unwucht am Extruder?
f) ???
Wenn das Nachschwingen das Problem wäre, und nicht ein Lüfter oder ähnliches, dann:
Vor diesen Mittelungen wird immer um g_nScanIdleDelay gewartet.
Diese Variable wird mit
initialisiert.
Und es gibt dazu
M3042
Für mich sieht das so aus, als könnte ich den Wert zur Laufzeit mit diesem G-Code überschreiben und höhere Werte testen.
Oder man ändert:
auf >5.
Doch... wenn ein Test 15x15ms Zeit braucht und es 5x nicht klappt, hätte der Extruder insgesamt über 1 Sekunde nachgeschwungen + Delay zu Beginn. Also etwa 1,25s ausschwingen und noch keine Ruhe im System? Naja ...
LG
g_abortZScan = 0 -> Kein Fehler.
g_abortZScan = 1 -> Abbruchbedingung erreicht.
Was dann
#define UI_TEXT_HEAT_BED_SCAN_ABORTED "Scan aborted"
auslöst.
Das passiert im Druckerbetrieb, wenn:
a) mehr Punkte in X ausgelesen werden, als die Matrix größe hat:
Code: Alles auswählen
if( nIndexX > COMPENSATION_MATRIX_MAX_X )
{
if( Printer::debugErrors() )
{
Com::printFLN( PSTR( "scanHeatBed(): the x-dimension of the compensation matrix became too big: " ), nIndexX );
}
g_abortZScan = 1;
break;
}
Code: Alles auswählen
if( nIndexY > COMPENSATION_MATRIX_MAX_Y )
{
if( Printer::debugErrors() )
{
Com::printFLN( PSTR( "scanWorkPart(): the y-dimension of the compensation matrix became too big: " ), nIndexY );
}
g_abortZScan = 1;
break;
}
Code: Alles auswählen
// scan this point
if( testIdlePressure() )
{
// the current idle pressure is not plausible
g_abortZScan = 1;
break;
}
c) bleibt übrig.
-----------------------------------------
Also gibt es mit ziemlicher Sicherheit ein Problem mit der Funktion die den Ruhe-Kraft-Mittelwert bildet.
testIdlePressure()
Code: Alles auswählen
short testIdlePressure( void )
{
short nTempPressure;
short nTemp;
if( readAveragePressure( &nTempPressure ) )
{
// some error has occurred
if( Printer::debugErrors() )
{
Com::printFLN( PSTR( "testIdlePressure(): the pressure could not be determined" ) );
}
return -1;
}
g_nCurrentIdlePressure = nTempPressure;
return 0;
} // testIdlePressure
readAveragePressure
Code: Alles auswählen
g_nScanPressureReads = HEAT_BED_SCAN_PRESSURE_READS; //=15
g_nScanPressureReadDelay = HEAT_BED_SCAN_PRESSURE_READ_DELAY_MS; //=15
g_nScanPressureTolerance = HEAT_BED_SCAN_PRESSURE_TOLERANCE; //=15
ACTIVE_STRAIN_GAUGE //=> 0x49
Code: Alles auswählen
short readAveragePressure( short* pnAveragePressure )
{
short i;
short nTempPressure;
short nMinPressure;
short nMaxPressure;
long nPressureSum;
char nTemp;
nTemp = 0;
while( 1 )
{
// we read the strain gauge multiple times and check the variance
nPressureSum = 0;
nMinPressure = 32000;
nMaxPressure = -32000;
for( i=0; i<g_nScanPressureReads; i++)
{
#if FEATURE_WATCHDOG
HAL::pingWatchdog();
#endif // FEATURE_WATCHDOG
HAL::delayMilliseconds( g_nScanPressureReadDelay );
nTempPressure = readStrainGauge( ACTIVE_STRAIN_GAUGE );
nPressureSum += nTempPressure;
if( nTempPressure < nMinPressure ) nMinPressure = nTempPressure;
if( nTempPressure > nMaxPressure ) nMaxPressure = nTempPressure;
}
nTempPressure = (short)(nPressureSum / g_nScanPressureReads);
if( (nMaxPressure - nMinPressure) < g_nScanPressureTolerance )
{
// we have good results
*pnAveragePressure = nTempPressure;
return 0;
}
nTemp ++;
if( nTemp >= 5 )
{
// we are unable to receive stable values - do not hang here forever
if( Printer::debugErrors() )
{
Com::printF( PSTR( "readAveragePressure(): the pressure is not constant: " ), nMinPressure );
Com::printF( PSTR( " / " ), nTempPressure );
Com::printFLN( PSTR( " / " ), nMaxPressure );
}
break;
}
// wait some extra amount of time in case our results were not constant enough
HAL::delayMilliseconds( 100 );
//runStandardTasks();
Commands::checkForPeriodicalActions();
}
if( Printer::debugErrors() )
{
Com::printFLN( PSTR( "readAveragePressure(): the pressure is not plausible" ) );
}
g_abortZScan = 1;
*pnAveragePressure = 0;
return -1;
} // readAveragePressure
Diese Funktion `readAveragePressure` summiert also (g_nScanPressureReads mal) 15 mal den Kraftwert und schreibt mit, welches der kleinst und welches der größte gemessene Kraftwert war, welcher auftrat.
Die Summe der Kraftwerte ergibt den Mittelwert.
Aber dem Mittelwert wird nicht blind vertraut:
Nun wird geschaut, ob die Streuung der Ruhe-Digits, der Abstand zwischen MIN und MAX, nicht größer ist, als (g_nScanPressureTolerance) 15.
Stimmt das nicht, wird fünf weitere Male ausprobiert, ob es klappt und dann abgebrochen.
-> Scan Aborted.
Die Frage ist also:
Warum ist der Messwert in diesen knapp 250ms (15ms x 15 Messungen) nicht konstant?
(Und: Warum ist dieser ganze 5x hintereinander nicht konstant/ungültig?)
a) Vibriert irgendwas so, dass der Kraftsensor das `hört`?
b) Ist das Messsignal schlecht?
c) Stört etwas das Messsignal durch Übersprechen?
d) Existiert ein mechanisches Nachschwingen?
e) Hängt ein Lüfter mit Unwucht am Extruder?
f) ???
Wenn das Nachschwingen das Problem wäre, und nicht ein Lüfter oder ähnliches, dann:
Vor diesen Mittelungen wird immer um g_nScanIdleDelay gewartet.
Diese Variable wird mit
Code: Alles auswählen
g_nScanIdleDelay = HEAT_BED_SCAN_IDLE_DELAY_MS; //=250
Und es gibt dazu
M3042
Code: Alles auswählen
case 3042: // M3042 [S] - configure the delay (in ms) between reaching of a new x/y position and the test of the idle pressure
{
if( pCommand->hasS() )
{
// test and take over the specified value
nTemp = pCommand->S;
if( nTemp < 1 ) nTemp = 1;
if( nTemp > 10000 ) nTemp = 10000;
g_nScanIdleDelay = nTemp;
if( Printer::debugInfo() )
{
Com::printF( PSTR( "M3042: new idle delay: " ), (int)g_nScanIdleDelay );
Com::printFLN( PSTR( " [ms]" ) );
}
}
else
{
showInvalidSyntax( pCommand->M );
}
break;
}
Oder man ändert:
Code: Alles auswählen
if( nTemp >= 5 )
Doch... wenn ein Test 15x15ms Zeit braucht und es 5x nicht klappt, hätte der Extruder insgesamt über 1 Sekunde nachgeschwungen + Delay zu Beginn. Also etwa 1,25s ausschwingen und noch keine Ruhe im System? Naja ...
LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: 1.33. ERROR: Z COMPENSATION INVALID MATRIX
Kann es sein, dass das Kalibrieren ohne RF2000-Blech-Lüfterhalter funktioniert?
War dieser bisher, ist er korrekt/fest angeschraubt?
LG
War dieser bisher, ist er korrekt/fest angeschraubt?
LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?
Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.