What does it 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.