P0315 – Crankshaft position system -variation not learned

Reinier

By Reinier (Contact Me)
Last Updated 2018-07-30
Automobile Repair Shop Owner

Trouble CodeFault LocationProbable Cause
P0315 Crankshaft position system -variation not learned Engine mechanical fault, wiring

We recommend Torque Pro

What Does Code P0315 Mean?

OBD II fault code P0315 is a generic code that is defined as “Crankshaft position system – variation not learned”, and is set when the PCM (Powertrain Control Module) detects a variation between the actual and stored crankshaft position reference points that exceeds either a specified limit, or when the manufacturers’ prescribed crankshaft variation relearning procedure has not been performed after completing some types of repairs/maintenance procedures.

All spark ignition engines use a dedicated crankshaft position sensor that works in conjunction with a toothed reluctor ring to determine the position of cylinder #1 relative to a fixed reference point on the reluctor ring. Depending on the manufacturer, the position of the crankshaft is used to calculate three things: the first being ignition timing, the second being the ignition and injection timing, and the third being misfire detection.

As a practical matter, a reluctor ring has teeth that interrupt a magnetic field when the teeth pass in front of sensor that generates the magnetic field. However, all reluctor rings have a single spot where the distance between the teeth is double the distance between all other teeth, and it this spot that the PCM recognizes as a reference point.

In practice, the wider gap of the reference point creates a signal that is different from the signals that are created when teeth that are spaced closer together pass in front of the sensor. Thus, as the reluctor ring rotates at engine speed at start-up, the PCM waits for the reference point to pass in front of the crankshaft position sensor (which the PCM interprets as the position of cylinder #1), before initiating an ignition spark and on some applications, a fuel injection pulse to cylinder #1.

If both the spark and the injection pulse occur at precisely the right moment, the engine starts normally. However, if a slight variation exists between the actual reference point and the reference point stored in the PCM, the engine may still start, but it may misfire, or run with a fluctuating, rough, or erratic idling speed or it may not start at all, depending on the extent of the variation between the actual stored reference points.

It should be noted that not many things can cause a variation between the actual and stored reference points during normal engine operation. However, when the battery is disconnected on most, if not all applications, the PCM’s KAM (Keep Alive Memory) that stores basic programming such as the crankshaft reference position, idling speed, and other information can be lost, and a prescribed relearning procedure must be performed to restore this programming. If this is not done, or not done correctly, the PCM will set code P0315, either as an active or a pending code, depending on the application. The PCM may also illuminate a warning light if P0315 is set as an active code.

Where is the P0315 sensor located?

The image above shows the location of the crankshaft position sensor and reluctor ring behind the plastic timing cover (not shown here) on a Toyota application. Note that in cases where the crankshaft position sensor is located behind the timing cover, it may be necessary to remove and/or disassemble several unrelated parts/components such as drive belts, A/C hoses, and power steering pumps/hoses/brackets to gain access to the sensor.

It must be noted that the location of reluctor rings and crankshaft position sensors vary greatly between applications and manufacturers. Although these components are most commonly located behind the harmonic balancer (crankshaft pulley), in some cases the reluctor ring may be located inside the engine, or may even be part of the flywheel/flex plate, meaning that the crankshaft position sensor can be located somewhere on the engine block, or sometimes, in the bell housing between the engine and transmission.

For this reason, it is important always to refer to the manual for the affected application to locate and identify the crankshaft position sensor correctly to avoid confusion, misdiagnoses, and the unnecessary replacement of parts and components.

What are the common causes of code P0315 ?

Some common causes of code P0315 could include the following-

  • Disconnecting the battery without using a memory saving device
  • Damaged, burnt, shorted, disconnected, or corroded wiring and/or connectors between the crankshaft position sensor and PCM
  • Defective crankshaft position sensor
  • Failure to perform the required relearning procedure, or failing to perform the relearning procedure correctly
  • Replacing the crankshaft position sensor with an unsuitable, or substandard aftermarket part
  • Replacing the PCM, or reprogramming the PCM with unauthorized, corrupted, or outdated software
  • Worn or incorrect installation of timing components, such as timing belts/chains/sprockets and/or timing belt/chain guides, tensioners, or idler pulleys/sprockets
  • Failed or failing PCM, but note that since is a rare event, the fault must be sought elsewhere before any control module is replaced

BAT Team Discussions for P0315

  • 98 Seville electrical problem and stalling
    Wow! Donations are great! Without them it's HIGHLY UNLIKELY this site would be able to continue for the benefit of us al... and we're always glad to go the extra mile to help those who help this site. As for the stalling problem, if the engine is running fine - nice and smooth and all - and then j...
  • Caliber Cam sensor, which is which
    Thanks again for your efforts. Can to my shop with codes p0315,p0336,p0369,p0365,and p0335 set. Car had been doing some intermittent poor running. Cleared codes and a short time later codes p0336 and p0369 came back. Looked things over and things looked good on a visual inspection, so cleared what ...
  • Starter diagra
    [SIZE=7][B]Pontiac U0109 Lost Communication With Fuel Pump Control Module[/B] [B]And your "pee" codes follow.[/B][/SIZE] [SIZE=5][B]P2078 code definition[/B][/SIZE] Intake Manifold Tuning (IMT) Valve Position Sensor/Switch Circuit High [SIZE=5][B]What the P2078 code means[/B][/SIZE] This code will s...