Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Marlin 2.0 + RADDS 1.5 = Eeprom Error

geschrieben von hansilein 
Marlin 2.0 + RADDS 1.5 = Eeprom Error
02. February 2019 16:47
Hallo zusammen,

ich wollte vor kurzem von Marlin4Due auf Marlin 2.0 upgraden. Also habe ich mir den letzten Stand geladen, konfiguriert und den Due damit geflasht.

Es hat auch alles soweit fuktioniert... Ich konnte die Achsen bewegen/homen, Servo-Kontrolle ok, Display ok, SD-Card ok, Thermistoren, End-Stops... alles war in Ordnung und funktionsfähig.

Das einzige Problem ist, dass der Eeprom-Speicher weder gelesen noch beschrieben werden kann.

Sobald man versucht etwas zu speichern, fliegen einem die Fehler um die Ohren und die ganze Sache endet mit einem Watchdog Reset...

So sieht die Ausgabe aus:

Connecting...
start
Printer is now online.
echo: PowerUp
Marlin bugfix-2.0.x
echo: Last Updated: 2018-01-20 | Author: (none, default config)
echo:Compiled: Feb 2 2019
echo: Free Memory: 86896 PlannerBufferBytes: 1344
echo:EEPROM version mismatch (EEPROM=V20 Marlin=V64)
echo:Hardcoded Default Settings Loaded
m502
SENDING:M502
echo:Hardcoded Default Settings Loaded
m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field esteppers mismatch.
[ERROR] Error:Field esteppers mismatch.
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!

Ich habe schon so einiges probiert... Alle möglichen Lösungsvorschläge von vergleichbaren oder ähnlichen Problemen:

  • Repetier flashen, M502 + M500 ausführen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
  • Marlin4Due mit manipulierter Eeprom-Version ("V64", wie Marlin2.0) flashen, M502 + M500 ausführen. Marlin 2.0 flashen, M502 + M500 ausführen. Keine Besserung.
  • Spezielles Arduino-Sketch flashen, I2C-Eeprom-Chip vollständig löschen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
  • Minimal-Konfiguration (nur Board-Config + Eeprom Aktivierung) von Marlin 2.0 flashen, um eventuelle Konfiguerationsfehler ausschließen zu können. Keine Besserung.

So langsam weiß ich nicht mehr weiter... Ich habe auch schon eine Fehlermeldung im Github-Repo von Marlin 2.0 platziert... Mal schauen, was sich dort ergibt.

Gleichzeitig möchte ich aber auch mal in die sympathische Runde hier im Forum fragen... Vielleicht kennt jemand von euch dieses Problem.

Ich bin dankbar für jeden Tipp.

VG
hansi
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
03. February 2019 02:34
[github.com]

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
03. February 2019 11:40
Diesen Thread hatte ich auch schon gefunden, musste dann aber feststellen, dass das nicht mein Problem sein kann...

Der dort besprochene Fix ist bereits Bestandteil des aktuellen Entwicklungsstandes.

Trotzdem vielen Dank für den Hinweis thumbs up
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
05. February 2019 11:23
Keine Ideen oder Vorschläge mehr?

Schade... Der Issue-Thread, den ich geöffnet habe, erfährt leider auch keine Aufmerksamkeit sad smiley
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
05. February 2019 13:20
Laut Deiner Fehlermeldung versagt der FIELD_TEST bei esteppers, dies ist das 1. Feld, bei dem er durchgeführt wird.
Meiner Meinung nach enthält das Makro einen Fehler (!= statt ==), ich bin mir aber nicht sicher.
Zum Testen könntest Du DEBUG_EEPROM_READWRITE mal deaktivieren.

configuration_store.cpp Zeile 436:
#if ENABLED(DEBUG_EEPROM_READWRITE)
    #define _FIELD_TEST(FIELD) \
      EEPROM_ASSERT( \
        eeprom_error || eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET, \
        "Field " STRINGIFY(FIELD) " mismatch." \
      )
  #else
    #define _FIELD_TEST(FIELD) NOOP
