P0340 on 2003-2012 Saab 9-3 2.0T: Ignition Coil Causes and Fixes
On the Saab 9-3 2.0L B207 engine, P0340 is almost always caused by one or more faulty ignition coils, NOT a camshaft sensor. This engine uses the coils to determine cam position via ionization sensing. The fix is to replace the failed coil(s) with genuine OEM Mitsubishi-made parts (Part No. 12787707), costing around $90-$120 per coil. Using aftermarket coils is a common cause of repeat failures.
- P0340 on a Saab 9-3 2.0T does NOT mean you have a bad camshaft position sensor. This engine doesn't have one.
- The most likely cause is a faulty ignition coil. It is critical to use genuine OEM (Mitsubishi) coils for a lasting repair.
- Always check for oil in the spark plug tubes, as a leaking valve cover gasket is a common root cause of coil failure.
- Replace spark plugs with the correct NGK plugs at the same time for best results.
- This is a straightforward DIY job for most home mechanics, with a difficulty of 2 out of 5.
What's Unique About the 2003-2012 Saab 9-3

The Saab B207 engine's Trionic 8 system is unique. Unlike nearly all other modern engines that use a dedicated magnetic or hall-effect camshaft position sensor, this engine uses a sophisticated 'ionization sensing' feature built into its ignition coils. This system also eliminates the need for a separate knock sensor. This is why parts stores incorrectly list camshaft sensors for this model (they are for the 2.8L V6 version) and why the primary cause is almost always a faulty ignition coil, not a sensor that doesn't exist on this engine. Using cheap aftermarket coils often leads to repeat failures because they lack the precise electronics for this system to work correctly, a fact heavily corroborated by owner experiences.
Symptoms You May Notice
- Check Engine Light is on
- Engine is hard to start or cranks but won't start
- Rough idle or stalling
- Noticeable loss of power and poor acceleration
- Engine hesitation or misfiring
- Reduced or no turbo boost
- Engine runs rough, then smooths out, but the code remains
- Replacing the Camshaft Position Sensor. This is the most common misdiagnosis because the B207 2.0L Turbo engine does not have one. Parts stores often incorrectly list a sensor that is actually for the 2.8L V6 engine option or other GM vehicles.
Most Likely Causes

- Faulty Ignition Coil(s) 🔴 High Probability The B207 engine relies on special ignition coils with built-in ionization sensing to determine cam position. These coils are a known failure point, and aftermarket versions often lack the correct circuitry, leading to premature failure or immediate issues. Owners consistently report that only genuine Saab/Mitsubishi coils provide a lasting solution.
How to confirm: Use a scan tool to check for misfires in specific cylinders (e.g., P0301, P0302). Swap the suspected bad coil with a known good one from another cylinder. Clear the codes and run the engine. If the misfire code follows the coil to the new cylinder, the coil is bad.
Typical fix: Replace the faulty ignition coil(s). It is highly recommended to use only genuine Saab/Mitsubishi coils (Part No. 12787707). Replacing all four at once is best practice if they are original and high-mileage, as they tend to fail around the same time.
Est. part cost: $90-$120 per coil - Worn or Incorrect Spark Plugs 🟡 Medium Probability The ionization sensing system is sensitive to spark plug condition and type. Using non-specified plugs or plugs with an incorrect gap or excessive wear can disrupt the signal the ECM needs to determine combustion events. The system relies on measuring current across the plug gap after firing.
How to confirm: Remove the spark plugs and inspect them for wear, fouling, or soot. Verify the part number is correct for the vehicle (NGK PFR6T-10G or PFR6D-10G for stock engines) and check that the gap is correct, typically 1.0mm or 0.040".
Typical fix: Replace all four spark plugs with the correct OEM-spec NGK plugs. Do not use anti-seize on new NGK plugs as their plating provides the correct torque properties and anti-seize can lead to over-torquing.
Est. part cost: $40-$80 for a set of four - Oil in Spark Plug Tubes ⚪ Low Probability The valve cover gasket and integrated spark plug tube seals can become brittle with age and leak oil directly into the spark plug wells. This oil can foul the spark plug and short out the ignition coil, causing a misfire and this code.
How to confirm: When removing an ignition coil, look for liquid oil pooled in the spark plug tube and on the coil boot. The smell of burnt oil may also be present.
Typical fix: Replace the valve cover gasket and the spark plug tube seals (often sold as a kit). 🎬 See this walkthrough for replacing the valve cover gasket and grommets. Thoroughly clean all oil from the tubes, coils, and spark plugs before reassembly using brake cleaner and rags.
Est. part cost: $30-$60 for the gasket set
Rare But Worth Checking
- Damaged Wiring Harness: The wiring and connectors to the ignition coils can become brittle from heat and age. A break or short in the harness can mimic a failed coil. Visually inspect the harness for cracks or damage when replacing coils. Pay close attention to the connector clips, which can become fragile.
- Faulty Combustion Detection Module (CDM): The CDM is a separate module that processes the ionization signals from the coils before sending a synthesized signal to the main ECM. While rare, a failure in this module can cause P0340. This was mentioned in a forum as a possibility after coils were ruled out.
- Faulty Engine Control Module (ECM): In very rare cases, the Trionic 8 ECM itself can fail. This should only be considered after all other possibilities, especially ignition coils, plugs, and wiring, have been definitively ruled out by a qualified technician using a tool like a Tech2.
Diagnosis Steps

