So ein echter Chaostreff braucht auch einen extra (chaotischen!) Bastelkeller. Mittlerweile konnten wir eine Location auftreiben die standesgemäß in einem Keller liegt, aber mit genügend Steckdosen und koffeinhaltigen Getränken versorgt ist.
Nachdem die Location geputzt und vorbereitet wurde hatte ich schon das erste Projekt. Und zwar handelte es sich um eine Batterie für ein IBM DS3400 Storage System. Diese Batterien müssen regelmäßig (alle paar Jahre) gewechselt werden und kosten so ab 250 € das Stück. Wechselt man die Batterie nicht so wird der Schreibcache des Storagesystems deaktiviert, was natürlich absolut nicht wünschenswert ist.
Es scheint hier zwei Arten zu geben wie das Storage erkennt ob eine Batterie gewechselt werden muss. Und zwar entweder mit einem regelmäßigen Lerncyclus (Cache deaktivieren, Batterie komplett entladen, Batterie komplett vollladen, Cache aktivieren) oder aber mit einer Automatik die wohl das Alter der Batterie bestimmt.
Bei diesen Batterien scheint aber eine andere Technik zum Einsatz zu kommen. Außerdem wurde ich neugierig da das Storage-System einem das Herstelldatum der Batterie anzeigen kann. Und wo eine Anzeige ist müssen die Daten auch irgendwo gespeichert werden!
Ich habe also die Platine mal etwas genauer angesehen, und neben einem Hochleistungsentladewiderstand und einigem weiteren Hühnerfutter fand sich tatsächlich ein Chip mit der Beschriftung „PCA9500“. Dem Datenblatt nach ist das ein 8-Bit I/O-Expander der ein 2-kbit-EEPROM beinhaltet. Na mal sehen was da gespeichert ist.
Ein bisschen durchpiepsen mit dem Multimeter führte zu den richtigen Anschlüssen von VCC, GND, SCL und SDA:
Ich wollte nun eigentlich mit einem Arduino mit dem Chip sprechen, aber im Datenblatt stand unter „Absolute Maximum Ratings“ nur 3.8 V – also hätte ein 5V Arduino wohl eher ein Barbeque verursacht.
Zum Glück hatte Bernd einen Raspberry Pi rumfliegen – den wir erstmal nicht übers Netzwerk erreichen konnten. Ein USB zu seriell Kabel führte hier zum Erfolg und die Konsole des Pis begrüßte uns.
Mittels i2cdetect konnten wir tatächlich den Chip mit der Adresse 0x20 und 0x50 finden. Wobei 0x20 der IO-Expander ist (0b00100000) und 0x50 das EEPROM (0b01010000). Die Adressen stehen freundlicherweise auch im Datenblatt (man muss hier wegen dem R/W-Bit um eines nach rechts shiften). Die Hardware Programmable Pins (das sind die Widerstände links oben) liegen alle auf GND.
Ein kurzes i2cdump später hatten wir die Daten:
Leider funktionierte das schreiben des Herstelldatums (von 2011 auf 2016) nicht auf Anhieb. Doch das Datenblatt half auch hier weiter: Pin 13 ist der Write-Enable Pin. Er liegt normalerweise auf VCC und muss zum schreiben auf GND gezogen werden. Netterweise ist da relativ direkt daneben ein großes goldenes Pad damit man da bequem rankommt – schätzungsweise wird mit diesem in der Fabrik der Schreibschutz einmalig deaktiviert. Rausgeführt ist der Pin nicht auf den Connector denn das Storage soll die Daten nicht ändern.
Wir aber schon 🙂
Wenn man jetzt noch ein neues Batterie-Pack dranklemmt wäre der manuelle refurbish fertig. Und schätzungsweise 200 € hat man auch noch gespart.
Leider traue ich mich nicht dass Ding jetzt auch wirklich in einem aktiv laufenden Storage zu testen…
Im weiteren Verlauf des Abends kam dann noch endlich der lang ersehnte 3D Drucker an.
Nach erstem großen Staunen und interessierten Blicken wollten wir ihn natürlich auch gleich ausprobieren. Also kurz einen Zylinder entworfen, in die Software des 3D-Druckers geworfen …
… und los geht’s:
Und siehe da, der 3D-Drucker druckt unseren Zylinder 🙂Für den ersten Versuch doch schon mal ganz gut. Eventuell sollten wir den 3D-Drucker mal noch neu kalibrieren nach dem Transport oder uns allgemein etwas genauer damit auseinandersetzen 😀