WMF 800 EEPROM

Diese Seite verwendet Cookies und Google AdSense. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen und Google AdSense zur Einblendung von Werbung benutzen. Weitere Informationen

  • WMF 800 EEPROM

    Hallo!

    Dinoearl hat mir vor einiger Zeit freundlicherweise eine WMF800 als Teilespender verkauft.
    Damit habe ich dann wie schon beschrieben das P-Tasten Problem gefunden.
    Nun lachte mich aber das EEPROM so an und da es gesockelt ist, lud es zum auslesen ein.
    Also habe ich einen uP als EEPROM Leser/Schreiber/Sniffer/Emulator programmiert und mir das EEPROM angesehen.
    Zugegeben war meine Hoffnung, daß ich die Stelle finde, wo man die Service Meldung löschen kann.
    Das ist dann leider aber nicht so einfach.
    Ziemlich einfach zu finden waren dagegen die Zählerstande und anderes Grundlegendes (die Hex-Zahl ist die Speicherstelle):

    Einschaltzeit 040A
    Anzahl Einschalt? 0416
    Getr. Seit Rein.? 041E
    Trester Zähler? 0420
    ZS: intern 04EC
    ZS: total 04F4
    ZS: Espresso 04F6
    ZS: Café 04F8
    ZS: Cappuccino 04FA
    ZS: LM 04FC
    ZS: Milch 04FE
    ZS: Wasser 0500
    ZS: 2x Espresso 0502
    ZS: 2x Café 0504
    ZS: 2x Cappuccino 0506

    Um das zu finden habe ich immer die Maschine nach einem Bezug ausgeschaltet, das EEPROM ausgebaut, ausgelesen und wieder von vorne.
    Obwohl ich die entsprechenden Werkzeuge dafür habe, hätte das EEPROM das mechanisch nicht lange mitgemacht.
    Als nächstes habe ich dann die Kommunikation zwischen uP und EEPROM belauscht und herausgefunden, daß die Parameter anscheinend in großen Strukturen organisiert sind, die dann nach einer Änderung komplett gespeichert werden.
    Um die Analyse dieser Strukturen einfacher zu machen habe ich dann den uP direkt als Emulator anstelle des EEPROMS angeschlossen und unglücklicherweise ein weiteres Feature entdeckt:
    Anscheinend speichert die Maschine einen Wert im internen uP und vergleicht diesen mit dem entsprechenden im EEPROM.
    Dieser wird dann wohl bei jedem Einschalten geändert, wodurch man die EEPROMs nicht zwischen verschiedenen Maschinen austauschen kann.
    Erkennt die Maschine, daß das EEPROM ausgetauscht wurde, löscht sie es.

    Leider habe ich den Emulator nicht mit dem letzten EEPROM-Image gestartet, so daß nun auch mein EEPROM nicht mehr funktioniert. :1f620:

    Da ich aber einiges an Zeit investiert habe, wollte ich es hier dokumentieren, da es ja etwas über die Funktion der Maschine aussagt.
    Werbung
  • Userli schrieb:

    Als nächstes habe ich dann die Kommunikation zwischen uP und EEPROM belauscht und herausgefunden, daß die Parameter anscheinend in großen Strukturen organisiert sind, die dann nach einer Änderung komplett gespeichert werden.



    ...


    Anscheinend speichert die Maschine einen Wert im internen uP und vergleicht diesen mit dem entsprechenden im EEPROM.

    Dieser wird dann wohl bei jedem Einschalten geändert, wodurch man die EEPROMs nicht zwischen verschiedenen Maschinen austauschen kann.
    Erkennt die Maschine, daß das EEPROM ausgetauscht wurde, löscht sie es.

    Das, was Du da rausgefunden hast, ist doch alles schon lange bekannt. Hättest Du mal vorher gefragt (oder gesucht) wärst Du gewarnt gewesen :1f642:

    Von mir gibt es keinen Support per email!
    Und auch keine urheberrechtlich geschützte Software..
  • Aus welchem legalen Grund sollte jemand den Prozessor auslesen wollen? Macht keinen Sinn und ist auch nicht notwendig.

    Da die Platine in mehreren Maschinenmodellen von WMF eingesetzt werden kann, muss die entsprechende Firmware natürlich passend zur Maschine vor dem Einbau aufgespielt werden. Das funktioniert logischerweise (und am einfachsten) über eine serielle Schnittstelle an Bord der Platine. Firmwareupdates erfolgen auf dem gleichen Weg.

    Von mir gibt es keinen Support per email!
    Und auch keine urheberrechtlich geschützte Software..
  • Der Grund ist ganz einfach und hat nichts mit Legalität zu tun:
    Wenn der Prozessor kaputt ist, muß der Bootloader auf den neuen übertragen werden, damit die Software wieder aufgespielt werden kann.
    Dazu muß man aber den Bootloader Code auslesen.
    Um das zu verhindern, kann man einen Sicherheitscode im Prozessor eintragen. Dazu kann man einstellen, daß der Prozessor seinen Inhalt löscht, sobald jemand mit einem falschen Code ausliest.

    Soweit ich es bisher verstanden habe, könnte man ein Programm schreiben, welches den Bootloader ausliest und dieses über denselben auf der Maschine installieren. Das würde einen Sicherheitscode umgehen.
    Das ist aber deutlich mehr Arbeit, als einen Programmer anzuschließen und den Prozessor auszulesen.
    Daher interessiert mich, ob das schon einmal jemand versucht hat.
  • Ich habe es nun endlich geschafft, den Prozessor zu tauschen und die Maschine läuft wieder. Daher kann ich jetzt meine Fragen aus dem vorhergehenden Post beantworten:
    Der Bootloader ist von Segger. Deren Software erlaubt es, den Prozessor auszulesen. Man kann die Firmware dann auf den neuen Prozessor übertragen, braucht dazu allerdings ein entsprechendes Programmiergerät.
    Wenn der alte Prozessor komplett tot ist, braucht man noch die WMF Software. Bei mir war nur die Verbindung mit dem EEPROM defekt.