- Scan the ECM for trouble codes. Note if P0340 is present along with any misfire codes like P1312 or P030X. This combination strongly suggests an ignition component failure.
- Turn off the engine and remove the plastic engine cover (T30 Torx screws).
- Disconnect and remove the ignition coils (10mm bolts).
- Inspect the spark plug tubes for any signs of oil contamination. If oil is present, the valve cover gasket is leaking and must be replaced before proceeding, as it is the likely root cause.
- If no oil is present, identify the misfiring cylinder from the trouble codes (e.g., P0302 points to cylinder 2). Swap the ignition coil from the misfiring cylinder with one from a non-misfiring cylinder (e.g., swap coils from cylinder 2 and 3).
- Reinstall everything, clear the codes with the scan tool, and start the engine. Let it run or drive it until the Check Engine Light returns.
- Re-scan for codes. If the misfire code has moved to the new cylinder (e.g., from P0302 to P0303), the ignition coil you moved is faulty and must be replaced.
- While the coils are out, it is wise to inspect and/or replace the spark plugs with the correct NGK plugs (PFR6T-10G) if their age or type is unknown. 🎬 Watch: A complete guide to changing spark plugs on the 2.0T.
- If the misfire does not follow the coil, and plugs are good, carefully inspect the wiring harness and connector for the affected cylinder for any signs of cracking, brittleness, or loose pins.
- If all the above check out, the issue could be a rarer fault like the Combustion Detection Module (CDM) or, least likely, the ECM itself.
Parts You'll Likely Need

- Ignition Coil
(OEM #12787707)— This is the primary cause of P0340 on the B207 engine, as it contains the ionization-sensing electronics used for cam position detection. Aftermarket coils are widely reported to fail quickly or not work at all.
Trusted brands: Genuine Saab / OES (Mitsubishi)
OEM price range: $90-$120
Aftermarket price range: $40-$80 (Not Recommended) - Spark Plug
(OEM #NGK PFR6T-10G)— Correct spark plug performance is critical for the ionization-sensing system to work. Worn or incorrect plugs are a common contributing factor.
Trusted brands: NGK
OEM price range: $10-$15 per plug
Aftermarket price range: $8-$12 per plug - Valve Cover Gasket Kit
(OEM #12788969)— Needed if oil is found in the spark plug tubes, which causes ignition coil failure. The kit should include the main gasket and four spark plug tube seals.
Trusted brands: Elring, Victor Reinz, Genuine Saab
OEM price range: $40-$60
Aftermarket price range: $25-$45
Related Codes That Often Appear With This One
- P1312 — P1312 indicates 'Combustion Signal Malfunction'. Since the Trionic 8 system uses the coils for combustion detection, this code is very frequently seen with P0340 and points directly to a problem with the coils 🎬 Watch: How to replace coils and plugs to fix P1312 misfires. or their associated components.
- P0300, P0301, P0302, P0303, P0304 — These are generic misfire codes (P0300 for random misfire, P0301-P0304 for specific cylinders). They directly point to the combustion issue caused by the failing ignition components that also trigger P0340.
Platform-Specific Known Issues
- The Trionic 8 engine management system's reliance on ionization-sensing ignition coils is a well-known quirk of this platform. Owners consistently report that only genuine Mitsubishi-made coils provide a long-term
Mechanic-Grade Diagnostic Values
- Ionization Sensing Voltage — expected: 80V - 120V continuously applied across the spark plug gap (except during spark).. Failure: This is a system-level value not typically measured directly. A failure in this circuit will manifest as P0340 and/or P1312.
- Ignition Coil Connector Pin 1 (B+) — expected: Battery Voltage (B+) with key on (from main relay).. Failure: 0V indicates a problem with the main relay or wiring.
- Ignition Coil Connector Pin 2 (Ground) — expected: < 0.1V (Good ground connection to G7).. Failure: Voltage above 0.1V indicates a poor ground at G7 or in the harness, a critical and specific fault for this system.
- Ignition Coil Connector Pin 3 (Trigger) — expected: Pulsing ground signal from ECM during cranking/running (best viewed with an oscilloscope).. Failure: No signal or a constant signal indicates an ECM or wiring fault.
- Ignition Coil Connector Pin 4 (Ionization Signal) — expected: Complex signal sent to the Combustion Detection Module (CDM) for processing (requires an oscilloscope to analyze).. Failure: An absent or illogical signal points to a failed coil.
Scan Tool Commands That Help
- Saab Tech2: Read Values / Live Data — To monitor the status of the ionization system. The key parameters to watch are 'Camshaft Position Synchronized', 'Combustion Signal cyl 1+3', and 'Combustion Signal cyl 2+4'. The P0340 code is set when 'Camshaft Position Synchronized' cannot be achieved.
Wiring & Ground Locations
- G7 — On the engine control module's (ECM) upper right-hand attachment lug.. This is the specific grounding point for all four ignition coils (at pin 2 of each connector). A poor connection here will cause a voltage drop, disrupting the sensitive ionization measurement and triggering P0340 across multiple cylinders.
- Combustion Detection Module (CDM) — On a bracket on the left-hand side of the cylinder head, often just in front of the coolant expansion tank.. This module processes the raw ionization signal from the coils. All four coil signal wires (pin 4) route to this module. A failure of the CDM or its wiring can mimic a failure of all four coils.
- G2 — On the side of the left-hand chassis frame rail, near the main connector bracket by the battery.. This is a primary chassis ground. While not specific to the coils, a poor connection here can cause widespread electrical issues that could potentially affect the ignition system's stability.
Real Owner Repair Stories
- Reddit user Exciting-One4322 (2008 Saab 9-3 2.0T) — Loss of power, running extremely rough, no turbo boost, P0340 code.
❌ Tried (didn't work) Replacing the throttle body (made it run rougher), Replacing the camshaft position sensor (which does not exist on this engine)
✅ What actually fixed it The owner discovered the car had 'cheap Chinese trash' ignition coils. Replacing them with genuine Saab coils resolved the issue.
When the Usual Fixes Don't Work
- While faulty ignition coils are the cause of P0340 in the vast majority of cases, there are instances where the code persists after replacing all four coils and spark plugs with genuine parts. In these situations, the root cause is almost always the next component in the signal chain: the Combustion Detection Module (CDM). A failed CDM cannot properly process the (now correct) signals from the new coils, leading to the same P0340 fault code. Therefore, if genuine coils and plugs do not fix the issue, a focused diagnosis of the CDM and its wiring/ground connections is the required next step before suspecting the ECM itself.
OEM Part Supersession History
Unknown (Yellow Top Coils)→12787707 (Black Top Coils)— Early model B207 engines used 'yellow top' ignition coils which had a notoriously high failure rate. These were superseded by the more robust 'black top' coils (PN 12787707), which are the current replacement part.12787708→55352173— This is not a direct supersession but a model year change. PN 12787708 is the analogue output Combustion Detection Module (CDM) for early models (~03-04). PN 55352173 is the digital output CDM for later models (~05-12).
Heads up: These two CDM modules are NOT interchangeable. Installing the wrong module for the vehicle's model year will result in a P0340 code as the ECM will not understand the signal type.
Model Year Variations Within This Range
- 2003-2005 (approx.): These early models were often equipped with less reliable 'yellow top' ignition coils that are prone to failure. Later models used improved 'black top' coils (PN 12787707).
- 2003-2004 vs 2005-2012: The Combustion Detection Module (CDM) changed from an analogue output unit (PN 12787708) in early years to a digital output unit (PN 55352173) in later years. The parts are not cross-compatible.
- 2003: There is anecdotal evidence and forum debate suggesting the very first 2003 models may have had the CDM functionality integrated directly into the Trionic 8 ECM, lacking a separate, replaceable CDM module. This can complicate diagnosis for this specific year.
Diagnostic Flowchart
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2004 Saab 9-3
Symptoms: Engine light on, car driving sluggish, engine shutter when turbo was suppose to kick in, and engine started to shake even when in park.
What fixed it: Changed the ignition coils, though the user noted subsequent turbo and shaking issues that prompted scanning the codes (P0300, P1340, P0340).
Source hint: Reddit r/saab owner report
Saab 9-3 B207
Symptoms: Triggered P0340 and P1312 misfire and combustion detection codes.
What fixed it: Solved the problem by replacing a single faulty ignition coil after diagnosing it by swapping coil positions.
Source hint: SaabCentral.com thread titled 'P0340 and P1312 misfire and combustion detection'
2003 Saab 9-3 Aero
Symptoms: Experiencing codes P0340 and P1312.
What fixed it: Identified the cause as faulty ignition coils, with discussions pointing to the ionization module and potential valve cover leaks as contributing factors.
Source hint: Reddit r/saab thread 'Need help 93 2003 Aero P0340 P1312'
Saab 9-3 B207
Symptoms: Throwing code P0340.
What fixed it: User attempted to replace the non-existent camshaft sensor, then replaced coils and plugs, but still had issues, highlighting the diagnostic complexity of the Trionic 8 system.
Source hint: Reddit r/saab thread 'Throwing code P0340 camshaft position sensor'
Related OBD-II Codes
Frequently Asked Questions
Does my 2003-2012 Saab 9-3 2.0T have a physical camshaft position sensor?
Which ignition coils should I buy to fix P0340 on my Saab 9-3?
What spark plugs are recommended for the B207 engine to prevent P0340?
Why is there oil on my ignition coils when diagnosing P0340?
Can I just replace the one bad ignition coil, or do I need all four?
Does the Cadillac BLS share this same P0340 issue?
Helpful Videos
We Have This Part in Stock
The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.
- Saab 9-3:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2003-2012 Saab 9-3
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- When the Usual Fixes Don't Work
- OEM Part Supersession History
- Model Year Variations Within This Range
- Diagnostic Flowchart
- Real Owner Stories
- 2004 Saab 9-3
- Saab 9-3 B207
- 2003 Saab 9-3 Aero
- Saab 9-3 B207
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off