Reverse-Engineering Personenwaage

OP #4192408
Lesenswert?
• ▲
▼
Hallo,
zwecks Wififizierung einer Wage habe ich den dort eingebauten i2c-Bus 
zum Eeprom (FT24C02A) angezapft. Und siehe da bei jeder Wägung werden 
Daten übertragen. Die Werte scheinen mit der gewogenen Masse 
zusammenzuhängen, denn bei der Wägung derselben Masse werden dieselben 
Daten übertragen und bei verschiedenen Massen verschiedene Daten.

Allerdings bekomme ich keinen Kopf daran wie die Daten und die gewogene 
Masse zusammenhängen, hat jemand von euch da spontan eine Idee?

Grüße Thomas


Masse  Bytes
in kg  1  2    3   4  5    6   7   8    9   10   11   12
--------------------------------------------------------
15,2  80  8  161  21  0  161  24   2  160   15   38    0
16,3  80  8  161  21  0  161  48   5   64   30   81  128
16,8  80  8  161  21  0  161   0  10  128   60  168    0
17,9  80  8  161  21  0  161   0   1   80    7  150   96
18,1  80  8  161  21  0  161   0  10  128   60  181    0
19,2  80  8  161  21  0  161   0  42    0  243    0    0
19,5  80  8  161  21  0  161  64  21    0  121  134    0
20,6  80  8  161  21  0  161  32  10  128   60  206    0
22,2  80  8  161  21  0  161  12   1   80    7  155  192
22,7  80  8  161  21  0  161   0  42    0  243  140    0
23,3  80  8  161  21  0  161   0  42    0  243  164    0
23,8  80  8  161  21  0  161   0  42    0  243  184    0
Gast #4192477
Lesenswert?
• ▲
▼
ein EEPROM bei einer Waage kann eigentlich nur eine Korrekturtabelle (=> 
Lookup) sein, um eine Linearisierung einer "Bananenkennline" zu 
erreichen.
Was die Werte aber bedeuten, das weiß nur der Hersteller und Sherlok 
Holmes.

Zuerst müsstest du trennen, was zum EEPROM geht (Adresse) und was 
ausgelesen wird.
(Firma: matzetronics) #4192490
Lesenswert?
• ▲
▼
Dein Sniffer scheint noch nicht ganz korrekt zu lesen, denn die I²C 
Adresse des EEPROM ist ja 0xA0 und nicht 0X80. Ein 0XA1 würde daraufhin 
deuten, das aus dem EEPROM gelesen wird, ein 0XA0 auf einen 
Schreibvorgang, der ja auch bei jedem Random-Lesevorgang zuerst kommen 
muss.

Schon die zu lesende Adresse aus dem EEPROM wäre hilfreich und lässt 
evtl. Rückschlüsse auf das Wägeergbnis zu.
#4192536
Lesenswert?
• ▲
▼
Hallo Thomas

Wenn ich das richtig sehe:

22,7  80  8  161  21  0  161   0  42    0  243  140    0
23,3  80  8  161  21  0  161   0  42    0  243  164    0
23,8  80  8  161  21  0  161   0  42    0  243  184    0

22,7kg = 19,2kg + 140*25g
23,3kg = 19,2kg + 164*25g
23,8kg = 19,2kg + 184*25g

Siehe auch den 19,2kg Wert. Dort ist der Wert in der vorletzten Spalte 
0.
Für die anderen Werte sehe ich noch keinen Zusammenhang.
OP #4193695
Lesenswert?
• ▲
▼
Hallo,
danke Matthias die ersten beiden Bytes wurden in der Tat nicht richtig 
gelesen die ersten 6 Bytes lauten korrekt wie folgt:

Byte1    Byte2    Byte3    Byte4    Byte5    Byte6     Byte7..12
0xA0     0x10     0xA1     0x15     0x00     0xA1      ...
10100000 00010000 10100001 00010101 00000000 10100001  ...

WRITE    ADRESSE  READ     0x10     0x11     READ      0x12...

Was soll das bedeuten?
So wie ich das verstehe wird hier ausschließlich gelesen und das immer 
ab derselben Adresse 0x10. Dann könnten aber nicht für die Bytes 7..12 
verschiedene Daten herauskommen. Wo ist mein Denkfehler?

Dein Ansatz Hans-werner passt auch auf die anderen Werte. Offset und 
Steigung sind aber für jeden Wert von Byte 10 unterschiedlich wobei die 
Steigung immer ungefähr 1/(Byte10 * 0,1654) beträgt. Den Offset 
(f(Byte10)) kann ich aber immer noch nicht zuordnen:

Masse = f(Byte10) + Byte11 / (Byte10 * 0,1654)
(Firma: matzetronics) #4193823
Lesenswert?
• ▲
▼
Thomas K. schrieb:
> Was soll das bedeuten?
> So wie ich das verstehe wird hier ausschließlich gelesen und das immer
> ab derselben Adresse 0x10.

Sehe ich auch so, und ergibt eigentlich nur dann Sinn, wenn ab Adresse 
0x10 ein permanenter Korrekturwert gespeichert wäre.
Ich vermute aber, das dein Sniffer mit Byte 5 seine Probleme hat, wenn 
hier ein erneutes Write käme, um eine andere Random Read Adresse zu 
lesen, könnte man Byte 7 bis 12 erklären. Dazu müsste nach Byte 4 ein 
Stop kommen.
Nur im sicher zu sein: liegen A0-A2 auf Masse? Liegt WP dauerhaft auf 
Vcc oder geht dieser Pin zum Waagenprozessor?
Hat die Waage sowas wie Speicherplätze für verschiedene Benutzer?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.