Case Study: Prius I, P3001 and P3009

A customer, a used car sales company actually, came to us with a problem Prius. Another shop had installed a replacement Dorman hybrid vehicle battery. (Dorman is an aftermarket car parts manufacturer that bought out Re-Involt in North Carolina. We have installed many of their batteries; I have one in my car, in fact. We’ve had to replace a maybe two under their three-year warranty, but we’ve generally had positive experience with them.) The first battery they installed indicated cells out of balance, so they requested a warranty battery from Dorman and installed that one.

And that’s when the car came to us. It initially had many hybrid battery trouble codes along with an inverter/converter trouble code. After clearing the codes the only ones that reset were P3001 which indicates a bad battery ECU (electronic control unit), and P3009 which indicates a high voltage leak, i.e. a fault in the insulation. If I cleared the codes while the car was running only P3009 set again. But if I turned the car off and then back on P3001 would set again, too.

I did not think that there was much chance of the P3009 causing the P3001. We have seen plenty of high voltage leaks without any indication of a problem with the battery ECU. And we have seen P3001 on its own a few times. It didn’t seem like the most likely scenario, but I decided to go ahead with troubleshooting for the high voltage leak. Otherwise we would just be waiting for Dorman to ship another battery from across the country while this car clogged our little parking lot.

Any tech familiar with P3009 knows that there is one very easy test to do before anything else: Clear the code, turn the key on without starting the car, wait for 1 minute and see if the code resets. If the code resets then you know that the insulation fault is inside the battery pack because the SMRs (system main relays, aka contactors) still have the battery isolated from the rest of the car in this state. If the code only resets after the car has been started (i.e. the SMRs are closed), then the high voltage leak is elsewhere, like the inverter/converter, motor generators or frame wires. The codes on this car would only reset after the car had been turned on.

The procedure for tracking down a high voltage leak is pretty straight forward. You simply apply 500V (using a Megohmeter) to the various suspect circuits until you find a resistance that’s below spec (100 kOhms). Of course you have to separate all the circuits to determine which one is the culprit. And before exposing anything related to the high voltage system you have to follow safety precautions of disconnecting the 12V battery, removing the hybrid vehicle battery service plug and waiting 5 minutes to ensure the inverter capacitor is discharged.

Long story short less long: I didn’t find any insulation faults.

I dread the notion of this car sitting here for weeks, hanging over my head while I wait for a new battery… So I contacted Dorman and asked if I could open up their battery which would normally void the warranty and swap in a known good battery ECU. They approved, but I unfortunately did not have a battery ECU just laying around… So I got it out of my car. Hopefully there’s not some condition in this car that’s causing battery ECUs to fail! But I was pretty confident that this would fix it and Dorman would instead just send a new battery ECU (2 lbs) versus an entire battery (90 lbs via freight).

Are you still reading? If so, you’ve probably noticed that you still have quite a ways to go. So you’ve probably deduced that my generous ECU transplant did not do the trick. You are correct. The car had the exact same symptoms with my known good ECU. P3001 is a lie. A LIE, I tell you!

I had already inspected the wire harnesses up to the dash to verify there wasn’t any obvious damage; I think I would have noticed if someone had gotten into the loom for any reason. Could it be possible that someone had taken the pins out of the connectors that go into the battery ECU and put them back in incorrectly. It was certainly possible– unlikely as all get out– but what’s the other option? Not fix this car? Not an option. I pulled out the wiring diagram and started verifying every wire was in its correct socket. And they all were. And all the grounds were grounded and all the powers had power. (Oddly enough, though the voltages to the SMRs were around +11.9V and -11.9V. Pretty much everything on the 12V system runs on +12V to ground (0V). I’m unaccustomed to seeing negative voltages in a car, but I think it’s correct in this instance.) (Also, there’s something in the wiring diagram called the battery input relay, but this is just a connector taped to a wire harness– maybe it’s used during manufacturing…)

So I decided to go back to making observations. Clearing the codes, seeing how long it took to reset, what was happening while it reset, what the live data looked like…

As I sat in the driver’s seat with the laptop scan tool, starting, turning off and restarting the car several times, I noticed occasional clicking. It came from the direction of the battery. But I could hear the SMRs on start up, and they were a bit louder, and if they were opening and closing there would be other indications of that. It was like a quiet turn signal, but not nearly so consistent; four clicks here, a pause, three clicks, nothing for awhile. The battery cooling fan would come on occasionally, too, but it was hard to tell if it was related.

