Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All →
🎬 Helpful Videos 🛍️ Shop This Part

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.

20 minutes to read 2003-2012 Saab 9-3
Most Likely Cause
Faulty Ignition Coil(s)
Difficulty
2/5
Est. Time
1.5 hrs
DIY Doable?
✅ Yes
Shop Labor
$150 – $850
Parts Price
$70 – $550
⚠️ Drivable, but... — You can drive, but expect symptoms like rough idling, poor acceleration, engine hesitation, a crank-no-start condition, or even stalling. Continued driving with a misfiring engine can potentially damage the catalytic converter over time due to unburnt fuel entering the exhaust.
Key Takeaways
  • 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.
P0340 indicates a 'Camshaft Position Sensor Circuit Malfunction'. However, on the Saab 9-3 with the B207 2.0L Turbo engine, this is a misleading definition because this engine does not have a traditional camshaft position sensor. Instead, the Trionic 8 engine management system determines the camshaft's position by sending a small electrical current (around 80-120V) through the spark plugs via the ignition coils after combustion. This process, called ionization current sensing, allows the ECU to detect which cylinder has just fired. This code means the Engine Control Module (ECM) has received an illogical or absent signal from this system and cannot determine the camshaft's position relative to the crankshaft, which is essential for sequential fuel injection and ignition timing.

What's Unique About the 2003-2012 Saab 9-3

The engine bay of a Saab 9-3 featuring the B207 2.0T engine which uses Trionic 8 ionization sensing.
The Saab B207 engine uses a unique Trionic 8 management system that relies on ignition coils for combustion feedback rather than a traditional camshaft sensor.

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
⚠️ Don't Waste Money on the Wrong Fix
  • 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

A comparison between a genuine Saab Mitsubishi ignition coil and a failed or low-quality aftermarket version.
Genuine Saab/Mitsubishi coils (left) feature the specific electronics required for ionization sensing, whereas many aftermarket coils (right) lack these circuits and trigger P0340 codes.
  1. 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
  2. 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
  3. 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

A technician swapping ignition coils between cylinders to diagnose a misfire and P0340 code.
To confirm a faulty coil, swap the suspected unit to a different cylinder and use a scan tool to see if the misfire code follows it.
  1. 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.
  2. Turn off the engine and remove the plastic engine cover (T30 Torx screws).
  3. Disconnect and remove the ignition coils (10mm bolts).
  4. 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.
  5. 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).
  6. 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.
  7. 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.
  8. 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.
  9. 🎬 Watch: A complete guide to changing spark plugs on the 2.0T.
  10. 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.
  11. 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

A set of four new NGK PFR6T-10G spark plugs required for the Saab B207 engine.
Using the correct OEM-spec NGK spark plugs is critical, as the ionization system measures current across the plug gap to determine engine timing.
  • 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.
  • 1278770855352173 — 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

Start by checking for accompanying misfire codes. The Saab Trionic 8 system does not use a traditional camshaft position sensor; instead, it uses the ignition coils' ionization sensing to determine cam position, making coils and plugs the primary suspects.
Remove the plastic engine cover (T30 Torx) and ignition coils (10mm bolts). Look down the spark plug tubes. Is there liquid oil pooled in the tubes or on the coil boots?
→ Replace the valve cover gasket and spark plug tube seals. Clean all oil from the tubes, coils, and plugs using brake cleaner before reassembly, as oil shorts out the ionization signal.
Identify the misfiring cylinder from the codes (e.g., P0302 = Cylinder 2). Swap its ignition coil with a known good cylinder. Clear codes and run the engine. Did the misfire code move to the new cylinder?
→ Replace the faulty ignition coil. Use ONLY genuine Saab/Mitsubishi coils (Part No. 12787707). Aftermarket coils lack the correct ionization circuitry and will fail prematurely.
Remove and inspect the spark plugs. Are they the correct NGK PFR6T-10G or PFR6D-10G plugs, gapped to 1.0mm (0.040")?
→ Replace all four spark plugs with the correct OEM-spec NGK plugs. Do not use anti-seize, as their plating provides the correct torque properties.
→ Inspect the wiring harness for cracking or loose pins. If intact, suspect a rarer fault like the Combustion Detection Module (CDM) or ECM.
Even without misfire codes, the Trionic 8 system relies on the coils for cam position. Are the current ignition coils genuine Saab/Mitsubishi (Part No. 12787707) or aftermarket?
→ Replace the aftermarket coils with genuine Saab/Mitsubishi coils. The B207 engine requires specific ionization circuitry that aftermarket versions lack, causing false P0340 codes.
Remove and inspect the spark plugs. The ionization system measures current across the plug gap. Are they the correct NGK PFR6T-10G or PFR6D-10G plugs, gapped to 1.0mm (0.040")?
→ Replace all four spark plugs with the correct OEM-spec NGK plugs. The system is highly sensitive to spark plug condition and type.
→ Carefully inspect the ignition coil wiring harness and connectors for brittleness or loose pins. If wiring is good, the Combustion Detection Module (CDM) may be failing.

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'

Frequently Asked Questions

Does my 2003-2012 Saab 9-3 2.0T have a physical camshaft position sensor?
No. The B207 engine uses the Trionic 8 engine management system, which does not have a traditional physical camshaft position sensor. Instead, it relies on ionization-sensing ignition coils to determine camshaft position and combustion events.
Which ignition coils should I buy to fix P0340 on my Saab 9-3?
You must use genuine Saab/Mitsubishi ignition coils (Part No. 12787707). Owners consistently report that aftermarket coils lack the correct ionization circuitry, leading to premature failure or immediate issues.
What spark plugs are recommended for the B207 engine to prevent P0340?
Use OEM-spec NGK plugs, specifically PFR6T-10G or PFR6D-10G for stock engines. They should be gapped to 1.0mm (0.040"). Do not use anti-seize on these new NGK plugs, as it can lead to over-torquing.
Why is there oil on my ignition coils when diagnosing P0340?
The valve cover gasket and integrated spark plug tube seals can become brittle with age, leaking oil directly into the spark plug wells. This oil fouls the spark plug and shorts out the ignition coil, causing misfires and triggering the P0340 code.
Can I just replace the one bad ignition coil, or do I need all four?
While you can replace just the single faulty coil, it is highly recommended to replace all four at once if they are original and high-mileage, as they tend to fail around the same time.
Does the Cadillac BLS share this same P0340 issue?
Yes. The 2005-2010 Cadillac BLS with the 2.0T LP9 engine is essentially a rebadged Saab 9-3. It shares the B207 engine and Trionic 8 system, meaning it experiences the exact same unique P0340 faults related to ignition coils rather than a physical sensor.
Saab 9-3 Engine Misfire P1312 - Spark Plug and Coils replacement (model year 2003 - 2011)
Saab 9-3 Engine Misfire P1312 - Spark Plug and Coils replacement (model year 2003 - 2011)
Replacing the ignition coils and spark plugs of my Saab 9-3 (1.8t/2.0t/2.0T)
Replacing the ignition coils and spark plugs of my Saab 9-3 (1.8t/2.0t/2.0T)
SAAB 93 B207 VALVE COVER GASKET with GROMMETS
SAAB 93 B207 VALVE COVER GASKET with GROMMETS
Saab 9-3 Valve Cover Gasket Replacement
Saab 9-3 Valve Cover Gasket Replacement
2004 Saab 9-3: Spark Plug Replacement
2004 Saab 9-3: Spark Plug Replacement
2007 Saab 9-3, 2.0 T. Spark plug change, Complete Job.
2007 Saab 9-3, 2.0 T. Spark plug change, Complete Job.
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Jul 21, 2026

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.

Year Coverage
This article covers the OBD-II Code P0340 (Deep Dive) for:
  • Saab 9-3: 2003200420052006200720082009201020112012
In this article
🎬 Helpful Videos
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part