P0320 is a relatively common ignition-related trouble code. P0320 indicates that your Fiat 500’s ignition/distributor engine speed circuit is malfunctioning.
P0320 is most likely caused by the engine speed sensor, or a wiring issue.
P0320 Definition: Ignition/Distributor Engine Speed – Input Circuit
Nearly all modern vehicles, including the Fiat 500, use individual coil packs which are controlled by the PCM (Powertrain Control Module) and not a distributor (which fired all of the plugs from a centralized location).
Your 500’s PCM uses data from the engine speed sensor to determine when to fire each individual cylinder. Depending on the year and engine type, the engine speed sensor can be a camshaft position sensor, crank position sensor, pickup coil sensor, or even a sensor to verify when the coil has fired.
If whichever one of these sensors that controls your ignition timing has malfunctioned, it can leave the PCM struggling to fire the plugs at the right time, and P0320 will be stored in your Fiat 500’s memory.
Fiat 500: P0320 Symptoms
Here are the most common symptoms associated with P0320:
- Check Engine Light
- No Start/Hard Start
Fiat 500 P0320 Causes & Diagnosis
This code is most likely going to be caused by a wiring issue related to the Crank/Cam sensors. Or, one of those sensors will be bad. Here’s a solid order of operations to diagnose P0320 in the Fiat 500:
Check for Other Codes and TSB’s
If there are other codes related to the crank or cam sensors, it can help you narrow down the potential cause of P0320 in your 500. For example, if you had something like P0336, that would indicate the crank sensor has a performance/range problem.
Technical Service Bulletins are used by Fiat to communicate common known problems to repair professionals, they can be found on the NHTSA website. TSB’s are created on a year-by-year basis, but you can search by your 500’s VIN number.
Check the Ignition Wiring
You’re going to want to inspect your ignition system-related wiring harness for cracked, burnt, loose, or otherwise damaged wiring.
Check the wiring going to the crank and camshaft sensors. Follow it to the PCM. Since P0320 indicates that there is a problem with the signal coming from your 500’s engine speed sensor input, the wiring issue should be BEFORE the harness for the crank and/or cam sensors enter the PCM.
If that wiring checks out, look at the harness going to the coil packs from the PCM. Make sure that it has a solid ground connection. In some instances, it can throw P0320 if it can’t report back to the PCM that the coil packs fired at the correct time.
Look for all the ground points in the harness under the hood and make sure that they appear to be clean and corrosion-free.
Test the Engine Speed Sensor(s)
Next up you’ll want to test the actual engine speed sensor in your vehicle. Depending on the year and engine combo on your 500 it can be the:
- Crankshaft Sensor
- Camshaft Sensor
- Pick-up Coil Sensor (distributor only)
- Coil Sensor Wire
The crank and cam sensors are the most common type of engine speed sensor in a modern vehicle. Here’s a solid video that explains how to test them:
If the wiring going to the engine speed sensor is good, and the engine speed sensor itself tested fine, then you may suspect your 500’s PCM. Just keep in mind that it is rarely the cause of P0320.
The fix for P0320 is most often the engine speed sensor itself. Taking the time to look over your Fiat 500’s the wiring harness before committing to a new sensor can save you a lot of time and money.