mercoledì 14 maggio 2025

Test su pacco batterie per laptop - Sony (VGP-BPS26A)

 Iniziamo...

Un pacco batterie che funzionava ancora egregiamente (durava almeno un paio di ore disegnando con kicad e con una marea di pdf aperti) all'improvviso cede di schianto, il software di gestione mi segnala che è degradato e deve essere cambiato, da quel momento l'indicatore segna 0% e non è mai più andato in ricarica.

Ok, ne prendo uno nuovo e ciao.
Troppo facile così.

Smonto il pacco e verifico le batterie (SAMSUNG ICR18650-30A) tutte a 3.85 volt, il conto è semplice, sono tre coppie di batterie che formano le tre celle, 3,85x3=11,55, il pacco dovrebbe funzionare, per verificare ho anche collegato un carico elettronico su B+ e B- e reggevano alla grande, anche a 2 ampere di scarica.
Deve essere il controller, ma come ci parlo?
Cerco risposte su google ma trovo solo hardware e programmi a pagamento, anche molto costosi, non mi conviene, faccio altro di mestiere.
Non mi do per vinto, ripulisco il chip, probabile controller, dal silicone che lo ricopriva e trovo un codice "
R2J240-10F020", cerco un datasheet ma niente, cerco ancora e trovo un blog Karosium, lo leggo e decido di provare. 

Ricordo di avere in qualche cassetto una board FX2LP descritta nel blog Karosium, scarico i sorgenti* del software che Viktor (il proprietario del blog) ha scritto brillantemente e provo a compilarli, funziona tutto.

Collego la board al controller (1 Negativo; 4 Clock; 5 Data) provo a leggere con "smbusb_sbsreport" e boom:

SMBusb Firmware Version: 1.0.1
-------------------------------------------------
Manufacturer Name:          SONY Corp.
Device Name:                VGP-BPS26A
Device Chemistry:           LION
Serial Number:              1587
Manufacture Date:           2012.04.19

Manufacturer Access:        1fef
Remaining Capacity Alarm:   632 mAh(/10mWh)
Remaining Time Alarm:       10 min
Battery Mode:               8001
At Rate:                    0 mAh(/10mWh)
At Rate Time To Full:       65535 min
At Rate Time To Empty:      65535 min
At Rate OK:                 1
Temperature:                29.75 degC
Voltage:                    11433 mV
Current:                    0 mA
Average Current:            0 mA
Max Error:                  0 %
Relative State Of Charge    0 %
Absolute State Of Charge    0 %
Remaining Capacity:         0 mAh(/10mWh)
Full Charge Capacity:       945 mAh(/10mWh)
Run Time To Empty:          65535 min
Average Time To Empty:      65535 min
Average Time To Full:       65535 min
Charging Current:           0 mA
Charging Voltage:           12930 mV
Battery Status:             0280
Cycle Count:                234
Design Capacity:            6327 mAh(/10mWh)
Design Voltage:             11100 mV
Specification Info:         0031
Manufacturer Data: 06 25 23

Provo a mandare il chip in modalità "boot", niente da fare.
Provo e riprovo e trovo la procedura, portare bassi (possibilmente con una resistenza da almeno 1K) due piedini del chip, il 12-reset e il 9-boot, lasciare il reset con il boot ancora basso per qualche secondo ed ecco il chip in "boot mode".
Scarico le parti di codice come descritto da Viktor e qui mi fermo, è tardi e domani devo lavorare...