I left the driver’s seat to see if my ears could locate this clicking with some change in perspective. Kneeling behind the car with my head in the trunk I heard the clicking on the left side, and I reached behind the sheet metal of the body, following an inconspicuous branch of a wire harness and found the little clicking box, only a tiny white clip poking through a hole in the sheet metal to hold it in place. It was a relay. I looked at the wire colors and found it on the wiring diagram as the battery cooling fan relay. I had expected that it was in some sort of fuse panel situation like most other respectable relays.

Okay, so the battery cooling fan relay seems to have a very volatile personality at the moment. Is it the relay’s fault, or is the ECU telling it to switch on and off all the time? I checked voltages. It was the ECU that couldn’t decide whether it wanted the fan on or off. (There’s also a motor controller just for my obfuscation, so it’s not as if the fan clicks on lock-step with the relay clicking.)

So why would the ECU, a known good ECU (or at least one the had been very recently destroyed), keep turning the fan on and off? Why would the ECU turn the fan on and off? Why would the fan think it was too hot one minute and not too hot the next? Finkle and Einhorn. Finkle and Einhorn…

The temperature sensors! Finkle is Einhorn!

I went back to the scan tool. Battery ECU > Live data. There it was: temperature data. All of them around 86 degrees F. Wait, that looks normal. (“Sure, you can have that kind of surgery done over a weekend!”) I changed the data list to view only the temperature data and nothing else. This increases the refresh rate. And there it was: The temperatures would flicker all over the place. All of them. Usually reading correct temperatures, but occasionally showing 20, 121, -15, 30…

I pulled the temperature sensor wire harness from my car and swapped it over to the problem car.  I didn’t bother placing all the sensors exactly they belonged; I just plugged it in and put the battery cover back on sufficiently to be safe and started up the car.

The trouble codes had set after about 15 seconds previously, and I was well past that, feeling pretty good about having solved this problem… But around the 1-minute mark, the master warning light turned on.  This time there was no warning chime and no MIL.  Only P3009 had set– high voltage leak… But that was the first code that I checked for, decided that all the insulation was okay, and figured the P3001 was causing the P3009.  Was I going to be chasing my tail on this one?

Yes.  I started to do the insulation tests again.  I verified that P3009 didn’t set with the key on/ready off.  I applied 500V to the frame wires from the end where they bolt to the battery assembly:  >550 MOhms on the first one, 50 MOhms on the second… Hmm, odd that they’re different, but still well within the specification… But wait… 0 Volts?  I must have not noticed that before.  It was giving me a reading of 50 MOhms, but it wasn’t able to hold even a volt on the circuit.  The other frame wire indicated 526 Volts.


I switched the meter from the insulation testing function to the regular ohmmeter function.  11 kOhms!  That’s way below the 100 kOhm spec!


I disconnected the frame wires from the inverter under the hood and retested the frame wires.  Now both were good, >550 MOhms at 526 Volts.  The problem must be in the inverter.

I was a bit frustrated at having had the cowl/windshield wipers removed and now reinstalled for getting at the inverter internals, so I took a short-cut and bent up a corner of a cover that is intended to prevent removal of the main inverter cover (which I previously had not had off because it’s not required to isolate the motor generators).

And the answer to this entire problem was staring me right in the face:


See it?  Here’s a close-up:


A bolt.  Someone had dropped it, I am almost certain, while they were installing the MG2 phases to the inverter.  They must have decided that it probably wouldn’t cause a problem, got another bolt and carried on handsomely.  But it was sitting in contact with the case and with one of the phases of MG2.  It’s surprising to me that it didn’t cause a much lower resistance than 11 kOhms.

I also found a component on the circuit board exploded and a few pieces laying around inside the case.




But with the bolt removed the car started and drove normally without setting and codes.  We advised the customer that it needed a new inverter, but if it was my car I would probably drive it until it showed some other symptoms.

Now back to putting my car back together…

As for P3001 and why it disappeared after I plugged in a different temperature sensor wire harness: I think that the low resistance somehow caused electromagnetic interference to be radiated back to the battery, and when the temperature sensor wire harness is fully installed it is stretched out in a straight line, like an antenna.  It may have been dumb luck that I left the wire harness in more of a clump than a line that caused me to continue my diagnosis in the right direction.  Looking back, it was a pretty thin wager that some damage to that wire harness would cause the symptoms that I was seeing, but EMI is a little bit too much like magic for me to be able to explain phenomena by it.  I’m not planning on doing any testing on that hypothesis– I’ve done enough with this one already.