#endif
Herzl. Grüße

1-mal bearbeitet. Zuletzt am 05.02.19 13:21.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
05. February 2019 16:06
Zunächst einmal möchte ich Dir für Deine Hilfe und Mühe danken, wirklich sehr nett von Dir smileys with beer
Dein kompetenter Rat ist gern gesehen thumbs up


Mit deaktiviertem DEBUG_EEPROM_READWRITE erhalte ich folgende Log-Ausgabe:

Connecting...
start
Printer is now online.
echo: PowerUp
Marlin bugfix-2.0.x
echo: Last Updated: 2018-01-20 | Author: (none, default config)
echo:Compiled: Feb 5 2019
echo: Free Memory: 86896 PlannerBufferBytes: 1344
Error:EEPROM datasize error.
[ERROR] Error:EEPROM datasize error.

echo:Index: 519 Size: 591
echo:Hardcoded Default Settings Loaded
>>> m502
SENDING:M502
echo:Hardcoded Default Settings Loaded
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo: Settings Stored (422 bytes; crc 42507)
Error:EEPROM datasize error.
[ERROR] Error:EEPROM datasize error.

Das klingt ja schon einmal nach einem kleinen Fortschritt spinning smiley sticking its tongue out
Anscheinend konnte ein kleiner Teil gespeichert werden...

Jetzt bleibt die Frage, warum die restlichen Felder nicht abgespeichert werden konnten.

Sollte ich den I2C-Eeprom Chip nochmal per separatem Arduino-Sketch löschen?
Oder wie in vielen Issues beschrieben, erst eine andere Firmware flashen und damit den Eeprom-Chip überschreiben...

VG
hansi

2-mal bearbeitet. Zuletzt am 05.02.19 16:08.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
06. February 2019 06:40
Probier doch mal spaßeshalber das (mit aktiviertem DEBUG_EEPROM_READWRITE)
#if ENABLED(DEBUG_EEPROM_READWRITE)
    #define _FIELD_TEST(FIELD) \
      EEPROM_ASSERT( \
        (!eeprom_error) && (eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET), \
        "Field " STRINGIFY(FIELD) " mismatch." \
      )
  #else
    #define _FIELD_TEST(FIELD) NOOP
#endif
Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
06. February 2019 13:51
Hier das Ergebnis:



start
Printer is now online.
echo: PowerUp
Marlin bugfix-2.0.x
echo: Last Updated: 2018-01-20 | Author: (none, default config)
echo:Compiled: Feb 6 2019
echo: Free Memory: 86896 PlannerBufferBytes: 1344
echo:EEPROM version mismatch (EEPROM=ERR Marlin=V64)
echo:Hardcoded Default Settings Loaded
>>> m502
SENDING:M502
echo:Hardcoded Default Settings Loaded
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
Error:Field planner_leveling_active mismatch.
[ERROR] Error:Field planner_leveling_active mismatch.

Error:Field servo_angles mismatch.
[ERROR] Error:Field servo_angles mismatch.

echo:Error writing to EEPROM!
Error:Field ui_preheat_hotend_temp mismatch.
[ERROR] Error:Field ui_preheat_hotend_temp mismatch.

Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
Error:Field lpq_len mismatch.
[ERROR] Error:Field lpq_len mismatch.

Error:Field bedPID mismatch.
[ERROR] Error:Field bedPID mismatch.

echo:Error writing to EEPROM!
Error:Field lcd_contrast mismatch.
[ERROR] Error:Field lcd_contrast mismatch.

Error:Field recovery_enabled mismatch.
[ERROR] Error:Field recovery_enabled mismatch.

Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
Error:Field parser_volumetric_enabled mismatch.
[ERROR] Error:Field parser_volumetric_enabled mismatch.

echo:Error writing to EEPROM!
Error:Field tmc_stepper_current mismatch.
[ERROR] Error:Field tmc_stepper_current mismatch.

