--- tags: [project-drogheda, hardware, battery, thermal, power] project: Project Drogheda author: Helgen CTO date: 2026-09-09 status: Draft — decision input --- # Backup cell at 45 °C: why Li-ion is failing, and what replaces it > **Bottom line:** LiPo is not an upgrade — a LiPo pouch *is* Li-ion, in a worse package. > And before changing any cell: **`RNTB` = 10 k makes the LTC4040 stop charging at > +40…+42 °C.** At a 45 °C port the pack essentially never charges. That is a resistor, > not a chemistry. The chemistry that then lets you *raise* that limit is > **high-temperature LiFePO4**, which the LTC4040 already supports — `JP2` re-strap, no respin. --- ## 1. LiPo is the wrong direction A "LiPo" pouch is lithium-ion (LCO or NMC) in a soft laminate bag. Same 0–45 °C charge window, same calendar aging, and **worse** in a hot sealed box: no vent, no CID, and it swells. The 2000 mAh cells are bench hardware. Keep them on the bench. --- ## 2. 🔴 The charger is refusing to charge — and it is our resistor `RNTB` (10 k 1 %) biases the pack NTC (`RT1`, 10 k, on the cell via `P4.3`). The LTC4040 pauses charging when the NTC falls to **53.6 % of `RBIAS`** and resumes below **325 %**. With `RBIAS` = 10 k that puts the charge window at: | NTC β | Charge window today | |---|---| | B3380 | **−3.1 °C … +42.4 °C** | | B3950 | **+0.6 °C … +39.7 °C** | Port operating temperature is ~45 °C. **The pack sits above the hot-pause threshold for most of the working day**, so it never reaches full charge and the backup is not there when the power drops. The MCU's own `CHRG_EN` hot-cut sits on top of this. This is very likely most of the "poor performance" — and it is **not** the cell's fault. Note the earlier fleet finding blamed no-charge on the LTC4040 safety-timer latch; a pack that is repeatedly hot-paused mid-charge is exactly how you *reach* that latch. ### Re-scaling `RNTB` You cannot simply raise this on the current cell — an NMC/LCO 18650 **must not** be charged at 55 °C. Raise it *together with* the chemistry change: | Target hot pause | β | New `RNTB` | Resulting window | |---|---|---|---| | +55 °C | B3380 | **6.62 k** | +6.1 … +55 °C | | +55 °C | B3950 | 5.56 k | +12.3 … +55 °C | | **+60 °C** | **B3380** | **5.67 k → 5.6 k E24** | **+9.7 … +60 °C** | | +60 °C | B3950 | 4.64 k | +16.0 … +60 °C | `RBIAS` sets both ends, so raising the hot limit raises the cold one. **Specify the B3380 NTC** (the delta doc already calls B3380 "ideal", B3950 "acceptable") — with B3950 you would refuse to charge below +16 °C, which is a real winter night in Ensenada. ⚠ Computed from the datasheet's 53.6 % / 325 % ratios and a β model with R25 = 10 k. Check against the actual NTC part's R/T table before cutting the BOM. --- ## 3. The cell: high-temperature LiFePO4 26650 | | Today — NMC/LCO 18650 | **High-temp LFP 26650** | |---|---|---| | Charge temp | 0…45 °C | **−20…60 °C** (Topwell 3600 mAh) · **0…75 °C** (JGNE 4000 mAh) | | Discharge temp | −20…60 °C | −50…80 °C · −30…75 °C | | Nominal | 3.6 V | 3.2 V | | Cell energy | ~11 Wh (3 Ah) | 11.5 Wh (3.6 Ah) · **12.8 Wh (4 Ah)** | | Cycle life | 300–500 | **≥ 2000** to 80 % | | Thermal runaway onset | ~150–200 °C | ~270 °C (olivine) — does not propagate | | Calendar aging at 45 °C | fast | far slower | **4P of the 3.6 Ah cell = 46 Wh; 4P of the 4 Ah = 51 Wh** — both at or above today's ~43 Wh. Even 3P clears 38 Wh. ### The board already supports it — one jumper LTC4040 `F2` selects chemistry: **high = Li-Ion, low = LiFePO4**. Float table: | F1 | F0 | F2 = 1 (Li-Ion) | F2 = 0 (LiFePO4) | |---|---|---|---| | 0 | 0 | 3.95 V | 3.45 V | | **0** | **1** | **4.00 V ← we are here** | **3.50 V ← we land here** | | 1 | 0 | 4.05 V | 3.55 V | | 1 | 1 | 4.10 V | 3.60 V | Current straps are F2=1 / F1=0 / F0=1. **Flip `JP2` (F2) only** → 3.50 V LFP float. The 2026-07-06 pre-fab audit already recorded this path as preserved. No schematic change, no respin. 3.50 V on LFP is ~90 % SoC — deliberately shy of 3.65 V, which is exactly what you want for calendar life at temperature. `JP3` to F1=1 gives 3.60 V if you later want the last few percent. ### What else must change 1. **`RNTB` → 5.6 k** (§2) — without this the swap changes nothing; the charger still pauses at 42 °C. 2. **Firmware `BAT_CRITICAL` / `BAT_RECOVERY`.** LFP's discharge curve is flat at ~3.2 V from 90 % to 15 % SoC. Voltage-based SoC stops working. Re-derive the thresholds against the knee (~2.9 V), and expect the gauge to be near-useless mid-band — coulomb-count or accept a three-state indicator. The firmware review already flagged these thresholds as bench-tune items for the 4.00 V pack; this makes it mandatory. 3. **MCU `CHRG_EN` hot-cut threshold** — raise in step with `RNTB`, or it becomes the new binding limit. 4. **LTC4040 boost current.** 3.2 V nominal instead of 3.6 V ⇒ ~12 % more pack current for the same backup watts. Re-check against the boost limit and the `RS1` errata fix. 5. **Mechanical.** 26650 is 26.5 mm vs 18.5 mm and ~85 g/cell. New ASA battery-case print, and re-check the 4P footprint inside the HBOX. 6. **Sourcing.** The high-temp grades are Chinese-supplier parts (JGNE, Topwell class), not a shelf item in MX. Check MOQ, lead time and whether they will give a real R/T and cycle-at-temperature spec before this goes on the 30-unit BOM. --- ## 4. Alternatives, briefly | Option | Verdict | |---|---| | **High-temp LFP 26650** | ✅ **Recommended.** Solves charge-at-temperature, board already supports it, cost/Wh comparable | | **Supercap / LIC hold-up** | −40…+65/85 °C, no charge-temperature window at all, effectively infinite cycles — but ~1/20 the energy. **The right answer if the real requirement is "report a power-loss alarm and shut down cleanly" rather than "run for hours".** Pin the requirement before dismissing it again | | **Smaller pack, better cell** | Nobody has pulled this lever. 43 Wh is a lot for a parked machine. Halve the requirement and the thermal problem halves with it | | **LTO** | Best temperature range and cycle life, but 2.4 V nominal breaks the LTC4040's 1S window entirely — new charger. Low energy density, expensive, hard to source. **Out** | | **High-temp-rated NMC 18650** | Keeps the form factor, but you are still fighting the same chemistry for a few °C. Marginal | | **NiMH** | High self-discharge at temperature, and trickle-charging hot is its own failure mode. **Out** | --- ## 5. Do this first — you already have the data Do **not** buy cells on an assumption. `tbat` (TMP102 on the pack) and `tntc` are already in `$PHLG` and already landing in `htracker`. Pull the fleet histogram and answer: 1. What is the **actual** pack temperature distribution, by unit and by hour? 2. What **fraction of the day** does it sit above the current ~40–42 °C hot pause? 3. Does `cflt` / charge-fault correlate with those windows? Question 2 is the number that decides whether this is a resistor change, a chemistry change, or both. It is one query against data we are already collecting.