diff --git a/docs/superpowers/specs/2026-07-05-bmu-48v-13s-variant-design.md b/docs/superpowers/specs/2026-07-05-bmu-48v-13s-variant-design.md new file mode 100644 index 0000000..4cc6c12 --- /dev/null +++ b/docs/superpowers/specs/2026-07-05-bmu-48v-13s-variant-design.md @@ -0,0 +1,115 @@ +# Design note — Variante BMU 48 V (packs Li-ion 13s) + +> Statut : étude préliminaire (draft) +> Date : 2026-07-05 +> Portée : adapter la BMU v2 à des packs 13s type trottinette (46,8 V nominal) +> Référence pack : Ninebot NFKF4825B — 13INR22/71-5, 46,8 V, 24,5 Ah / 1147 Wh, +> BMS interne HD4825-BMS-A05 (noyé silicone, ports B+/C+/P+ distincts) + +## 1. Objectif + +Réutiliser l'architecture BMU (mesure INA237 par voie + coupure MOSFET +bidirectionnelle + bus I2C isolé en RJ45) pour mettre en parallèle des packs +**13s Li-ion INR** récupérés de trottinettes, en plus des packs 7s actuels. + +Fenêtre électrique cible : + +| Grandeur | 7s (actuel) | 13s (cible) | +|---|---|---| +| Tension nominale | 25,9 V | 46,8 V | +| Coupure basse (3,0 V/cellule) | 21,0 V | 39,0 V | +| Pleine charge (4,2 V/cellule) | 29,4 V | **54,6 V** | + +54,6 V < 60 V DC : le système reste en très basse tension de sécurité +(ES1 / IEC 62368-1) — pas de changement de classe de sécurité. + +## 2. Ce qui tient déjà (sans modification) + +| Bloc | Verdict | Détail | +|---|---|---| +| Chaîne de mesure INA237 | ✅ | Mode commun jusqu'à +85 V ; VBUS 3,125 mV/LSB (>100 V lisibles) ; alertes BOVL/BUVL 16 bits OK à 54,6 V | +| Shunt HOVB4026 2 mΩ 5 W | ✅ | Pleine échelle ±82 A ; 1,8 W à 30 A (36 % du budget) | +| Isolation ISO1540 + alim transfo | ✅ | Isolation renforcée >> 55 V ; chaque carte flotte au potentiel de son pack | +| TCA9535, LEDs, adressage, RJ45 | ✅ | Domaine logique 3,3 V isolé, indépendant de la tension pack | +| Unités firmware | ✅ | mV en u16/i32 partout : 54 600 mV tient dans un u16 (config BLE 4×u16) | +| Sous-carte enfichable | ✅ | C'est le point de design qui rend la variante possible : on remplace la sous-carte, pas la carte mère | +| Connectique | ✅ | Anderson SB50 (600 V), cosses M5, embases 10 contacts — OK | + +## 3. Hardware à modifier + +### 3.1 Sous-carte MOSFET « 48 V » (respin drop-in, 38 × 85,5 mm) + +| Élément | v2 actuel | Problème à 54,6 V | Remplacement proposé | +|---|---|---|---| +| Q2–Q5, Q7–Q10 | IRF4905, P-ch **55 V**, 74 A | Marge nulle (transitoires) | P-MOSFET **80–100 V** TO-263, R_DS(on) ≤ 15 mΩ — ex. Vishay SUM110P08-11L (80 V, 11 mΩ), *à valider en sourcing* ; sinon variante N-ch high-side + driver charge-pump | +| V_GS | non clampé (déjà −24/−30 V > ±20 V abs max) | −54,6 V : destructif immédiat | **Zener 12 V grille-source** par groupe + R série grille (≈100 Ω) + pull-up 10 k conservé — corrige aussi le point de vigilance v2 | +| Q1, Q11 (commande) | BC337/BC847, **45 V** | V_CE ≈ V_bus à l'état OFF | NPN haute tension **MMBTA42** (300 V, SOT-23) | + +La commande 3 points (+3,3 V / CMD / GND) et le brochage des embases restent +identiques : la sous-carte 48 V est interchangeable avec la 30 V. +⚠ Marquer les sous-cartes (sérigraphie couleur) pour éviter tout panachage. + +### 3.2 Carte mère (v2.1 mineure) + +| Élément | v2 actuel | Problème | Remplacement | +|---|---|---|---| +| Buck Manual ON | MCP16331, **Vin max 50 V** | 54,6 V hors spec | **LM5164** (100 V, synchrone) ou module isolé 9–75 V ; feedback à recalculer (sortie ~5 V inchangée) | +| C12/C13 entrée buck | 10 µF **50 V** | sous-dimensionnés | 10 µF **100 V** | +| DRC | classe 30 V | isolement 54,6 V | repasser le DRC avec clearance puissance ≥ 0,5 mm (IPC-2221) — les zones v2 semblent déjà larges, à confirmer | +| Fusible par branche | dimensionné 7s/18 Ah | pack 24,5 Ah | recalculer (I_max voie + I_circ toléré) | + +Le reste de la carte mère (INA, TCA, jumpers, RJ45, LEDs, bornes) est inchangé. + +## 4. Firmware à modifier (variante Kconfig « 13S ») + +Trois points durs identifiés dans le code + deux calibrations : + +1. `bmu_config/Kconfig` — defaults : `BMU_MIN_VOLTAGE_MV` 24000 → 41000, + `BMU_MAX_VOLTAGE_MV` 30000 → 54600 (proposition à affiner). +2. `bmu_ble/bmu_ble_control_svc.cpp:233-234` — bornes de validation codées en + dur (20–30 V / 25–35 V) → à dériver du Kconfig (plage 13s : 36–48 V / + 45–56 V) plutôt que de nouvelles constantes magiques. +3. `bmu_display/bmu_ui_config.cpp:188-189` — mêmes bornes dans les steppers + de l'écran → même traitement. +4. **Seuil de déséquilibre** : 1 V @7s ≈ 1,9 V @13s à iso-déséquilibre par + cellule (×13/7). Garder le paramètre en absolu mais adapter le défaut de + la variante (~2000 mV). +5. **SOC/VRM et SOH** : mapping SOC linéaire 24,0–28,8 V → profil 13s + (39,0–54,6 V) ; le modèle SOH FPNN est entraîné sur les packs 7s terrain + → recalibration nécessaire pour la chimie INR 13s (advisory only, les + protections restent autoritaires). + +## 5. Points système à instruire au banc + +- **Courants de circulation** : ΔV pack plus grand à iso-déséquilibre + cellule ; ordre de grandeur 13s : ΔV 3 V / ΣR ≈ 150 mΩ → ≈ 20 A. + Le seuil « max 1 A de déséquilibre » de l'intake est à retraduire pour 48 V. +- **Précharge / inrush** : bus 48 V avec charges capacitives (onduleurs) — + prévoir un séquencement de fermeture des voies (la machine d'états le + permet : fermer une voie, temporiser, fermer les suivantes) ou une + résistance de précharge sur la première voie. +- **BMS internes des packs** : les packs trottinette ont des FETs de sortie + et une logique d'activation propres (ports C+/P+ séparés, wake possible). + À caractériser : acceptation du backfeed sur P+, comportement en parallèle, + besoin d'un signal d'enable. **Risque principal du scénario.** +- **Thermique** : FET 80 V à R_DS(on) plus élevée que l'IRF4905 → vérifier + la dissipation à I_max voie (4 FETs en parallèle par direction aident). + +## 6. Plan de validation proposé (banc) + +1. Deux packs 13s, ΔV imposé par alim/charge — mesurer I_circ vs modèle, + valider les seuils et la coupure. +2. Commutation sous charge : V_GS réel à l'oscillo (clamp), thermique + FET/shunt à I_max. +3. Backfeed/enable des BMS Ninebot : parallélisme de 2 packs réels, + observation des coupures internes. +4. Endurance : duty-cycling balancer + reconnexions sur 24 h. + +## 7. Effort estimé + +| Lot | Contenu | Ampleur | +|---|---|---| +| Sous-carte 48 V | respin 2 couches, même contour/connectique | petit (schéma 1 feuille, ~20 composants) | +| Carte mère v2.1 | buck 100 V + condos + DRC | petit | +| Firmware | variante Kconfig + 3 fichiers + profils SOC | petit | +| Banc | protocole §6, dont caractérisation BMS packs | **le vrai travail** |