Error:Field tmc_hybrid_threshold mismatch.
[ERROR] Error:Field tmc_hybrid_threshold mismatch.

echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

Error:Field planner_extruder_advance_K mismatch.
[ERROR] Error:Field planner_extruder_advance_K mismatch.

Error:Field motor_current_setting mismatch.
[ERROR] Error:Field motor_current_setting mismatch.

Error:Field coordinate_system mismatch.
[ERROR] Error:Field coordinate_system mismatch.

Error:Field planner_skew_factor mismatch.
[ERROR] Error:Field planner_skew_factor mismatch.

Error:Field fc_settings mismatch.
[ERROR] Error:Field fc_settings mismatch.

echo:Error writing to EEPROM!
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
06. February 2019 15:09
Ich hatte gehofft, daß man durch Abzählen den Fehler besser eingrenzen kann, scheint
aber nicht so einfach zu sein. Eigenartigerweise hat er jetzt die Version korrekt geschrieben (ERR).
Mach die Änderung des Makros aber auf jeden Fall rückgängig.
Was kommt denn bei M504?

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
06. February 2019 15:37
M504 liefert mir folgendes:

echo:EEPROM version mismatch (EEPROM=ERR Marlin=V64)

Alles sehr merkwürdig...
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
07. February 2019 06:22
Zumindest scheint der Fehler zwischen Zeile 488 und 620 aufzutreten.
Da nur die geänderten Bytes geschrieben werden, ist die Stelle so einfach nicht zu finden.
Ich würde die einzelnen EEPROM_WRITE-Befehle durch EEPROM_SKIP ersetzen und
das ganze so Stück für Stück durchprobieren.

Herzl. Grüße

Ich habe planner_settings_t im Verdacht (planner.h Zeile 166).
Hier könnte sizeof() ggf. ein falsches Ergebnis liefern.

1-mal bearbeitet. Zuletzt am 07.02.19 07:05.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
07. February 2019 18:25
Ich werde das gleich morgen (bzw. heute) mal Schritt für Schritt testen...
Der heutige (bzw. gestrige) war einfach zu lang. Ich hasse diese Tage
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
08. February 2019 16:11
echo:EEPROM version mismatch (EEPROM=ERR Marlin=V64)

[github.com]

M502
M500

das sollte aber eigentlich klar sein smiling smiley
Du musst erstmal alles zurücksetzen und eeprom leeren


Commercium ----> Ramps, RADDS, e3d-Hotends und Filament kauft man hier.. und neu auch Schrauben,Muttern und Unterlegscheiben
Probleme mit dem e3d und bei mir gekauft? Schickt es ein, ich teste es für euch ob es wirklich defekt ist smiling smiley
Print Quality Troubleshooting Guide hier lang..
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 07:39
Vielen Dank für Deinen Hinweis, aber M502 + M500 führe ich immer aus, wenn ich die Firmware neu flashe...

Den beschriebenen Lösungsvorschlag aus dem von Dir verlinkten Issue-Thread habe ich schon versucht.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 07:43
Quote
hansilein
Ich habe schon so einiges probiert... Alle möglichen Lösungsvorschläge von vergleichbaren oder ähnlichen Problemen:

Repetier flashen, M502 + M500 ausführen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
Marlin4Due mit manipulierter Eeprom-Version ("V64", wie Marlin2.0) flashen, M502 + M500 ausführen. Marlin 2.0 flashen, M502 + M500 ausführen. Keine Besserung.
Spezielles Arduino-Sketch flashen, I2C-Eeprom-Chip vollständig löschen. Und wieder Marlin 2.0 flashen und M502 + M500 ausführen. Keine Besserung.
Minimal-Konfiguration (nur Board-Config + Eeprom Aktivierung) von Marlin 2.0 flashen, um eventuelle Konfiguerationsfehler ausschließen zu können. Keine Besserung.


