1. What is an IMA Code?
During precision manufacturing, micro-tolerances in the nozzle orifice diameter, needle lift clearance, and solenoid air gap cause minor injection volume variations between individual injectors.
Rather than discarding units with minute variances, Bosch measures each finished injector on a computerized flow bench across five operating pressures (pilot, pre-injection, idle, part load, and full load). These specific flow characteristics are compressed into a 6 to 9 alphanumeric string known as IMA (Injektor-Mengenabgleich / Injector Quantity Adjustment), or EMA for piezoelectric applications.
When the IMA code is programmed into the Engine Control Module (ECU), the software applies precise microsecond (μs) energizing time offsets to each cylinder, equalizing torque delivery and maintaining emissions compliance across all engine speeds.
2. Critical Workshop Pitfall: French vs. German Cylinder Numbering
One of the most frequent and costly workshop mistakes during injector replacement stems from conflicting cylinder numbering standards:
🇫🇷 French Standard (PSA Peugeot/Citroën, Renault)
- Cylinder 1 Designation: Located at the Flywheel / Transmission / Clutch end (rear of the engine).
- Sequence: Counts from the flywheel forward toward the timing belt (Cyl 1 = Flywheel ➔ Cyl 4 = Timing belt).
- Applicable Engines: PSA DW10 (2.0 HDi), PSA DW12 (2.2 HDi), Renault F9Q (1.9 dCi), Renault K9K (1.5 dCi).
🇩🇪 German & ISO Standard (VAG, BMW, Mercedes-Benz)
- Cylinder 1 Designation: Located at the Front Timing Belt / Timing Chain / Crankshaft Pulley end.
- Sequence: Counts from the timing belt rearward toward the flywheel (Cyl 1 = Timing gear ➔ Cyl 4/6 = Flywheel).
- Applicable Engines: VAG 1.9/2.0 TDI (EA188/EA189), BMW M47/N47/M57, Mercedes-Benz OM646/OM642.
Severe Consequence: If a technician applies German numbering conventions to a Peugeot or Renault engine, Cylinder 1’s code will be flashed into Cylinder 4, and Cylinder 2 into Cylinder 3. The ECU will apply diametrically opposite delivery corrections, causing severe cold-start knock, violent idle rocking, and rapid particulate filter (DPF) soot accumulation.
3. Programming Protocol via Diagnostic Scanner
- Pre-Installation Record: Always record the laser-etched IMA string for each new injector and note the physical cylinder target (confirming whether French or German numbering applies) prior to installing units into the cylinder head.
- Connect Battery Maintainer (Crucial):
- Connect an external, high-frequency workshop battery maintainer (e.g., GYS, Fronius, Deutronic) providing a constant 13.5V to 14.0V (minimum 12.5V).
- Never attempt ECU coding on battery power alone: Ignition-ON current draw (cooling fans, glow plugs, interior modules) can drop voltage below 12.0V in minutes, aborting the EEPROM flash routine and corrupting control module memory.
- Access ECU Routine: Connect diagnostic scanner (Bosch KTS, Autel MaxiSys, Launch X431, Lexia, or VCDS) to the OBD-II port. Navigate to:
Engine Control Module (ECM)➔Special Functions / Adaptation➔Injector Classification / Injector Coding. - Input & Checksum Verification: Enter the alphanumeric string carefully. Distinguish cleanly between zero (
0) and the letterO, and between one (1) andI. The scanner executes a mathematical checksum algorithm; invalid characters trigger immediate code rejection. - Cycle Ignition & Adaptation Reset: Cycle ignition OFF for 30 seconds, then restart. Clear all historical DTCs. Perform an initial warm-idle adaptation drive allowing the ECU to calibrate pilot injection learning values.
4. Alphanumeric Checksum Reference Table
| Vehicle System | Typical Length | Format Characters | Common Engine Examples |
|---|---|---|---|
| Bosch CRI 1.0 (Early) | Non-Coded / Class 1-3 | 1, 2, or 3 (Class stamp) | Renault F9Q early, PSA DW10 early |
| Bosch CRI 2.0 (Euro 3/4) | 6 or 7 Characters | Alphanumeric (e.g., 7B9K2A) | Renault F9Q 1.9 dCi, PSA DW12 2.2 HDi |
| Bosch CRI 2.2 / 2.5 (Euro 4/5) | 8 or 9 Characters | Alphanumeric (e.g., AA12C8EF9) | BMW M47N/N47, Mercedes OM646 |
| Bosch Piezo (CRI 3.0) | 7 or 8 Characters | Voltage + Flow Offset Code | Audi 3.0 TDI, BMW M57N2, Mercedes OM642 |
Frequently Asked Diagnostic Questions
What happens if a new common rail injector is not coded into the ECU?
The ECU defaults to generic base map fuel delivery. Because modern common rail manufacturing involves microscopic flow variances, uncoded injectors cause cylinder-to-cylinder torque imbalances, combustion knock, elevated black smoke (DPF loading), and potential cylinder contribution DTCs (P0263, P0266, P0269, P0272).
How does cylinder numbering differ between French (PSA/Renault) and German (VAG/BMW/Mercedes) engines?
French manufacturers (PSA Peugeot/Citroën and Renault) traditionally designate Cylinder 1 at the flywheel / transmission / gearbox end, counting sequentially toward the timing belt. Conversely, German and ISO-standard manufacturers (VAG, BMW, Mercedes-Benz) designate Cylinder 1 at the front timing belt / timing chain / crankshaft pulley end. Entering codes under the wrong cylinder sequence reverses calibration offsets across all cylinders.
Why is an external clean power supply mandatory during injector coding?
Writing new IMA adaptation values into the ECU EEPROM requires unbroken diagnostic bus communication. If system voltage drops below 12.5V—common when the ignition is switched on and electric cooling fans or glow plugs activate—the ECU resets mid-write, risking corrupted EEPROM checksums, communication lockouts (bricked ECU), or DTC P0606.
Where is the IMA code located on the injector?
On Bosch solenoid injectors, the 6 to 9 character alphanumeric IMA code is laser-etched directly onto the top plastic electrical connector housing or on the upper metal injector body hexagon.