Prius 1st gen – P3101 & P3191 part 2

TSB EG011-03 – Part 2

This story continues here: Part 3!

This page documents our second battle with a first generation Prius with codes P3191 & P3101 (gas engine did not start). The first time we saw these codes, our journey down the flow chart ended in, “car ran out of gas, inform customer”. It seems like resetting the fuel level inclination sensor and filling the tank did the trick, since the car has been OK for the last 5 months.

This 2001 Prius, however, apparently did not run out of gas and, unfortunately, whatever caused the engine not to start had “fixed itself”, at least temporarily.

On a non-hybrid car, if the engine doesn’t start right away when the engine cranks, the driver will usually think, “hmm, that’s odd”, and try again. If it starts on the next try, the driver will usually ignore the problem unless it becomes frequent or won’t start at all. On a Prius, if the gas engine doesn’t start within the time allotted by the computers, the Master Warning triangle / exclamation point, the Hybrid Warning, and Check Engine lights will all come on, but the car will continue to drive (sluggishly), for a while. I think it’s fair to say the Prius’s barrage of warning lights, including the enormous warning triangle, will freak the driver out a little more than is necessary. In both cases we’ve seen, the warning lights went out and the car drove fine once the key was turned off, then back on again. Therefore, we recommend cycling the key if you find yourself on the side of the road looking at the scary warning triangle. If the light is off, drive it in. If the light comes back on, call for a tow. Anyway, on with the story…

When the internal combustion engine does not start, codes are set in the engine control computer, the hybrid vehicle computer, and the ABS computer. Even the cruise control computer gets into the act, giving a duplicate of the HV ECU’s code. By the way, if you’re going to work on a Prius, it’s pretty much mandatory you use a Toyota scan tool; a generic OBDII scanner will waste a lot of your time and your customer’s money. If you don’t want to spend a lot of money on a soon to be obsolete 16 year old scanner design, you can buy one used on EBay (figure $1000-$3000, depending on condition & luck), then buy the latest Toyota software card here for about $400. You’ll also need the CAN adapter (another $1000) if you plan to work on the 2nd generation Prius.

The ICE ECU (internal combustion engine electronic control unit) sets a P3191, engine does not start. P3191 basically means the engine does not start while “start mode” is active (think of cranking the engine on a conventional car). P3190 basically means the engine loses power or dies once it is already running (think stalls or bogs when driving).

The HV ECU (hybrid vehicle electronic control unit) sets a P3101, engine system malfunction. The ABS ECU (anti-lock brake system ECU) sets a C1259, HV system regen malfunction. And the CCS ECU (cruise control system) says, “me too” with a P3101 code. The TSB says to chase down any other codes before beginning to work on the P3191 & P3101; however, there is no need to look into the ABS’s C1259, as it is caused by ICE failing to start.

The first step in the flow chart is to check all the basics: air, fuel, spark, timing, and compression. Since the engine starts and runs fine now, we’ll move step one to the end of the list, since it’s likely to be fruitless. We decide to check to see if this Prius thinks it ran out of gas first. Information 2 = 205, so we scroll down and select it.

Here’s the information 2 = 205 freeze frame data. We’ll need the MG1 torque value later, but for now we scroll down to see…..

Exclusive info 3 = 0. This means this Prius did not think it ran out of gas. If exclusive info 3 had been equal to 1, that would mean it thought it did run out of gas.

The next step is to check the Circuit Opening Relay. The TSB refers you to the factory manual for the procedure. The procedure is to check for “continuity” on the coil side of the relay (although an actual resistance spec or amp spec would be more helpful). I found 109.3 ohms, which seems about normal. Next they have you check the switched side of the relay with the relay unenergized. Since the relay is “normally open”, the spec is “no continuity”. After that they have you energize the relay by applying voltage to terminals 1 & 2 (positive to 1 & negative to 2), then check across terminals 3 & 5 for “continuity”. After zeroing my ohmmeter, I came up with 0.1 ohms. I figure it might drop a volt or so under load, but that ought not cause a no start.