So langsam weiß ich nicht mehr weiter... Ich habe auch schon eine Fehlermeldung im Github-Repo von Marlin 2.0 platziert... Mal schauen, was sich dort ergibt.

Und das sind nicht mal alle Versuche....

Leider hat sich im Issue-Thread bis heute niemand zu Wort gemeldet. Schade.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 08:25
Als ersten Versuch habe ich fast alle "EEPROM_WRITE" Befehle durch "_SKIP" ersetzt.
Die einzige Ausnahme war die Version... Ich konnte die Version dann auch abspeichern, aber nicht mehr auslesen.

Das ist die Log-Ausgabe:

Connecting...
start
Printer is now online.
echotongue sticking out smileyowerUp
Marlin bugfix-2.0.x
echo: Last Updated: 2018-01-20 | Author: (none, default config)
echo:Compiled: Feb 9 2019
echo: Free Memory: 86912 PlannerBufferBytes: 1344
Error:EEPROM CRC mismatch - (stored) 0 != 29996 (calculated)!
[ERROR] Error:EEPROM CRC mismatch - (stored) 0 != 29996 (calculated)!

echo:Hardcoded Default Settings Loaded
>>> m504
SENDING:M504
Error:EEPROM CRC mismatch - (stored) 0 != 29996 (calculated)!
[ERROR] Error:EEPROM CRC mismatch - (stored) 0 != 29996 (calculated)!

>>> m503
SENDING:M503
echo: G21 ; Units in mm (mm)
echo:Filament settings: Disabled
echo: M200 D1.75
echo: M200 D0
echoconfused smileyteps per unit:
echo: M92 X80.00 Y80.00 Z4000.00 E500.00
echo:Maximum feedrates (units/s):
echo: M203 X300.00 Y300.00 Z5.00 E25.00
echo:Maximum Acceleration (units/s2):
echo: M201 X3000.00 Y3000.00 Z100.00 E10000.00
echo:Acceleration (units/s2): P R T
echo: M204 P3000.00 R3000.00 T3000.00
echo:Advanced: B S T X Y Z E
echo: M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
echo:Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echotongue sticking out smileyID settings:
echo: M301 P30.08 I1.88 D120.55


Anschließend habe ich meine Änderungen rückgängig gemacht, um zu sehen, ob ich jetzt alles speichern kann. Das war aber leider nicht möglich.
m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field esteppers mismatch.
[ERROR] Error:Field esteppers mismatch.
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!

Jetzt werde ich von oben nach unten ein Feld nach dem anderen "skippen"... Und jedes Mal neu flashen eye rolling smiley
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 08:40
Mir ist bei diesen ganzen Aktionen ein merkwürdiges Verhalten aufgefallen, das ich mir nicht erklären kann.
Ich habe nochmal alle WRITE Befehle aktiviert und einfach mal ganz oft M500 ausgeführt...
Die Errors wurden weniger bis ich sogar einmal erfolgreich speichern konnte. Dann war plötzlich wieder alles beim alten.

Hier die Log-Ausgaben zu diesem verrückten Verhalten:

Connecting...
start
Printer is now online.
echotongue sticking out smileyowerUp
Marlin bugfix-2.0.x
echo: Last Updated: 2018-01-20 | Author: (none, default config)
echo:Compiled: Feb 9 2019
echo: Free Memory: 86896 PlannerBufferBytes: 1344
echo:EEPROM version mismatch (EEPROM=ERR Marlin=V64)
echo:Hardcoded Default Settings Loaded
>>> m501
SENDING:M501
echo:EEPROM version mismatch (EEPROM=ERR Marlin=V64)
echo:Hardcoded Default Settings Loaded
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field hotendPID mismatch.
[ERROR] Error:Field hotendPID mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field fwretract_settings mismatch.
[ERROR] Error:Field fwretract_settings mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field parser_volumetric_enabled mismatch.
[ERROR] Error:Field parser_volumetric_enabled mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field parser_volumetric_enabled mismatch.
[ERROR] Error:Field parser_volumetric_enabled mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field tmc_stealth_enabled mismatch.
[ERROR] Error:Field tmc_stealth_enabled mismatch.

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echoconfused smileyettings Stored (591 bytes; crc 34250)


