One Weak Cell Group at Eight Years and a Salvage Module
A 2017 plug-in hybrid with 141,000 miles arrives with EV range down from 22 to 9 miles and a stored hybrid-battery performance code. The 96-series pack is at 61 % SOC. With the scan tool commanding a steady 20 A discharge, cell groups read 3.78–3.82 V except group 27 at 3.12 V. After 12 hours at rest, group 27 rebounds to 3.55 V while the others sit at 3.90 V. The BMS does not flag group 27, and the module-to-BMS sense connector shows no corrosion. The customer has priced a single used module from a salvage yard, advertised as a 2015 build with 88,000 miles, and wants only that module replaced.
1. Interpret the numbers. What is physically wrong with group 27, and why does the rested reading matter more than the loaded one?
Read the worked answer
Both readings point the same direction: group 27 is aged and high-resistance, not merely out of balance.
- Under 20 A load: sagging to 3.12 V while the pack sits at ~3.80 V is a ~0.68 V spread - enormous. That is IR drop across a group with far higher internal resistance than its neighbors.
- After 12 hours at rest: a pure resistance problem would let the group rebound to something close to the pack. It rebounds only to 3.55 V, 0.35 V low. Resting OCV tracks state of charge, so the group also delivered less charge than the rest of the string - it has lost capacity, not just gained resistance.
A balancing routine cannot fix either condition. Balancing moves small amounts of charge between groups; it cannot restore lost capacity or reduce internal resistance.
Why the BMS stays quiet: many BMS designs compare at rest or at module granularity and will not set a fault until the spread crosses a much larger threshold. Silence from the scan tool is not health.
Why this is urgent rather than a range complaint: in a series string the same current flows through group 27 no matter what it can supply. Run it far enough down and it reaches 0 V, then goes negative - copper plating, gassing, heat, and a pack-level shutdown or worse. The derate and range loss are the pack protecting itself.
2. Evaluate the customer's plan to install one used 2015 module from a salvage yard.
Read the worked answer
It is a high-risk plan and should be presented as one, not just quoted.
- Mismatch. A 2015 module with 88,000 miles of unknown history has a different capacity and internal resistance than the remaining 2017 groups. In a series string, mismatched capacity means the weakest group sets the pack limit - you have simply moved the bottleneck. Expect the spread to return.
- Salvage history is unknown. A pack from a crashed or flood vehicle may have been stored at high SOC, over-discharged, or physically shocked. Ask for cell voltages and a capacity/load test from the seller; without that data you are installing an unknown.
- OEM position first. Many manufacturers specify matched part numbers and prohibit mixing module vintages or capacities. If the service information prohibits it, the answer is a matched module or a remanufactured/pack-level repair.
- If a used module is permitted: capacity-test it before installation, bring it to the same SOC as the pack before assembly, verify torque and terminal hardware, and expect to re-check the spread after a full charge/discharge cycle.
Be straight with the customer: the option that reliably restores range on an 8-year-old pack is usually a pack or a matched set, and the single-module route is a gamble they should choose knowingly.
3. Before condemning group 27, what confirmation step belongs in the diagnostic?
Read the worked answer
Confirm the BMS is telling the truth before you spend the customer's money.
- Back-probe the module terminals with a DMM while the scan tool reports group 27, ideally under the same 20 A load. If the DMM agrees with the scan tool, the reading is real. If it disagrees, you have a sense-wire or BMS sampling problem, and the repair is a harness/connector, not a module.
- Check the sense circuit resistance and pin drag at both ends even though the connector looks clean - corrosion hides inside the terminal, not on the shell.
- Rule out a thermal cause: look for a coolant leak path, a blocked duct, or a hot spot at that module location that would cook one group.
- Only then move to module-level decisions, and document the load and rest data so the next technician can see the reasoning.