Next step is to check fuel pressure. The spec is 44 – 50 PSI. This one has 48 PSI, which is just right. Fuel pressure can vary while driving if there is a volume or flow restriction, so we drove the car hard with a cold engine, since high load with a cold engine requires the highest volume of fuel. The fuel pressure stayed steady at 48 PSI throughout the test drive. We also checked for fuel pressure bleed down with the engine off. There is a check valve in the fuel pump that holds pressure and fuel in the line so fuel will be immediately available at the injectors when the car is started. The spec is greater than 0 PSI after 5 minutes. This car dropped to 43 PSI the moment it shut off, but held it for 10 minutes without losing any pressure at all. The check valve could stick at times, but it didn’t while we were testing it. On to the next step…

Next the TSB asks us to check the ICE coolant temp and the MG1 Torque value. If the MG1 torque value is 0Nm or negative, *AND* the ICE coolant temp is between 14 deg. F and 50 deg. F, they say to replace the ICE ECU. The coolant temp on this Prius does not meet the criteria for replacing the ICE ECU, and the flow chart has ended.

On the now obsolete TSB EG012-02, the procedure is the same, but the flow chart ends with replace the ICE ECU. There is no mention of checking the ICE coolant temp or the MG1 torque value. Presumably the engineers at Toyota had good reason for changing the procedure — like expensive ECUs were being replaced but not fixing the problem. Even though we’re only 15 degrees away from a go ahead to replace the ECU, I’m not going to second guess the engineers since they have access to far more information than I do.

We’ve finished the flow chart and have no answer. But wait, what about the skipped step #1: check the basics. Well hey, why not? It certainly won’t make things any more NOT fixed, and I’d really like to fix this car since it’s been to a dealer twice without cure. Fixing it would make me the hero and I’d get to strut around the shop with a swollen head for a day or two — that is, until I screwed something up and had to go back to being humble 🙂

We started with the compression. I’ve been guilty of checking everything else two or three times before finding that low, but even, compression is causing a crank / no start with a cold engine. It’s such an uncommon problem that it’s usually a test better left skipped. Just for the heck of it, I check it first today, since it’s at the top of Toyota’s list of basic checks. Most Toyotas have compression specs around 175 PSI. As a general rule of thumb, compression of 100 PSI or lower will often cause misfires at idle or a crank / no start with a cold engine. Uh oh! Look at the gauge!

Could a Prius with 100K really have a bad engine? A quick trip to TIS for the compression spec reveals the Prius is not like most Toyotas. The spec is 108 PSI. This Prius was OK. The Prius can crank the engine @ 1200 RPM, unlike most cars, which crank @ 400 RPM. The Prius also does not have to idle. Low compression is a design feature, not a problem.

Next on Toyota’s list of basic checks is the ignition system. Since I’m breaking with my normal M.O., and actually following the instructions, I check this next. The igniters are housed above the coil packs, which sit directly atop the spark plugs. Since the igniters need to be shielded from the “noise” generated by the coils, it’s very hard to pick up a secondary ignition signal on a scope with an inductive lead. Since the igniter is fused to the coil, there is no access to the primary ignition signal either. So how do you check the ignition system? Visually I guess. There is no sign of carbon tracking on the boots or coils. All of the electrode springs are in place. All of the connectors look OK and are firmly seated. Time to move on….

The spark plugs look brand spankin’ new. They are not 100K old like the rest of the car. They might have been replaced in a previous attempt to fix this problem, or perhaps during a late 60K maintenance. Since the plugs are out, we put some anti-seize on the threads. The interval on the plugs is at 60K miles. That’s plenty of time for them to seize in the head. A dab of anti-seize takes just a second and can save you from major headaches later.

Some mechanics argue against the use of anti-seize because it will have a slight effect on the real torque value of the plugs. Others claim it somehow negatively affects the heat transfer. To them I say, that’s a bunch of hooey. What were we doing? Oh yeah, trying to fix a Prius. We’d better get back to that….

This is really a cool feature. If you need to check computer inputs and outputs, there is no better place than right at the computer. However, on many cars the computer is so hard to get to, mechanics will settle for testing each input or output under the hood. This Prius has the best setup ever! The computer is right behind the glovebox, and the glove box can be made to flip out of the way with out using a single tool. The small knob in the foreground will rotate 90 degrees to unlock, then it can be pulled in to the glovebox, which allows the glove box to flip down and out of the way.

The only downside to this setup is the contents of the glovebox are dumped all over the floor when it flips down, so you’ll have to spend a little extra time to pick your customer’s maps and ketchup packets off the floor. Still, it’s a whole lot better than having to remove a center console or seat to access the ECU!

Ok. Now that we have the ICE ECU exposed, what should we check. Well, in order for the engine to start, the computer needs to know the engine is spinning and it needs to have a pretty good idea of the temperature of the air and the engine coolant. Then the computer will need to provide signals the the coils and injectors so they can create spark and inject fuel respectively. The ICE ECU monitors and controls a lot more than the items I just listed, but it should start and run with just those basics. The IAT (intake air temperature) sensor and the CTS (coolant temperature sensor) are easy enough to check with the scan tool. With a cold engine they should read about the same as the outside air temperature. I already know from the freeze frame data that IAT on CTS were both close enough to each other that the engine ought to have started. My hope is that we’ll uncover some marginal signals when checking the

These are captures from an oscilloscope, colloquially know as a “scope”. A scope produces a graphical representation of voltage over time. Voltage is represented of the vertical axis, and time on the horizontal axis. These are the NE+ (crank position sensor) and G2 (cam position sensor). NE+ is on top, and G2 is on the bottom. I was hoping that I might find one of these signals was weak (lacking amplitude), but they both look fine. Toyota actually has wave form examples available on the TIS (Technical Information System) website. This is handy if you don’t know what the signal should look like.

This is the IGT signal. Now that the computer knows the engine is spinning and its position in its rotation from looking at the NE+ & G2, the IGT signal tells the igniter to break the ground on the primary side of the coil and create a spark for the cylinder on the compression stroke. Since there are 4 cylinders and 4 individual coils on the Prius, there are 4 IGT outputs from the computer: IGT1, IGT2, IGT3, & IGT4

This is the IGF signal. Once the igniter breaks the ground to the coil, it sends a signal back to the computer to say, “hey, I broke the ground to the coil”. Back and forth it goes. IGT to IGF: “fire the coil”. IGF to IGT: “OK, I fired the coil”. If the igniter develops a problem, and misses a few beats, the hope is there will be a code stored to help the mechanic diagnose the problem. If the computer sees no spark for a time, it will probably cut the injector pulse to prevent unburned fuel from washing the oil from the cylinder wall and to prevent damage to the converter. I don’t know this happens on the Prius for a fact yet, but many DIS cars are designed that way. Speaking of injectors …

So now we know the signals related to spark are OK, we want to check the injector output. The basic inputs to start the injector injecting are the G2 & NE+. There are many other inputs that will affect the duration of fuel spray, but the injectors should fire with just the G2 & NE+ (or so I hope). The pattern above looks slightly different than the example on TIS, but it looks exactly the same as the other 3 injectors, so it’s a pretty safe bet it’s OK.

Actually, the G2 waveform was a little different than the example on TIS too: the TIS example showed a true sawtooth pattern with sharp points, whereas the actual pattern is more of a cross between a sine wave and a sawtooth. Since the signal is created with a magnetic reluctance sensor, rather than digitally, I’m pretty sure that it’s should look like it does.

Well, what to do? The symptoms are in remission, so we can’t find the cause today. The TSB points to 3 possible replacement parts, presumably because these three have been found to fail frequently in the real world and are now identified as “pattern” problems. But it could also be that the engineers are just convinced these three parts are the most likely causes and there’s no history of frequent failure. The ICE ECU and the fuel pump (which comes with an entire fuel tank) are far from cheap.

The relay, however, is a relative bargain at $63.08 and about 20 seconds of installation time. Why not give it a try? The relay has been superseded. The old part number is 90080-02012. The new number is 90080-87026. This could indicate a change in design to combat premature failure, or it could also just mean Toyota switched suppliers on a whim. I’m installing the relay, crossing my fingers, and hoping it’s the former.

UPDATE 09/10/07: I received a call from a knowlegeable Toyota tech who said that the problem in this case would most likely be corrected by the updated ECU. He said that when the freeze frame data indicates a cold engine, the ECU is the most likely culprit. The engine temp does not need to be below 50 degrees as stated in the TSB, just as long as it’s room temperature.

He says he’s compared the injector pulse width on the updated ECU against the injector pulse width on the original ECU under similar cold conditions, and the updated ECU has a narrower pulse width (leaner) than the original. It’s fairly rare for a rich condition to cause a no start, because a cold engine will be far more tolerant of a rich mixture than a lean mixture, but it can happen. I’ve seen many rich no starts on Hondas with bad coolant temperature sensors for instance.

This story continues here: Part 3!