Files
EVCS/docs/mesures/archive-pylontech-20260905/rapport/report-EN.html
Tallagrand Thierry 8cd4e1437c Les rapports entrent dans l'archive
Un distributeur qui transmet au constructeur ne doit dependre d'aucun
lien exterieur, et le destinataire final lit peut-etre le chinois
plutot que le francais. Les trois versions HTML rejoignent donc
l'envoi, et le courrier decrit sa piece jointe au lieu de proposer de
la fournir.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
2026-09-05 20:49:12 +02:00

182 lines
26 KiB
HTML

<title>The Hundred and Five Cells</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;900&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=JetBrains+Mono:wght@400;700&display=swap">
<style>
:root {
--fond:#F6F8F7; --carte:#FFFFFF; --encre:#14191B; --sourd:#5B6669;
--trait:#DCE2E1; --trait-fort:#B9C3C1;
--sain:#2E7D62; --attention:#A8760C; --grave:#C2521E; --mort:#9B1D20;
--lueur:rgba(46,125,98,.08);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--fond:#0E1112; --carte:#161A1B; --encre:#E7EBEA; --sourd:#97A2A4;
--trait:#252B2C; --trait-fort:#3A4344;
--sain:#5BB894; --attention:#D9A63C; --grave:#E8794A; --mort:#E05C60;
--lueur:rgba(91,184,148,.10);
}
}
:root[data-theme="dark"] {
--fond:#0E1112; --carte:#161A1B; --encre:#E7EBEA; --sourd:#97A2A4;
--trait:#252B2C; --trait-fort:#3A4344;
--sain:#5BB894; --attention:#D9A63C; --grave:#E8794A; --mort:#E05C60;
--lueur:rgba(91,184,148,.10);
}
* { box-sizing:border-box; }
body { background:var(--fond); color:var(--encre);
font:400 17px/1.62 "Source Serif 4", Georgia, serif; margin:0; -webkit-font-smoothing:antialiased; }
.page { max-width:1000px; margin:0 auto; padding:0 24px 96px; }
.mesure { max-width:64ch; }
h1, h2, h3, .fm, .etiq { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; }
h1 { font-weight:900; font-size:clamp(2.2rem,6vw,3.7rem); line-height:1.08;
letter-spacing:-.025em; margin:0 0 .4em; text-wrap:balance; }
h2 { font-weight:700; font-size:1.5rem; margin:4.2rem 0 .2em; text-wrap:balance; }
h2 .num { color:var(--sourd); font-weight:400; margin-right:.5em;
font-variant-numeric:tabular-nums; }
p { margin:0 0 1.05em; }
strong, b { font-weight:600; }
.mono { font-family:"JetBrains Mono", ui-monospace, monospace; font-size:.86em;
font-variant-numeric:tabular-nums; }
header { padding:72px 0 8px; border-bottom:1px solid var(--trait); margin-bottom:2.5rem; }
.etiq { font-size:.72rem; font-weight:700; letter-spacing:.14em;
text-transform:uppercase; color:var(--sourd); margin-bottom:1.6rem; }
.chapeau { font-size:1.2rem; line-height:1.55; color:var(--sourd);
max-width:56ch; margin-bottom:2rem; }
.maj { font-size:.8rem; color:var(--sourd); padding-bottom:1.4rem; }
.verdict { display:grid; gap:1px; background:var(--trait);
grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
border:1px solid var(--trait); border-radius:10px; overflow:hidden; margin:2rem 0 0; }
.verdict div { background:var(--carte); padding:18px 20px; }
.verdict .n { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; font-weight:900; font-size:2.3rem;
line-height:1; font-variant-numeric:tabular-nums; }
.verdict .l { font-size:.86rem; color:var(--sourd); margin-top:.45em; line-height:1.35; }
figure { margin:2rem 0; }
.cadre { background:var(--carte); border:1px solid var(--trait); border-radius:10px;
padding:22px 20px; overflow-x:auto; }
svg { display:block; min-width:640px; width:100%; height:auto; }
.fm { font-size:12.5px; font-weight:700; fill:var(--encre); }
.fp { font-size:10.5px; fill:var(--sourd); font-family:"Source Serif 4", Georgia, serif; }
.fc { font-size:9.5px; fill:var(--sourd); text-anchor:end; font-family:"JetBrains Mono",monospace; }
.fv { font-size:9.5px; fill:var(--sourd); font-family:"JetBrains Mono",monospace; }
.fr { font-size:9.5px; fill:var(--sourd); text-anchor:middle; font-family:"JetBrains Mono",monospace; }
.rep { stroke:var(--trait-fort); stroke-width:1; stroke-dasharray:2 4; }
figcaption { font-size:.88rem; color:var(--sourd); margin-top:.9rem;
max-width:62ch; line-height:1.65; }
.tabl { overflow-x:auto; margin:1.6rem 0; border:1px solid var(--trait);
border-radius:10px; background:var(--carte); }
table { border-collapse:collapse; width:100%; min-width:680px;
font-family:"Source Serif 4", Georgia, serif; font-size:.94rem; }
th { font-family:Chivo, "Helvetica Neue", Arial, sans-serif; font-size:.7rem; font-weight:700;
letter-spacing:.08em; text-transform:uppercase; color:var(--sourd);
text-align:left; padding:13px 14px; border-bottom:1px solid var(--trait); }
td { padding:11px 14px; border-bottom:1px solid var(--trait); vertical-align:top; }
tr:last-child td { border-bottom:none; }
tr.mal td { background:var(--lueur); }
.num { text-align:right; font-variant-numeric:tabular-nums;
font-family:"JetBrains Mono",monospace; font-size:.85rem; }
.gros { font-weight:700; font-size:1rem; }
.cel { font-family:"JetBrains Mono",monospace; font-size:.8rem; color:var(--sourd); }
.etat { font-size:.85rem; color:var(--sourd); }
.h { font-weight:700; white-space:nowrap; }
.note { color:var(--sourd); font-size:.88rem; }
table.mini { min-width:0; width:auto; margin:1.2rem 0; border:1px solid var(--trait);
border-radius:8px; }
table.mini th { padding:9px 16px; } table.mini td { padding:8px 16px; }
.legende { display:flex; flex-wrap:wrap; gap:18px; font-size:.85rem;
color:var(--sourd); margin-top:1rem; }
.legende span { display:inline-flex; align-items:center; gap:7px; }
.pastille { width:11px; height:11px; border-radius:3px; display:inline-block; }
.encart { border-left:3px solid var(--grave); background:var(--carte);
padding:16px 20px; margin:1.8rem 0; border-radius:0 8px 8px 0; }
.encart p:last-child { margin-bottom:0; }
ol, ul { padding-left:1.3em; } li { margin-bottom:.7em; }
footer { margin-top:5rem; padding-top:1.6rem; border-top:1px solid var(--trait);
font-size:.85rem; color:var(--sourd); line-height:1.6; }
</style>
<div class="page">
<header>
<div class="etiq">Pylontech pack · diagnosis in progress</div>
<h1>The Hundred and Five Cells</h1>
<p class="chapeau">Eight modules, fifteen cells each. Ten of those cells throttle the charging of the other ninety-five. Here is which ones, how we know, and what can be done about it.</p>
<div class="maj">Last updated&nbsp;: 5 September 2026, 17:00</div>
</header>
<div class="verdict"><div><div class="n">10</div><div class="l">affected cells out of 105</div></div><div><div class="n">3</div><div class="l">modules involved out of 8</div></div><div><div class="n">5&nbsp;s</div><div class="l">from threshold crossing to current cut</div></div><div><div class="n">30&nbsp;A</div><div class="l">limit imposed on the whole pack, against 150 A nominal</div></div></div>
<div class="mesure"><h2><span class="num">1</span>The verdict</h2><p>The pack is not worn out. Four modules out of eight are <strong>flawless</strong>:
sixty cells without a single anomaly, after more than three hundred cycles. A
fifth is just as clean.</p>
<p>Three modules carry the entire problem, and within those three, <strong>ten
cells</strong>. When one of them reaches 3550 mV the BMS reduces the charge
current — not for its own module, but <strong>for the whole pack</strong>. Five
healthy modules are throttled by ten cells.</p></div>
<figure>
<div class="cadre"><svg viewBox="0 0 760 1064" role="img"><line x1="268.0" y1="0" x2="268.0" y2="1046" class="rep"/><text x="268.0" y="1058" class="fr">200 mV</text><line x1="440.0" y1="0" x2="440.0" y2="1046" class="rep"/><text x="440.0" y="1058" class="fr">400 mV</text><line x1="612.0" y1="0" x2="612.0" y2="1046" class="rep"/><text x="612.0" y="1058" class="fr">600 mV</text><text x="0" y="13" class="fm">0323</text><text x="0" y="25" class="fp">older pack · address 2 — THE CONTROL</text><text x="88" y="36" class="fc">1</text><rect x="96" y="28" width="164.3" height="10" rx="2" fill="var(--sain)"/><text x="266.26" y="37" class="fv">191</text><text x="88" y="51" class="fc">2</text><rect x="96" y="43" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="52" class="fv">188</text><text x="88" y="66" class="fc">3</text><rect x="96" y="58" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="67" class="fv">188</text><text x="88" y="81" class="fc">4</text><rect x="96" y="73" width="162.5" height="10" rx="2" fill="var(--sain)"/><text x="264.53999999999996" y="82" class="fv">189</text><text x="88" y="96" class="fc">5</text><rect x="96" y="88" width="163.4" height="10" rx="2" fill="var(--sain)"/><text x="265.4" y="97" class="fv">190</text><text x="88" y="111" class="fc">6</text><rect x="96" y="103" width="169.4" height="10" rx="2" fill="var(--sain)"/><text x="271.41999999999996" y="112" class="fv">197</text><text x="88" y="126" class="fc">7</text><rect x="96" y="118" width="160.8" height="10" rx="2" fill="var(--sain)"/><text x="262.82" y="127" class="fv">187</text><text x="88" y="141" class="fc">8</text><rect x="96" y="133" width="163.4" height="10" rx="2" fill="var(--sain)"/><text x="265.4" y="142" class="fv">190</text><text x="88" y="156" class="fc">9</text><rect x="96" y="148" width="162.5" height="10" rx="2" fill="var(--sain)"/><text x="264.53999999999996" y="157" class="fv">189</text><text x="88" y="171" class="fc">10</text><rect x="96" y="163" width="165.1" height="10" rx="2" fill="var(--sain)"/><text x="267.12" y="172" class="fv">192</text><text x="88" y="186" class="fc">11</text><rect x="96" y="178" width="164.3" height="10" rx="2" fill="var(--sain)"/><text x="266.26" y="187" class="fv">191</text><text x="88" y="201" class="fc">12</text><rect x="96" y="193" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="202" class="fv">188</text><text x="88" y="216" class="fc">13</text><rect x="96" y="208" width="160.8" height="10" rx="2" fill="var(--sain)"/><text x="262.82" y="217" class="fv">187</text><text x="88" y="231" class="fc">14</text><rect x="96" y="223" width="165.1" height="10" rx="2" fill="var(--sain)"/><text x="267.12" y="232" class="fv">192</text><text x="88" y="246" class="fc">15</text><rect x="96" y="238" width="170.3" height="10" rx="2" fill="var(--sain)"/><text x="272.28" y="247" class="fv">198</text><text x="0" y="278" class="fm">0322</text><text x="0" y="290" class="fp">older pack · address 1</text><text x="88" y="301" class="fc">1</text><rect x="96" y="293" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="302" class="fv">182</text><text x="88" y="316" class="fc">2</text><rect x="96" y="308" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="317" class="fv">178</text><text x="88" y="331" class="fc">3</text><rect x="96" y="323" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="332" class="fv">178</text><text x="88" y="346" class="fc">4</text><rect x="96" y="338" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="347" class="fv">178</text><text x="88" y="361" class="fc">5</text><rect x="96" y="353" width="152.2" height="10" rx="2" fill="var(--sain)"/><text x="254.22" y="362" class="fv">177</text><text x="88" y="376" class="fc">6</text><rect x="96" y="368" width="471.3" height="10" rx="2" fill="var(--grave)"/><text x="573.28" y="377" class="fv">548</text><text x="88" y="391" class="fc">7</text><rect x="96" y="383" width="319.1" height="10" rx="2" fill="var(--attention)"/><text x="421.06" y="392" class="fv">371</text><text x="88" y="406" class="fc">8</text><rect x="96" y="398" width="155.7" height="10" rx="2" fill="var(--sain)"/><text x="257.65999999999997" y="407" class="fv">181</text><text x="88" y="421" class="fc">9</text><rect x="96" y="413" width="153.9" height="10" rx="2" fill="var(--sain)"/><text x="255.94" y="422" class="fv">179</text><text x="88" y="436" class="fc">10</text><rect x="96" y="428" width="153.9" height="10" rx="2" fill="var(--sain)"/><text x="255.94" y="437" class="fv">179</text><text x="88" y="451" class="fc">11</text><rect x="96" y="443" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="452" class="fv">182</text><text x="88" y="466" class="fc">12</text><rect x="96" y="458" width="594.3" height="10" rx="2" fill="var(--mort)"/><text x="696.26" y="467" class="fv">691</text><text x="88" y="481" class="fc">13</text><rect x="96" y="473" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="482" class="fv">178</text><text x="88" y="496" class="fc">14</text><rect x="96" y="488" width="234.8" height="10" rx="2" fill="var(--attention)"/><text x="336.78" y="497" class="fv">273</text><text x="88" y="511" class="fc">15</text><rect x="96" y="503" width="153.1" height="10" rx="2" fill="var(--sain)"/><text x="255.07999999999998" y="512" class="fv">178</text><text x="0" y="543" class="fm">0319</text><text x="0" y="555" class="fp">older pack · address 3</text><text x="88" y="566" class="fc">1</text><rect x="96" y="558" width="157.4" height="10" rx="2" fill="var(--sain)"/><text x="259.38" y="567" class="fv">183</text><text x="88" y="581" class="fc">2</text><rect x="96" y="573" width="448.1" height="10" rx="2" fill="var(--grave)"/><text x="550.06" y="582" class="fv">521</text><text x="88" y="596" class="fc">3</text><rect x="96" y="588" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="597" class="fv">184</text><text x="88" y="611" class="fc">4</text><rect x="96" y="603" width="160.0" height="10" rx="2" fill="var(--sain)"/><text x="261.96000000000004" y="612" class="fv">186</text><text x="88" y="626" class="fc">5</text><rect x="96" y="618" width="156.5" height="10" rx="2" fill="var(--sain)"/><text x="258.52" y="627" class="fv">182</text><text x="88" y="641" class="fc">6</text><rect x="96" y="633" width="273.5" height="10" rx="2" fill="var(--attention)"/><text x="375.48" y="642" class="fv">318</text><text x="88" y="656" class="fc">7</text><rect x="96" y="648" width="157.4" height="10" rx="2" fill="var(--sain)"/><text x="259.38" y="657" class="fv">183</text><text x="88" y="671" class="fc">8</text><rect x="96" y="663" width="160.0" height="10" rx="2" fill="var(--sain)"/><text x="261.96000000000004" y="672" class="fv">186</text><text x="88" y="686" class="fc">9</text><rect x="96" y="678" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="687" class="fv">184</text><text x="88" y="701" class="fc">10</text><rect x="96" y="693" width="406.8" height="10" rx="2" fill="var(--grave)"/><text x="508.78" y="702" class="fv">473</text><text x="88" y="716" class="fc">11</text><rect x="96" y="708" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="717" class="fv">184</text><text x="88" y="731" class="fc">12</text><rect x="96" y="723" width="381.0" height="10" rx="2" fill="var(--grave)"/><text x="482.98" y="732" class="fv">443</text><text x="88" y="746" class="fc">13</text><rect x="96" y="738" width="158.2" height="10" rx="2" fill="var(--sain)"/><text x="260.24" y="747" class="fv">184</text><text x="88" y="761" class="fc">14</text><rect x="96" y="753" width="161.7" height="10" rx="2" fill="var(--sain)"/><text x="263.68" y="762" class="fv">188</text><text x="88" y="776" class="fc">15</text><rect x="96" y="768" width="364.6" height="10" rx="2" fill="var(--grave)"/><text x="466.64" y="777" class="fv">424</text><text x="0" y="808" class="fm">0324</text><text x="0" y="820" class="fp">isolated (BAT3) · address 4</text><text x="88" y="831" class="fc">1</text><rect x="96" y="823" width="118.7" height="10" rx="2" fill="var(--sain)"/><text x="220.68" y="832" class="fv">138</text><text x="88" y="846" class="fc">2</text><rect x="96" y="838" width="106.6" height="10" rx="2" fill="var(--sain)"/><text x="208.64" y="847" class="fv">124</text><text x="88" y="861" class="fc">3</text><rect x="96" y="853" width="118.7" height="10" rx="2" fill="var(--sain)"/><text x="220.68" y="862" class="fv">138</text><text x="88" y="876" class="fc">4</text><rect x="96" y="868" width="117.8" height="10" rx="2" fill="var(--sain)"/><text x="219.82" y="877" class="fv">137</text><text x="88" y="891" class="fc">5</text><rect x="96" y="883" width="119.5" height="10" rx="2" fill="var(--sain)"/><text x="221.54" y="892" class="fv">139</text><text x="88" y="906" class="fc">6</text><rect x="96" y="898" width="113.5" height="10" rx="2" fill="var(--sain)"/><text x="215.51999999999998" y="907" class="fv">132</text><text x="88" y="921" class="fc">7</text><rect x="96" y="913" width="115.2" height="10" rx="2" fill="var(--sain)"/><text x="217.24" y="922" class="fv">134</text><text x="88" y="936" class="fc">8</text><rect x="96" y="928" width="122.1" height="10" rx="2" fill="var(--sain)"/><text x="224.12" y="937" class="fv">142</text><text x="88" y="951" class="fc">9</text><rect x="96" y="943" width="123.0" height="10" rx="2" fill="var(--sain)"/><text x="224.98000000000002" y="952" class="fv">143</text><text x="88" y="966" class="fc">10</text><rect x="96" y="958" width="116.1" height="10" rx="2" fill="var(--sain)"/><text x="218.1" y="967" class="fv">135</text><text x="88" y="981" class="fc">11</text><rect x="96" y="973" width="117.0" height="10" rx="2" fill="var(--sain)"/><text x="218.95999999999998" y="982" class="fv">136</text><text x="88" y="996" class="fc">12</text><rect x="96" y="988" width="117.8" height="10" rx="2" fill="var(--sain)"/><text x="219.82" y="997" class="fv">137</text><text x="88" y="1011" class="fc">13</text><rect x="96" y="1003" width="110.1" height="10" rx="2" fill="var(--sain)"/><text x="212.07999999999998" y="1012" class="fv">128</text><text x="88" y="1026" class="fc">14</text><rect x="96" y="1018" width="116.1" height="10" rx="2" fill="var(--sain)"/><text x="218.1" y="1027" class="fv">135</text><text x="88" y="1041" class="fc">15</text><rect x="96" y="1033" width="587.4" height="10" rx="2" fill="var(--mort)"/><text x="689.38" y="1042" class="fv">683</text></svg></div>
<div class="legende"><span><i class="pastille" style="background:var(--sain)"></i>healthy</span><span><i class="pastille" style="background:var(--attention)"></i>drifting</span><span><i class="pastille" style="background:var(--grave)"></i>badly affected</span><span><i class="pastille" style="background:var(--mort)"></i>terminal</span></div>
<figcaption>Voltage span swept by each cell between its minimum and maximum over the
observation period. The first module is the <strong>control</strong>: it lives on
the same chain as the two damaged ones, has seen the same currents and the same
days, and its fifteen cells sit within <strong>eleven millivolts of span of each
other</strong>. A cell that has lost capacity fills and empties before its
neighbours, so it sweeps a far wider range at identical current — the sign
requires no disassembly. The isolated module shows smaller spans because it spent
the period out of service, over a narrower state-of-charge window: what matters
is the gap to its own neighbours, not the absolute value.</figcaption>
</figure>
<div class="mesure"><h2><span class="num">2</span>The pack, module by module</h2><p>A module's identity is its barcode, never its address: each chain renumbers
its modules from 1, so there are two “module 1” in this installation.</p></div>
<div class="tabl"><table><thead><tr><th>Barcode</th><th>Pack</th><th>Addr.</th><th>Affected cells</th><th>Which ones</th><th>Median spread</th><th>Overvoltage</th><th>Undervoltage</th><th></th></tr></thead><tbody><tr class="mal"><td class="mono">K220803C30160322</td><td>older</td><td class="num">1</td><td class="num gros">4</td><td class="cel">6 · 7 · 12 · 14</td><td class="num">108</td><td class="num">498</td><td class="num">86</td><td class="etat">in service</td></tr><tr class=""><td class="mono">K220803C30160323</td><td>older</td><td class="num">2</td><td class="num gros">0</td><td class="cel">—</td><td class="num">6</td><td class="num">0</td><td class="num">0</td><td class="etat">in service</td></tr><tr class="mal"><td class="mono">K220803C30160319</td><td>older</td><td class="num">3</td><td class="num gros">5</td><td class="cel">2 · 6 · 10 · 12 · 15</td><td class="num">45</td><td class="num">416</td><td class="num">179</td><td class="etat">in service</td></tr><tr class="mal"><td class="mono">K220803C30160324</td><td>older</td><td class="num">4</td><td class="num gros">1</td><td class="cel">15</td><td class="num">57</td><td class="num">29</td><td class="num">59</td><td class="etat">isolated</td></tr><tr class=""><td class="mono">Y230202C30371426</td><td>newer</td><td class="num">1</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">in service</td></tr><tr class=""><td class="mono">Y230202C30371425</td><td>newer</td><td class="num">2</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">in service</td></tr><tr class=""><td class="mono">Y230202C30371431</td><td>newer</td><td class="num">3</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">1</td><td class="etat">in service</td></tr><tr class=""><td class="mono">Y230202C30371427</td><td>newer</td><td class="num">4</td><td class="num gros">0</td><td class="cel">—</td><td class="num">2</td><td class="num">1</td><td class="num">0</td><td class="etat">in service</td></tr></tbody></table></div>
<div class="mesure"><p>Read the median spread column. The five healthy modules sit between
<strong>2 and 6 millivolts</strong>; the other three are at 45, 57 and 108. The
same contrast shows in the overvoltage counters: <strong>498</strong> for the
first module against <strong>one</strong> for each of the four in the newer pack,
which have nonetheless taken ten times more cycles.</p>
<p>All sixty cells of the newer pack sweep between 168 and 191 mV, without
exception. The inventory is closed.</p>
<h2><span class="num">3</span>The trip, timed</h2><p>On 5 September the console was connected to the three modules of the older
pack while the alarm was rising. What follows is the record, to the second.</p></div>
<div class="tabl"><table><thead><tr><th>Time</th><th>What happens</th><th></th></tr></thead><tbody><tr><td class="mono h">13:04:48</td><td>cell 7 of module …0322 at <b>3526 mV</b>, cell 6 of module …0319 at <b>3541</b></td><td class="note">below threshold</td></tr><tr><td class="mono h">13:05:08</td><td>the same two at <b>3555</b> and <b>3575 mV</b></td><td class="note">level 3 crossed</td></tr><tr><td class="mono h">13:05:13</td><td>the BMS drops the allowed charge current from <b>50 to 30 A</b></td><td class="note">five seconds later</td></tr><tr><td class="mono h">13:15:10</td><td>cells fall back to 3499 and 3522 mV, alarm clears</td><td class="note">the limit stays at 30 A</td></tr><tr><td class="mono h">13:22:40</td><td>limit <b>30 → 40 A</b></td><td class="note">after 7 min 31 s</td></tr><tr><td class="mono h">13:26:39</td><td>limit <b>40 → 35 A</b>, leading cells at 3563 and 3548 mV</td><td class="note">it trips again</td></tr><tr><td class="mono h">13:38:10</td><td>limit <b>35 → 40 A</b></td><td class="note">after 11 min 31 s</td></tr></tbody></table></div>
<div class="mesure">
<div class="encart"><p><strong>The most useful finding</strong> is in the fourth row: the alarm
clears well before the limit recovers. Looking for the alarm in the logs therefore
misses the bulk of the phenomenon — the alarm lasts minutes, the throttling lasts
hours.</p></div>
<p>The thresholds are not values we chose: they are the ones the hardware
declares, read from <span class="mono">sysinfo</span> on the LV-HUB.</p><ul><li><span class="mono">3480 mV</span> level 1</li><li><span class="mono">3520 mV</span> level 2</li><li><span class="mono">3550 mV</span> level 3 — current is reduced</li><li><span class="mono">3600 mV</span> level 4</li></ul>
<h2><span class="num">4</span>Internal resistance, or charge imbalance?</h2><p>The answer decides what balancing can give back. Two measurement points on
the same cell at two different currents settle it.</p>
<table class="mini"><tr><th></th><th>current per cell</th><th>spread</th></tr>
<tr><td class="mono">13:04:48</td><td class="num">6.33 A</td><td class="num">163 mV</td></tr>
<tr><td class="mono">14:05:42</td><td class="num">0.04 A</td><td class="num">46 mV</td></tr></table>
<p>The slope gives <strong>≈ 18.6 mΩ</strong> of excess internal resistance on the
leading cell, twenty to forty times that of a healthy one. The intercept,
<strong>≈ 46 mV</strong>, is the true charge imbalance.</p>
<p>Independent check: this line predicts 312 mV at 100 A pack current. The largest
spread actually recorded over thirty-seven days is 280 mV.</p>
<p>So of the ~190 mV of spread under charge, <strong>only 46 mV are an
imbalance</strong> — the rest is lost capacity. A perfect rebalance would bring the
trip from 3555 down to about 3510 mV: below the threshold, but with only forty
millivolts of margin.</p>
<h2><span class="num">5</span>Where the damage comes from</h2><p>Not from wear. The newer pack has taken three hundred and forty cycles in a
year and its sixty cells are intact: cycling does not damage these modules. And
the control module shared the chain, the currents and the days of the two damaged
ones without a scratch.</p>
<p>The two terminal cells went down to <span class="mono">2953</span> and
<span class="mono">2939 mV</span>, below the low-voltage alarm threshold. A
lithium iron phosphate cell taken there under load loses capacity irreversibly.
<strong>These cells did not age, they were discharged too deep.</strong></p>
<h2><span class="num">6</span>Three questions for Pylontech</h2>
<ol><li>Are these cells recoverable by a prolonged hold at high state of charge, or does the 18.6 mΩ resistive component make the attempt pointless?</li><li>Is there a recommended procedure for a module in this condition, and a limit beyond which module replacement is the only option?</li><li>What exactly does the per-cell <span class="mono">SOHCount</span> returned by the <span class="mono">soh</span> command count, and from what value does Pylontech consider a cell to require attention?</li></ol>
</div>
<footer>Measurements taken on the serial console of the Pylontech BMS units, which neither Home Assistant nor the Victron GX exposes: the system publishes only the pack aggregate. Self-consumption installation without grid feed-in, two MultiPlus-II 48/5000 in parallel. This report evolves as the work proceeds.</footer>
</div>