>>> m500
SENDING:M500
echoconfused smileyettings Stored (591 bytes; crc 34250)
>>> m501
SENDING:M501
echo:V64 stored settings retrieved (591 bytes; crc 34250)

echo: G21 ; Units in mm (mm)
echo:Filament settings: Disabled
echo: M200 D1.75
echo: M200 D0
echoconfused smileyteps per unit:
echo: M92 X80.00 Y80.00 Z4000.00 E500.00
echo:Maximum feedrates (units/s):
echo: M203 X300.00 Y300.00 Z5.00 E25.00
echo:Maximum Acceleration (units/s2):
echo: M201 X3000.00 Y3000.00 Z100.00 E10000.00
echo:Acceleration (units/s2): P R T
echo: M204 P3000.00 R3000.00 T3000.00
echo:Advanced: B S T X Y Z E
echo: M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
echo:Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echotongue sticking out smileyID settings:
echo: M301 P30.08 I1.88 D120.55
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echoconfused smileyettings Stored (591 bytes; crc 34250)
>>> m501
SENDING:M501
echo:EEPROM version mismatch (EEPROM=ʅR Marlin=V64)
echo:Hardcoded Default Settings Loaded
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field esteppers mismatch.
[ERROR] Error:Field esteppers mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field home_offset mismatch.
[ERROR] Error:Field home_offset mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field home_offset mismatch.
[ERROR] Error:Field home_offset mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
Error:Field planner_leveling_active mismatch.
[ERROR] Error:Field planner_leveling_active mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
>>> m500
SENDING:M500
echo:Error writing to EEPROM!
Error:Field planner_leveling_active mismatch.
[ERROR] Error:Field planner_leveling_active mismatch.

echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 10:47
Das muss wohl etwas RADDS-spezifisches sein.
Du könntest mal die Bedingung testweise aufheben:
persistent_store_eeprom.cpp Zeile 53
    // EEPROM has only ~100,000 write cycles,
    // so only write bytes that have changed!
    if (v != eeprom_read_byte(p)) {
      eeprom_write_byte(p, v);

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
09. February 2019 11:01
Es wird weniger geschrieben.
Jetzt nur noch zwischen 15 und 23 bytes.

Die Liste der Meldung "echo:Error writing to EEPROM!" wurde aber deutlich länger als beim letzten Versuch.
Ich habe das nur gekürzt, damit der Thread nicht ganz so voll gemüllt wird smiling smiley

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
[....]
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo:Error writing to EEPROM!
echo: Settings Stored (16 bytes; crc 15467)
Error:EEPROM datasize error.
[ERROR] Error:EEPROM datasize error.

1-mal bearbeitet. Zuletzt am 09.02.19 11:04.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
10. February 2019 05:12
Was mir dazu jetzt noch einfällt, so ziemlich als letzter Versuch:
Ändere den M500 Befehl so ab, daß in jedem Fall die Version und die Daten
des erfolgreichen Versuchs geschrieben werden
echo:V64 stored settings retrieved (591 bytes; crc 34250)
und teste dann mit M501, was tatsächlich im Eeprom steht.

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
10. February 2019 07:24
Ich habe die Funktion dahingehend angepasst... Aber der Speicher lässt sich nicht mehr auslesen, M501 liefert nur "datasize error"s.
Die Anpassungen habe ich wieder zurück gedreht und die Datei ist wieder im original Zustand.

Ich konnte nur ein einziges Mal vollständig speichern, danach nicht mehr, da sind mir wieder die Fehler um die Ohren geflogen.
Bei diesem einen erfolgreichen Versuch war die Log-Ausgabe wie folgt:

>>> m500
SENDING:M500
echo: settings Stored (591 bytes; crc 34250)
>>> m501
SENDING:M501
echo:V64 stored settings retrieved (591 bytes; crc 34250)
echo: G21 ; Units in mm (mm)
echo:Filament settings: Disabled
echo: M200 D1.75
echo: M200 D0
echo: steps per unit:
echo: M92 X80.00 Y80.00 Z4000.00 E500.00
echo:Maximum feedrates (units/s):
echo: M203 X300.00 Y300.00 Z5.00 E25.00
echo:Maximum Acceleration (units/s2):
echo: M201 X3000.00 Y3000.00 Z100.00 E10000.00
echo:Acceleration (units/s2): P R T
echo: M204 P3000.00 R3000.00 T3000.00
echo:Advanced: B S T X Y Z E
echo: M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.30 E5.00
echo:Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echo: settings:
echo: M301 P30.08 I1.88 D120.55


Aber schon beim nächsten Aufruf von M500 gab es wieder Fehler:

>>> m500
SENDING:M500
echo:Error writing to EEPROM!
echo: settings Stored (591 bytes; crc 34250)
>>> m501
SENDING:M501
echo:EEPROM version mismatch (EEPROM=ʅR Marlin=V64)
echo:Hardcoded Default Settings Loaded

Obwohl kurz vorher erfolgreich geschrieben und gelesen wurde...



Ich verstehe das nicht... Ich stehe kurz davor das Board auszutauschen angry smiley
Irgendein Board mit einem LPC1768. Die brauchen kein Eeprom, SD-Card oder Flash-Speicher sind auch nutzbar

1-mal bearbeitet. Zuletzt am 10.02.19 07:25.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
11. February 2019 11:24
Noch ein Gedanke: in I2cEeprom.cpp das Ergebnis von Wire.endTransmission() abfragen und ggf. ausgeben.

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
12. February 2019 12:14
Hast du eeprom mal ganz abgeschaltet?
Hochladen, und dann wieder anschalten?

Marlin V2.0 hat noch viele Ecken die nicht rund sind.


Commercium ----> Ramps, RADDS, e3d-Hotends und Filament kauft man hier.. und neu auch Schrauben,Muttern und Unterlegscheiben
Probleme mit dem e3d und bei mir gekauft? Schickt es ein, ich teste es für euch ob es wirklich defekt ist smiling smiley
Print Quality Troubleshooting Guide hier lang..
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
13. February 2019 04:38
Vielen Dank für Eure Ideen.

Ich werde das entweder heute oder morgen mal testen...

Noch habe ich nicht aufgegeben smiling smiley
Wenn man so kompetente Berater an seiner Seite hat, ist Kapitulation keine Option smileys with beer
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
14. February 2019 07:10
Ich habe veilleicht was gefunden:
Klassendeklaration in persistent_store_api.h Zeile 33
static bool read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing=true);
Deklaration in persistent_store_eeprom.cpp Zeile 67
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
  do {
    uint8_t c = eeprom_read_byte((uint8_t*)pos);
if (writing) *value = c;
...
Das Lesen ist so abhängig von validating in configuration_store.cpp. Ich würde mal testweise die Auskommentierung entfernen.

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
14. February 2019 17:24
Hallo Ihr Beiden,

ich habe Eure Vorschläge soweit es mir möglich war getestet...

@Le-Seaw: Dein Lösungsvorschlag hat leider nicht funktioniert, trotzdem danke.

@AlterBastler:
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing = true)

Weil die Änderung einen Fehler beim Kompilieren verursacht:

sketch\src\HAL\HAL_DUE\persistent_store_eeprom.cpp:67:112: error: default argument given for parameter 5 of 'static bool PersistentStore::read_data(int&, uint8_t*, size_t, uint16_t*, bool)' [-fpermissive]

bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing = true) {

^

In file included from sketch\src\HAL\HAL_DUE\persistent_store_eeprom.cpp:30:0:

sketch\src\HAL\HAL_DUE\../shared/persistent_store_api.h:33:15: error: after previous specification in 'static bool PersistentStore::read_data(int&, uint8_t*, size_t, uint16_t*, bool)' [-fpermissive]

static bool read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing=true);

^

exit status 1
Fehler beim Kompilieren für das Board Arduino Due (Programming Port).




Habe ich einfach die Anweisung angepasst... Von
if (writing) *value = c;
.... nach...
if (true) *value = c;

Das hat aber leider nichts geändert. Es werden immer noch zwischen 200 und 490 byte geschrieben... Gespickt mit etlichen Errors.
Lesen klappt überhaupt nicht.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
15. February 2019 12:42
Ja, war nur ein Gedanke. Bin in C++ nicht so fit, ist nicht meine Lieblingssprache.
Anscheinend werden Default-Werte aus der Klassendeklaration immer übernommen, keine Ahnung!
Hast Du die Abfrage von Wire.endTransmission() mal probiert? Ich erinnere mich an massive
Probleme mit Wire bei einem Bewegungsmelder, die ich letzten Endes nur mit einer abgespeckten Bibliothek
auf der Basis von [www.mikrocontroller.net] lösen konnte.
Ich denke ja, es ist das Zusammenspiel zwischen RADDS und der Software, zumal Marlin4Due und Repetier ja laufen.

Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
15. February 2019 12:50
Ich muss mal schauen wie ich das in Marlin einbauen kann.... Leider habe ich das selbe Problem wie Du, ich bin nicht der größte Fan von C++.
Was wahrscheinlich auch mitunter daran liegt, dass ich es nicht so gut kann grinning smiley

Ich werde heute Abend mal schauen, dass ich das irgendwie hinbekomme. Ich finde Deine Idee gut.
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
15. February 2019 14:02
Ich habe mich jetzt mal schlau gemacht:
Quote
Wikipedia
Statische Inhalte einer Klasse sind im gleichen Ausführungsobjekt

in allen Instanzen dieser Klasse gleich.
auch verfügbar, wenn keine Instanz der Klasse existiert.

Eine statische Methode wird mit dem Speicherklassenschlüsselwort static deklariert.
Dies gilt auch für statische Mitgliedsmethoden.
Im aktuellen Abschnitt ist mit statische Methode immer eine statische Mitglieds-Methode einer Klasse gemeint.
Statische Methoden können auf statische Mitglieder der Klasse, in der sie deklariert werden, zugreifen. Nicht-statische Inhalte dürfen nicht von der Methode aus verwendet werden, da die Methode auch ohne eine Instanz gültig ist. Auch wenn ein Objekt verwendet wird und über das Objekt die statische Methode aufgerufen wird, wird der statische Programmcode verwendet.
Vorschlag (ohne Gewähr auf Funktion) smiling smiley
#include "../../core/serial.h"
...
void eeprom_write_byte(uint8_t *pos, unsigned char value) {
  unsigned eeprom_address = (unsigned) pos;

  uint8_t res;

  eeprom_init();

  Wire.beginTransmission(eeprom_device_address);
  Wire.write((int)(eeprom_address >> 8));   // MSB
  Wire.write((int)(eeprom_address & 0xFF)); // LSB
  Wire.write(value);
  res = Wire.endTransmission();

  // wait for write cycle to complete
  // this could be done more efficiently with "acknowledge polling"
  delay(5);
  if (res != 0)  {
      SERIAL_ECHOLNPAIR("Wire ", res);
      SERIAL_ECHOLNPAIR("Pos  ", (uint8_t*)pos);
  }
}
Herzl. Grüße
Re: Marlin 2.0 + RADDS 1.5 = Eeprom Error
16. February 2019 16:52
Ich habe den Code angepasst. Die Ausgabe und das Verhalten bleiben unverändert.

Das Ergebnis von Wire.endTransmission(); ist wohl 0.

0:success

Leider kein "success" für mich smiling smiley
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen