What does the P0345 code mean for a Ford F150?

I’ve changed the timing chain, cam phasers, camshaft sensor, crankshaft sensor, and variable timing solenoid, but my 2004 F150 Lariat still isn’t running right. I can’t even drive it around the block.

Today, I checked all the wires and didn’t find any issues. I took it apart and double-checked the timing, but I’m stuck and don’t know what to do next. The only code that keeps showing up is 0345.

I’m open to any suggestions you might have.

3 Likes

The descriptions for the P0340 and P0345 codes are really confusing and misleading. They often lead people, including experienced mechanics, to look for problems with cam sensors or wiring that usually aren’t the issue, wasting time and money. Whoever wrote those descriptions needs to rethink them!

Here are some important points to consider: The Camshaft Position Sensors (CPS) are connected to the Powertrain Control Module (PCM) through a common signal circuit. This circuit allows the PCM to read signals from both CPS, as well as other sensors like the Power Steering Pressure Sensor and the MAF Sensor. If those other sensors are working fine, then a wiring issue is probably not the problem.

While electrical noise and shorts can affect the circuit, there are many mechanical reasons that are more likely to cause these codes, and those should be mentioned in the descriptions.

The P0340 and P0345 codes show up when the engine is cranking. The P0345 specifically means that the PCM didn’t see the expected signal from the Bank 2 CPS sensor. During cranking, the phaser should be locked in place, but there’s no oil pressure yet to hold it. If the PCM detects that the phaser isn’t positioned correctly when cranking, it triggers the code. Issues like a dragging starter or a weak battery could also lead to these codes, but they’re usually due to mechanical problems.

After the engine starts, the oil pressure should hold the phaser in place. If the same issue happens then, you would see codes P0344 or P0349, indicating that the proper signal isn’t being sensed.

The main difference between the P0340/P0345 codes and the P0344/P0349 codes is when they occur—during cranking versus after startup. If the timing chain is off by a tooth or the locking pin in the phaser is worn out, it can lead to the first two codes. If you’ve recently changed timing components, a bad phaser could also be the issue, especially if it’s an inexpensive aftermarket part.

So, don’t get too caught up in thinking it’s a wiring problem!

1 Like

Wow, Jonathan, you’ve given me a lot to think about. Unfortunately, I’m still having major problems. Since my last update, a new code has come up: P0171, along with the P0345. I’ve replaced the IMRC, intake gaskets, fuel injector O-rings, fuel filter, MAF sensor, and I even used Sea Foam to clean everything out. The truck is rough idling, has no power, stalls, and smells like exhaust.

A couple of days ago, I ran an OBD11 scan and got about five codes. I cleared them, waited a bit, and checked again. I only got back to the P0171 and P0345. This is making me think I might need a new computer if it’s showing random codes.

Before the timing issue, it was only slightly hesitating and had a rough start until the timing chain blew a hole in the valve cover on the highway. I feel like it must be something simple that I just can’t see. I feel like I’ve replaced everything obvious. It’s been months of working on this truck during nights and weekends, and I’m not making any progress.

Please, don’t let this situation mess with your logical thinking just because of one confusing DTC description that isn’t helpful for diagnosing the problem.

Your computer isn’t throwing random codes. The P0171 code makes sense when you consider the real mechanical cause of the P0345 code, which isn’t just some electrical issue. If you can stick with me for another detailed explanation, I think it’ll help.

The fact that the P0171 (lean condition on Bank 1) took a while to show up is important. Look at how P0171 relates to the timing codes, especially since P0345 shows up at startup. If the cam is retarded, it opens the valves later, which means less air gets into the cylinder. This is a big clue, especially since the lean code is on Bank 1 and the timing code is on Bank 2. The lean condition on Bank 1 suggests that the timing on Bank 2 is off. The PCM adjusts the fuel injectors based on the air-fuel ratio, and a retarded cam on one bank leads to less air, requiring more fuel on the other bank. When the fuel trims go above certain limits, the PCM sets the lean code.

In my previous message, I listed four possible causes for your P0345: a bad phaser, a failed locking pin, a bent phaser finger, or the timing being off by a tooth or two. The appearance of the P0171 code makes it more likely that the timing is just off by a notch rather than being a startup issue. The rough idle could mean lower compression in several cylinders due to less air coming in.

Since you’ve done a lot of repairs, there might be other issues to check first. For the lean code, use your OBDII reader to monitor short-term fuel trim (STFT) on Bank 1. While idling, use an unlit propane torch to check for leaks around the intake manifold and injectors. If you find a leak, the fuel trims will drop quickly.

It would also be helpful to know any other codes you’ve seen, as they might give more clues.

Regarding the timing parts, did you use Ford OEM parts or cheaper aftermarket ones? There are good videos by FordTechMakuloco about checking for bent phaser fingers during installation.

If you determine the P0171 isn’t due to a vacuum leak, then you might need to remove the valve cover on Bank 2 to check for a bent finger, though I doubt that’s the issue given the lean code.

Unfortunately, you can’t confirm if the timing marks are off without a full teardown or professional equipment.

If you’re using Torque Pro, we might be able to gather some useful information, but it may not be definitive.

Good luck, and don’t replace the computer just yet!

I’m assuming you’ve already changed the valve cover and timing cover gaskets. Did you use sealant where it’s recommended? I would also replace the oil pan gasket. I suggest this because the engine’s ventilation system keeps the inside at negative pressure. If any gasket is bad, it can let in unmetered air, which can make the engine run rough.

Have a 2010 F150 with the 4.6. It’s working unbelievably well, but throwing the po345 code. Replaced both CPS’s. even switched them and still getting the code on bank 2.

Believe it or not, I still can’t get the truck running right. I’ve done a complete timing job (including phasers), replaced the camshaft, crankshaft, and MAF sensors, changed the intake and fuel injector gaskets, fuel filter, IMRC, and spark plugs, and I even ran Sea Foam through it. I’m now using 10W40 oil, but I can’t get rid of the P0022 code. It’s running rough and throwing a couple of misfire codes after I drive it for a bit. However, it still has power when I press the pedal.

I checked the timing chain again and found that one of the new phasers was falling apart. I replaced that, and now the truck idles a bit better, but it still runs shaky. I’ve thought about buying a new engine, but I can’t afford that. Any ideas from you would be really appreciated.

Someone needs to really go after whoever wrote the DTC trouble code description for this code. Maybe you’re the one to do it! The PCM checks the CPS sensor at a specific moment while cranking to figure out when to fire the coil on cylinder one and to establish the correct timing starting from cylinder one at TDC.

If you look at the engine performance wiring diagram, you’ll see that the CPS sensor is on a circuit with several other sensors, including things like the power steering pressure switch. The PCM polls the CPS sensor when it detects a missing tooth on the crankshaft tone ring, which means piston one should be at TDC. It then looks for the fifth finger on the phaser to pass by the CPS sensor. If it doesn’t see it, we’re on the exhaust stroke of the cycle—no problem, unless it doesn’t see it on the next turn.

If the PCM still doesn’t see it, that means the cam is not at the correct base timing (zero degrees retard). This can only happen if the cam phaser locking pin isn’t properly locked at base timing or if there’s some kind of electrical issue. Unfortunately, the only problem mentioned for DTC code P0345 is the electrical one, and most people assume the sensor is faulty instead of realizing the phaser isn’t locking at zero degrees on shutdown.