# Carte de la data-flash du bq40z50-R2 — pack Neato BLUEWAY (D8/D9/D10/D800)

Valeurs lues le 29 août 2026 sur un pack Neato P/N 205-0027 (jauge TI bq40z50-R2, firmware 02.11 build 0034, fabricant du pack « BLUEWAY- », S/N 4941, fabriqué le 2022-01-09), en accès FULL ACCESS. Adresses d'après le *Technical Reference Manual* TI SLUUBK0B (copie locale : `bq40z50-r2-trm-sluubk0b.pdf`). Sauvegarde brute complète : `bq40z50-df-backup-neato-blueway-20260829.txt`.

Toutes les valeurs multi-octets sont en *little endian*.

## Gas Gauging — State (0x4300…)

| Adresse | Nom | Valeur lue | Remarque |
|---|---|---|---|
| 0x4306 | Qmax Cell 1 | 2650 mAh | jamais réappris (Qmax Cycle Count = 0) |
| 0x4308 | Qmax Cell 2 | 2650 mAh | |
| 0x430A | Qmax Cell 3 | 2650 mAh | |
| 0x430C | Qmax Cell 4 | 2650 mAh | |
| 0x430E | Qmax Pack | 2650 mAh | |
| 0x4310 | Qmax Cycle Count | 0 | |
| 0x4312 | Update Status | 0x06 | Impedance Track actif, Qmax et Ra « appris » |
| 0x4340 | **Cycle Count** | **1547** (0x060B) → **0** écrit le 30/08/2026 | le compteur que l'application Neato reproche |

## Gas Gauging — Design / IT Cfg

| Adresse | Nom | Valeur lue | Défaut TI |
|---|---|---|---|
| 0x48E5 | Design Capacity mAh | 2500 mAh | 4400 |
| 0x48E7 | Design Capacity cWh | 3600 cWh | 6336 |
| 0x48E9 | Design Voltage | 14400 mV | 14400 |
| 0x48EB | Cycle Count Percentage | 90 % | 90 |
| 0x4848 | Qmax Delta | 5 % | 5 |
| 0x4849 | Qmax Upper Bound | 130 % de Design Capacity | 130 |
| 0x484A | Term Voltage (pack) | 11200 mV | 9000 |
| 0x484D | Term Voltage Delta | 300 mV | 300 |
| 0x4924 | Reserve Cap-mAh | 0 | 0 |

## Settings — Configuration

| Adresse | Nom | Valeur lue | Décodage |
|---|---|---|---|
| 0x4887 | FET Options | 0x7D | SLEEPCHG=1 (FET de charge maintenu en veille), CHGFET=1, CHGIN=1, CHGSU=1, OTFET=1, PCHG_COMM=1 |
| 0x4908 | Balancing Configuration | 0x01 | équilibrage en charge activé |
| 0x490D | Min Start Balance Delta | 30 mV | |
| 0x490E | Relax Balance Interval | 18000 s | |
| 0x4912 | Min RSOC for Balancing | 80 % | |
| 0x4A0A | **Charging Configuration** | **0x00** | aucune dégradation de charge par cycles ni par SOH (CYCLE_DEGRADE=0, SOH_DEGRADE=0) |
| 0x4A7B | Temperature Enable | 0x06 | TS2 + TS3 |
| 0x4A7C | Temperature Mode | 0x04 | |
| 0x4A7D | **DA Configuration** | **0x001F** | CC1:CC0 = 3 → **4 cellules** ; **NR=1** (pack non amovible) ; **IN_SYSTEM_SLEEP=1** ; **SLEEP=1** |

## Power — Sleep

| Adresse | Nom | Valeur lue | Défaut TI |
|---|---|---|---|
| 0x48A3 | Sleep Current | 10 mA | 10 |
| 0x48A5 | Bus Timeout | 5 s | 5 |
| 0x48AA | Voltage Time | 5 s | 5 |
| 0x48AB | Current Time | 20 s | 20 |
| 0x48AC | Wake Comparator | 0x00 | 0x00 |

Conséquence observée : dès que |courant| ≤ 10 mA, la jauge passe en SLEEP en ~30 s et `ChargingCurrent()` / `ChargingVoltage()` retombent à 0 (alors que le TRM ne prévoit ce comportement que pour SLEEPCHG = 0).

## Advanced Charge Algorithm (0x4A0B…)

| Adresse | Nom | Valeur lue |
|---|---|---|
| 0x4A0B / 0x4A0D | T1 / T2 | 0 °C / 5 °C |
| 0x4A0F / 0x4A11 | T5 / T6 | 20 °C / 30 °C |
| 0x4A13 / 0x4A15 | T3 / T4 | 50 °C / 55 °C |
| 0x4A17 | Hysteresis Temp | 1,0 °C |
| 0x4A19…0x4A3F | Voltage / Current Low-Med-High, toutes plages de température | 4200 mV / 1500 mA partout |
| 0x4A41 | Pre-Charging Current | 100 mA |
| 0x4A43 | Maintenance Charging Current | 80 mA |
| 0x4A45 | Precharge Start Voltage | 2000 mV |
| 0x4A47 / 0x4A49 / 0x4A4B | Charging Voltage Low / Med / High | 2500 / 3600 / 4000 mV |
| 0x4A4E / 0x4A4F / 0x4A50 | Charging SOC Med / High / Hysteresis | 50 % / 75 % / 1 % |
| 0x4A51 / 0x4A57 / 0x4A5D | Degrade Mode 1 / 2 / 3 — Cycle Threshold | 50 / 150 / 350 cycles (**inactifs**, cf. 0x4A0A) |
| 0x4A6D | Charge Term Taper Current | 130 mA |
| 0x4A71 | Charge Term Voltage | 75 mV |

## Protections

| Adresse | Nom | Valeur lue |
|---|---|---|
| 0x493C | CUV Threshold (sous-tension cellule) | 2700 mV, délai 1 s, réarmement 3100 mV |
| 0x4946…0x494E | COV Threshold (surtension cellule), toutes plages | 4225 mV |

## Registres SBS et commandes utiles (adresse SMBus 0x0B)

| Commande | Contenu |
|---|---|
| 0x09 / 0x0A | Voltage / Current |
| 0x0D / 0x0E | RelativeStateOfCharge / AbsoluteStateOfCharge |
| 0x0F / 0x10 / 0x18 | RemainingCapacity / FullChargeCapacity / DesignCapacity |
| 0x14 / 0x15 | ChargingCurrent / ChargingVoltage |
| 0x17 | CycleCount |
| 0x3C…0x3F | CellVoltage 4…1 |
| 0x44 + 0x0054 | OperationStatus (sécurité, FET, PF, SLEEP) |
| 0x44 + 0x0051 / 0x0053 | SafetyStatus / PFStatus |
| 0x44 + 0x0055 | ChargingStatus (plages de température et de tension) |
| 0x44 + 0x0077 | StateOfHealth |
| 0x00 ← 0x0041 | Reset de la jauge (RAM réinitialisée depuis la flash) |
| 0x44 ← adresse + données | Écriture data-flash (TRM §14.1.67) |
