A spark-ignition engine only makes power if every cylinder gets a strong spark at exactly the right moment. Modern ignition systems leave that job entirely to the ECU: it decides how long to charge each coil, when to fire it, and whether the combustion that followed actually happened. This guide walks through coil-on-plug hardware, dwell and timing control, how the ECU detects misfires from crankshaft speed, and how to diagnose the P0300 and ignition-coil code families on cars, motorcycles, gas trucks and small agricultural or utility engines.

From distributor to coil-on-plug

Older engines used one coil and a mechanical distributor to route high voltage to each plug. Wasted-spark systems then paired cylinders on a double-ended coil, firing both plugs at once (one on compression, one on exhaust). Today most engines use coil-on-plug (COP): a dedicated coil sits directly on each spark plug, removing plug leads and letting the ECU control every cylinder individually.

Each coil is a small transformer. The primary winding has relatively few turns and is fed from the battery or ignition supply. The secondary winding has many more turns and connects to the plug. A switching transistor, typically an IGBT, grounds the primary. It may sit inside the ECU or inside the coil itself (a “smart” coil with an integrated driver that only needs a low-current trigger signal).

Dwell: charging the coil

When the driver switches on, current builds up in the primary and stores energy in the coil’s magnetic field. The time the driver stays on is called dwell. When the driver switches off, the field collapses, the secondary produces a high-voltage pulse, and the spark jumps the plug gap.

The ECU calculates dwell from a map, mainly against battery voltage and engine speed. At low voltage (cranking) current rises more slowly, so dwell gets longer. At high rpm there is less time between events, so the ECU has to balance spark energy against available time. Too little dwell gives a weak spark and misfires under load; too much overheats the coil and driver. Dwell values are calibration-specific, so always use OEM data rather than “typical” numbers.

Concept waveform showing ignition driver command, primary current ramp during dwell and spark at the advance angle before TDC
Dwell, spark timing and primary current (simplified diagram)

Spark timing: when to fire

Dwell ends at the spark advance angle, the number of crank degrees before top dead centre at which the plug fires. The air-fuel mixture needs time to burn, so the ECU fires early enough for peak cylinder pressure to arrive shortly after TDC. Base advance comes from maps indexed by rpm and load (air mass or manifold pressure), then corrections are applied for coolant and intake air temperature, knock control, idle-speed control, torque reduction for gear shifts or traction control, and catalyst heating after a cold start.

The ECU knows where the crank is from the crankshaft position sensor (CKP) and which stroke each cylinder is on from the camshaft position sensor (CMP). Without valid sync it cannot schedule sequential sparks, which is why a crank sensor fault often stops the engine completely.

How the ECU detects a misfire

OBD regulations require continuous misfire monitoring on road vehicles. The most common method uses the same crank sensor. The ECU measures how long each cylinder’s firing segment of the reluctor wheel takes to pass. A healthy combustion stroke accelerates the crankshaft, so its segment is short. If a cylinder misfires, the crank slows and that segment takes longer.

Bar chart concept of crankshaft segment times where one cylinder shows longer segment time, illustrating ECU misfire detection
Misfire detection from crankshaft speed (simplified diagram)

The ECU counts these events per cylinder over a fixed number of revolutions and compares them with two kinds of threshold:

Rough roads, driveline shunt and flywheel tolerances can make the crank speed look uneven, so ECUs learn wheel variation (the “crank variation learn” behind P0315) and suspend detection on rough roads or during heavy deceleration. Some systems also sense ionisation current through the spark plug after the spark to confirm combustion directly.

Diagnosing misfires and coil faults

  1. Read freeze-frame data. Note rpm, load, coolant temperature and fuel trims when the misfire was recorded. Misfires only under load point toward ignition; misfires at idle with lean trims point toward air leaks or injectors.
  2. Use the misfire counters. Most scan tools show live per-cylinder counts (Mode $06 data on many vehicles). One cylinder repeating suggests a component on that cylinder; random misfires across all cylinders suggest something shared, such as fuel pressure, a vacuum leak, a MAF fault or low compression on several cylinders.
  3. Swap test. On COP engines, swap the coil (and then the plug) from the misfiring cylinder to another. If the misfire follows the part, you have found it. If it stays put, check the injector, compression and valve train.
  4. Inspect plugs and boots. Worn or wrongly gapped plugs need more voltage. Cracked boots and oil in the plug well let the spark track to ground, especially under boost.
  5. Coil circuit codes. P0351–P0362 and P2300-series codes mean the ECU has seen an electrical problem in the coil control circuit. Check power, ground and the trigger wire, and look for chafed harnesses before replacing the ECU.

Cars, bikes, gas trucks and machines

Passenger cars almost all use COP or smart coils. Motorcycles often use stick coils or twin-spark heads, and their high revs make dwell and plug condition critical. CNG and LNG trucks use spark ignition with high-energy coils, because gaseous fuel needs more ignition voltage. Small petrol engines on utility vehicles and garden or agricultural machinery may use magneto or simple inductive systems without misfire monitoring. Diesels have no spark, but many diesel ECUs use the same crank-speed analysis for cylinder balance and injector correction, and some report P030x codes as well.

Related fault codes (DTCs)

Generic SAE J2012 codes. Coil lettering, cylinder numbering and enabling conditions depend on the manufacturer, so confirm with service data.

CodeMeaningTypical causes
P0300Random/Multiple Cylinder Misfire DetectedVacuum leak, low fuel pressure, MAF fault, worn plugs on several cylinders, low compression
P0301–P0312Cylinder 1–12 Misfire DetectedFaulty coil or plug on that cylinder, injector fault, low compression, valve problem
P0313Misfire Detected with Low FuelFuel starvation at low tank level, weak pump pickup
P0314Single Cylinder Misfire (Cylinder Not Specified)Same causes as a cylinder-specific misfire; ECU could not identify the cylinder
P0315Crankshaft Position System Variation Not LearnedCrank variation relearn not done after ECU, sensor or flywheel replacement
P0316Engine Misfire Detected on Startup (First 1000 Revolutions)Fouled plugs, cold-start fuel delivery, coil weak at low voltage
P0320Ignition/Distributor Engine Speed Input CircuitSpeed signal wiring, failed sensor, interference
P0335Crankshaft Position Sensor “A” CircuitFailed CKP sensor, wiring, damaged reluctor wheel
P0350Ignition Coil Primary/Secondary CircuitCoil supply or control circuit fault
P0351–P0362Ignition Coil “A”–”L” Primary/Secondary CircuitOpen or shorted coil, broken trigger wire, poor connector, driver fault
P2300 / P2301Ignition Coil “A” Primary Control Circuit Low / HighControl wire shorted to ground / to voltage, internal coil fault
P2302Ignition Coil “A” Secondary CircuitCracked boot, carbon tracking, open secondary winding

The P2300–P2329 range repeats the same three-code pattern (control low, control high, secondary) for coils A to J.

What it means for tuning

More boost or load means denser charge, which needs higher ignition voltage to jump the plug gap. Before a Stage 1 or Stage 2 file, fit plugs in good condition at the correct gap and heat range, check coils and boots, and clear any misfire history. A good calibration keeps misfire monitoring and knock control active and adjusts advance carefully against knock-sensor feedback instead of chasing a number. If misfires appear only after a tune, look at plug gap and coil condition before blaming the file.

Want a remap built around healthy ignition and safe timing? Order your tuning file from ECUFileMarket.

Leave a Reply

Your email address will not be published. Required fields are marked *