Akku-Reverse-Engineering SMBUS-Protokoll IBM Thinkpad 240/240x/240z Suche Mainboard

sebsus

New member
Registriert
13 Mai 2024
Beiträge
2
Hallo ThinkPad-Forum,

bestimmt lese ich jetzt schon 10 Jahre still mit und komme gleich mit einem größeren Projekt:

tl;dr
- SMBUS/I2C reverse engineering
- Akku Selbstbau
- ich brauche ein Ersatz-ThinkPad 240 von 1999/2000 oder Mainboard
- Kontakt/Anregungen erwünscht :)

Akkus für alte ThinkPads(90er/Anfang 2000er) sind schon seit Jahren sehr rar geworden. Als Hobby Projekt habe ich mir das Ziel gesetzt selbst für mein IBM Thinkpad 240 einen funktionierenden Akku zu bauen. Schließt man einfach ein Netzteil an den Akku-Stecker an, quittiert die Mainboard-Firmware die Fehlermeldung, dass es sich nur mit einem offiziellen Akku booten lassen möchte.

Das Battery Management System(BMS) des Laptop-Li-Ion-Akkus redet via SMBUS mit dem Computer Mainboard und tauscht Daten aus. Dabei werden Informationen, wie der Akkufüllstand, Temperatur, etc übertragen. Am wichtigsten ist jedoch die Übertragungssequenz, die den Akku gegenüber der Mainboard-Firmware autorisiert. Das heißt, man kann nicht eine beliebige Stromquelle anschließen, sondern muss vereinfacht gesagt noch ein richtiges "Schlüsselwort" nennen. Genau diese Übertragung möchte ich abhören und nachbauen, damit ein Selbstbau-Akku (mit BMS natürlich) adaptiert werden kann.

Das Akku-Protokoll nennt sich SMBUS und basiert auf I2C. SMBUS wird in der Regel in allen Laptops verwendet. I2C ist ein Standardprotokoll, mit dem jeder Arduino umgehen kann. Mein Kenntnisstand ist, dass zwischen Akku und Mainboard nichts übermäßig kompliziertes übertragen wird. Keine Crypto-Signatur-Spielereien, schließlich konnten auch andere Drittanbieter Nachbau-Akkus herstellen, als es für die alten Modelle noch einen Markt gab. Testweise konnte ich schon Übertragungen aufzeichen, unten ist ein Foto. Dazu habe ich einfach an die SMBUS/I2C-Pins des Akku Drähte gelötet und die Messproben von meinem Logic Analyzor/Speicher Oszilloskop angeschlossen.

Diesen Bärendienst an der Community betreibe ich rein hobbymäßig zum Spaß. Das Projekt möchte ich öffentlich zugänglich machen(z.B. im ThinkPad-Wiki, auf GitHub und meiner Webseite), damit noch Generationen an Nerds alte ThinkPads am Leben erhalten können. Ich selbst studiere und werde diesen Sommer meinen Master in Luft- und Raumfahrtinformtik fertig machen. Das heißt ich kenne mich ausreichend gut mit Embedded Sofware/Elektronik aus und bringe etwas Know-How mit. Einen cheapo USB-Logic Analyzer und ein besseres Siglent Speicheroszillskop habe ich, um die Übertragung zu dekodieren(sowie genug anderes Werkzeug, das man für so ein Projekt brauch). Mein unmittelbares Ziel ist es die wichtigen Bestandteile der Kommunikation auszumachen und mit einem Arduino auf dem Bus lesen und schreiben zu können. Daraus sollte sich schnell ein Batterie-Emulator bauen lassen, der der Computerfirmware vortäuscht mit einem Akku zu reden. Vielleicht kann ich das irgendwann als Arduino Projekt/Atmel/STM32/CV32v003 oder was auch immer bereitstellen. An die elektrische Komponente eines Akkus BMS möchte ich mich nicht ranwagen. Es geht nur um die Kommunikation, die ein generischen BMS so nicht bewerkstelligen kann.

Das ganze würde ich auch für meine recht verbreiteten ThinkPad 600/600E machen. In der Annahme, dass IBM große Teile der Entwicklungsarbeit nicht doppelt gemacht hat, und Protokolle/Komponenten weiterverwendet hat, ließen sich die Erkenntnisse auf eine Vielzahl andere ThinkPads/Laptops anwenden.

Leider ist mir beim Experimentieren mein ThinkPad 240 Mainboard kaputt gegangen. Wenn jemand im hier Forum ein altes IBM Thinkpad 240(x/z) fair abzugeben hätte, noch ein Mainboard hat oder sich traut mir eins länger auszuleihen, würde ich mich freuen an dem Projekt weiterarbeiten zu können. Ich selbst wohne im Raum um Karlsruhe in der Pfalz etwa, bewege mich aber auch häufiger nach Köln/Wiesbaden/Würzburg und würde mich über Kontakt freuen :) Bestimmt findet mich man auch auf der GPN Ende Mai :)

Über Hinweise, Akku/ThinkPad-Spenden ähnliche Projekte oder andere Fortschritte, auf die ich aufbauen könnte, würde ich mich sehr freuen :)

Schöne Grüße

sebsus
Sebastian Kind

Hier eine Aufgenommene Übertragung auf dem SMBUS/I2C-Bus zwischen Akku und ThinkPad 240 Mainboard. Oben sieht man die Bits, unten die Ausgabe des Protokoll Decoders:
SMBUS_I2C_Übertragung.png


Etwas unaufgeräumter Operationstisch, auf dem mit dem Oszi und dem einem Salea Logic Analyzer Klon gemessen wurde:
dso_thinpad_240_compressed.jpg
 
Zuletzt bearbeitet:
Falls du bis zur GPN ein neues Mainboard organisiert bekommst, kann ich dir vielleicht noch ein/zwei Leute aus meinem Umfeld vermitteln, die definitiv genug Knowledge haben, dich beim Projekt des Reverse-Engineering zu unterstützen. Wobei: Auf der GPN wirst du sicherlich noch deutlich mehr Leute treffen, die dir dabei helfen können :D
 
Hi cuco,

cool, danke für deinen Beitrag! Sehr gerne lass ich mich weitervermitteln :), muss auch niemand was beitragen oder so der nicht mag

Ich schau mal, ob ich die Tage eins meiner ThinkPad 600 reaktiviert bekomme in der Hoffnung, dass es da so ähnlich funktioniert. Aber ich fänd es natürlich mega cool wenn ich das Projekt für das TP240 machen könnte, weil die viel kleiner, leichter und mobiler sind. Ich hab schon mal eine GPN nur mit nem Pentium II Laptop durchgemacht und erstaunlicherweise hat das auch ganz gut geklappt. :D Gab schon ein paar Leute die mir dann von ihrem ersten "Pentium MMX" Geschichten erzählen konnten.

Overall denke ich, dass man solche Reverse Engineering Projekte mit den Akkus eher jetzt als in 5 Jahre machen sollte. Bis some-time-in-the-future sind irgendwann alle Akkus kaputt. Ich habe mal das Gerücht gehört, dass in einigen Akkus auch Fuses drin sind, die sich bei Defekt auslösen und den Akku bricken, das wäre natürlich nicht cool wenn man irgendwann keine funktionierenden Akkus mehr hätte. Deshalb möchte ich das Projekt machen. Außerdem lernt man immer was dabei
~sebsus:)
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben