Should you replace your hybrid battery pack when a P0A80 sets? The code definition seems pretty clear, and you might think there’s nothing left to do but to follow its “instructions”. But like all things automotive, there are no absolutes. You must do the testing and come up with your own conclusions. You can’t rely on the car’s self-diagnostic functions to tell you what’s wrong. That day may come, but it’s not here yet. Unless you like replacing expensive parts only to find out it was unnecessary, do your due diligence.
What causes P0A80?
What causes P0A80 on a Toyota is different than what causes a P0A80 on a Honda. Why? This is probably a question better answered by an automotive engineer, but as I understand it, SAE (Society of Automotive Engineers) produces a list of standard trouble codes with various meanings. In the case of P0A80, the code’s meaning is “replace the hybrid battery pack”.
On all of the Toyota hybrids I’ve seen, P0A80 sets when on battery block has a lower voltage than the others, and so far, it has always been due to a shorted cell in that block.
A hybrid battery primer (in 6 sentances)
So, what are blocks and what are cells. A block is a group of cells that are monitored by the battery ECU. On many Toyota hybrids a block is a group of 12 cells.
A cell is the smallest unit of the battery. Its voltage is determined by its chemistry. For instance, a NiMH cell has a nominal voltage of 1.2, whereas a lithium cell will have a nominal voltage around 3.6V.
What does the battery ECU look for?
The battery ECU measures the voltage of each block and looks for differences in voltage. When the battery is being loaded, the voltage in weaker cells will drop more than the voltage in stronger cells. A shorted cell will produce 0V, so a block with a shorted cell will be about 1.2 lower than the other blocks. The battery ECU will notice this and set a P0A80.
A P0A80 can also set due to a fault with the A/D (analog/digital) converter in the battery ECU. When this happens there will be an alternating pattern of high and low block voltages in the freeze data. I haven’t seen a battery ECU fail in this way, but I have seen battery ECUs fail in other ways, always with different codes.
Toyota P3011 – P3024
Toyota also uses P30xx codes to flag hybrid battery failures. Each code in this range refers to a particular battery block. For instance, P3017 indicates a problem with block 7. Basically, you just subtract 10 from the number in the trouble code and then the last two digits are the number of the block. On models other than the standard Prius with more than 14 blocks, the codes continue to P3025 and beyond.
P3011-P3024 are sort of the opposite of P0A80 on Toyota. A weak cell will have a lower voltage under load than a good cell. However, while being charged the opposite is true. A weak cell’s voltage will climb higher than good cells voltage while being charged. The battery ECU is watching the block voltages, and if it sees a block’s voltage climb higher than the others beyond a certain threshold, it will set a P30xx code.
While a P0A80 usually sets when a block’s voltage is over a volt lower than the others, a P30xx can set when a block’s voltage is only 0.3V higher than the others. P0A80 usually sets while the battery is under load. P30xx always sets when the battery is being charged with regen or with the MG1.
P0A80 on Honda
I’m not as familiar with Honda’s hybrid batteries. Honda made terrible hybrids in the beginning and they’ve kind of killed their market share. We saw a fair number of the Gen1 Insights, Civics, and Accords back in the day, but most have made their way to the great junkyard in the sky by now. In contrast, we still have three to five 2004-2009 Priuses come in daily.
When Honda came out with some cars that had seemingly good designs, nobody bought them. “Fool me once” I guess. I do occasionally read the service manuals for fun. (I know. I’m always popular at parties.)
P0A80 on the 2019-2022 Insight has nothing to do with the block voltages. Instead, it looks like a check to see if the correct battery is installed. Here’s what the manual says:
“The battery pack built in resistance for battery module identifications are used for the battery condition monitor module to monitor whether an appropriate battery module is connected. If the battery pack resistance voltage for battery module identifications are out of specified value for a set time, the battery condition monitor module detects a malfunction and stores a DTC.”
Basically, there’s a resistor in the battery pack. The battery ECU checks to see if it’s the right value and if it’s not, Honda wants you to replace the battery pack. Why bother? I don’t know. Maybe it’s a low-budget attempt at serialization ala Apple and John Deer? They engineered the world’s worst hybrid battery pack and then maybe they got grumpy when nobody bought replacements from them? The ink jet printer business model had failed them, but never again. Ok. I’m done teasing Honda.
P0A7F – Hybrid battery pack deterioration
P0A7F is the other SAE hybrid battery code. What’s the difference between P0A7F and P0A80? Once again, it depends on the make of the car. P0A7F is a generic code, and the individual manufacturers can decide what conditions should cause it to set.
I was trying to remember last time I had seen a P0A7F on a Toyota. P0A80 and P30xx are far more common. A quick search of our database did reveal two Gen2 Priuses that had a P0A7F stored, but both also had a P0A80.
Toyota’s description of the P0A7F monitor sounds pretty much identical to the monitor for P0A80. The only difference is that they talk about internal resistance of the battery blocks rather than the voltage of the battery blocks. In my mind this isn’t much of a distinction.
The sensors monitored for P0A7F are block voltages and the current sensor. There is no “internal resistance sensor.” Resistance is determined with block voltages, current flow, Ohm’s law, and computing. Voltage for P0A80 and P30xx is monitored using the same sensors.
Whatever the difference is between P0A7F and P0A80/P30xx, it’s all in the battery ECU’s mind. It could be the P0A7F is a milder version of a P0A80. P0A80 requires a block voltage difference of over a volt. It may be the P0A7F will set under load with less of a voltage difference. Since it sets so infrequently on Toyota, I may never get the chance to find out.
Honda hybrids frequently set P0A7F, along with P1443, P1447, P1449, P144A, P1DC7.
On older Honda models, the service information states that P0A7F sets when the battery capacity has decreased below an acceptable threshold. No real details are given other than the ECU is monitoring the pack voltage and current to make this determination. That makes sense though. Draining a battery while monitoring voltage is how a battery’s capacity is determined.
On newer Hondas like the Insight, the service information says P0A7F is just a generic code and will set along with P144A and P1DC7.
Hybrids don’t use their full battery capacity. By not fully cycling the battery the battery will last longer. This is important to know when trying to understand the P144A chart to the right.
I actually really do appreciate Honda for including this kind of information in their advanced diagnostics section. It’s nice to have an idea of what the ECU is looking for.
Honda P1DC7 is like a combination of P31xx and Toyota’s version of P0A80. The battery ECU monitors block voltages under load and charge. If a block is excessively low under load or high under charge, the ECU knows that the block is weak.
This chart and additional information can be found in the advanced diagnostics in Honda service information.
Hybrid battery specialists in Berkeley
If you’re looking for a hybrid repair shop with expertise in hybrid battery diagnosis and hybrid battery pack replacement and live near our Berkeley location, please give us a call.
Otherwise, I hope you found this information useful and that helps you understand what might have caused your P0A80.