DFPM & Emissions Strategy
DFPM locations, the ESKONF bitmask, and a two-tier emissions delete strategy.
DFPM locations, the ESKONF bitmask, and a two-tier emissions delete strategy.
For DTC toggling, hardware deletes, and emissions readiness modification using automated utilities (such as me7_dtc_manager.py / DOC 34), each calibration family organizes its Diagnostic Fault Path Manager into four core table arrays (CDT*, CLA*, TSF*, FFT*), master enable codewords (CD*), and the hardware output stage configuration array (ESKONF).
7.1. Master DFPM Table Locations Across Families#
| Calibration Family | Representative ECU | Enable Codewords (CD*) | Master MIL (CWNOMIL) | Fault Class Array (CLA*) | Tester DTC Array (CDT*) | Output Stage (ESKONF) |
|---|---|---|---|---|---|---|
| 24B US Late | 06A906032LP / JJ | 0x018194–0x0181B4 | 0x01849C | 0x01C058 | 0x01CCA8 | 0x010C4F |
| 24B US Early | 06A906032HS | 0x018194–0x0181B4 | 0x01849C | 0x01C000 | 0x01CC50 | 0x010C4F |
| 24B Euro 180 | 06A906032DL | 0x018194–0x0181B4 | 0x01849A | 0x01C040 | 0x01CC90 | 0x010C4F |
| 22i Euro 150 | 06A906032CL | 0x018160–0x018180 | 0x018466 | 0x01BC80 | 0x01C8D0 | 0x010BFE |
| 24D BAM 225 | 8N0906018CB / BE | 0x0181A0–0x0181C0 | 0x0184B0 | 0x01C080 | 0x01CCD0 | 0x010C55 |
7.2. Exhaustive ESKONF (Endstufenkonfiguration) Bitmask Decoding Table#
In Bosch ME7.5, ESKONF is a 7-byte array located at offset 0x010C4F (in 24B binaries like 06A906032LP and 06A906032HS). It configures the hardware electrical driver ICs (such as the Bosch CC460 smart low-side switch array) by assigning monitoring modes to individual ECU output pins.
Bitfield State Encoding (2 Bits per Channel)#
Every byte is composed of four 2-bit fields:
00(binary0b00/ Decimal 0): Output Channel Installed & Monitored. Full diagnostic surveillance (open-circuit, short-to-ground, short-to-positive active).01(binary0b01/ Decimal 1): Alternate Diagnostic Mode / Pull-Up Surveillance. Used for specialized sensors or active high drivers.10(binary0b10/ Decimal 2): Output Channel Tri-Stated / Inactive.11(binary0b11/ Decimal 3): Output Channel Completely Disabled / Uninstalled. Electrical monitoring circuitry ignores this pin. No circuit DTCs (such as P0418, P0444, P1426, P1117, P0036) will ever be flagged.
Byte-by-Byte Channel Mapping (06A906032LP / AWP)#
ESKONF 7-BYTE HARDWARE OUTPUT CONFIGURATION
| Byte | Bits 7–6 | Bits 5–4 | Bits 3–2 | Bits 1–0 | Stock (Hex) | Target Deletes |
|---|---|---|---|---|---|---|
| 0 | Inj Cyl 4 | Inj Cyl 3 | Inj Cyl 2 | Inj Cyl 1 | 0xAA | Fuel Injectors |
| 1 | Ign Cyl 4 | Ign Cyl 3 | Ign Cyl 2 | Ign Cyl 1 | 0x55 | Ignition Coils |
| 2 | N75 Valve | N249 Div | N205 VVT | J17 Fuel | 0x00 | N249, N205, N75 |
| 3 | LDP Pump | N80 EVAP | J299 SAI | N112 SAI | 0x00 | SAI & EVAP Purge |
| 4 | Fan Stg 2 | Fan Stg 1 | Z28 O2 Ht | Z19 O2 Ht | 0x00 | Post-Cat O2 Heater |
| 5 | EPC Lamp | MIL Lamp | Rev Out | AC Cut | 0x00 | Cluster Telltales |
| 6 | Spare/CAN | Spare | Spare | Spare | 0x00 | Expansion Drivers |
Detailed Pin Assignments & Bit Offsets#
| Byte Index | Bit Range | Physical Pin | Actuator / Subsystem Description | Stock Value | Delete Value (0b11) |
|---|---|---|---|---|---|
| Byte 0 | Bits 1–0 | Pin 88 | Fuel Injector Cylinder 1 (N30) | 0b10 | Do not modify |
| Bits 3–2 | Pin 89 | Fuel Injector Cylinder 2 (N31) | 0b10 | Do not modify | |
| Bits 5–4 | Pin 96 | Fuel Injector Cylinder 3 (N32) | 0b10 | Do not modify | |
| Bits 7–6 | Pin 97 | Fuel Injector Cylinder 4 (N33) | 0b10 | Do not modify | |
| Byte 1 | Bits 1–0 | Pin 94 | Ignition Coil Cylinder 1 (N70) | 0b01 | Do not modify |
| Bits 3–2 | Pin 95 | Ignition Coil Cylinder 2 (N127) | 0b01 | Do not modify | |
| Bits 5–4 | Pin 102 | Ignition Coil Cylinder 3 (N291) | 0b01 | Do not modify | |
| Bits 7–6 | Pin 103 | Ignition Coil Cylinder 4 (N292) | 0b01 | Do not modify | |
| Byte 2 | Bits 1–0 | Pin 65 | Fuel Pump Relay Trigger (J17) | 0b00 | 0b00 (Preserve) |
| Bits 3–2 | Pin 112 | Variable Camshaft Timing Solenoid (N205) | 0b00 | 0b11 (VVT Delete) | |
| Bits 5–4 | Pin 64 | Turbocharger Diverter Valve Solenoid (N249) | 0b00 | 0b11 (N249 Bypass Delete) | |
| Bits 7–6 | Pin 105 | Wastegate Frequency Control Valve (N75) | 0b00 | 0b11 (External Wastegate) | |
| Byte 3 | Bits 1–0 | Pin 115 | Secondary Air Injection Solenoid (N112 Combivalve) | 0b00 | 0b11 (SAI Delete) |
| Bits 3–2 | Pin 106 | Secondary Air Pump Relay Trigger (J299) | 0b00 | 0b11 (SAI Pump Delete) | |
| Bits 5–4 | Pin 15 / 64 | EVAP Canister Regenerative Purge Valve (N80) | 0b00 | 0b11 (EVAP Delete) | |
| Bits 7–6 | Pin 113 | EVAP Leak Detection Pump Solenoid (V144 / LDP) | 0b00 | 0b11 (LDP Delete) | |
| Byte 4 | Bits 1–0 | Pin 5 | Pre-Cat Oxygen Sensor Heater (Bank 1 Sensor 1 Z19) | 0b00 | 0b00 (Never delete pre-cat!) |
| Bits 3–2 | Pin 63 | Post-Cat Oxygen Sensor Heater (Bank 1 Sensor 2 Z28) | 0b00 | 0b11 (Rear O2 Heater Delete) | |
| Bits 5–4 | Pin 42 | Radiator Cooling Fan Stage 1 Relay / PWM Driver | 0b00 | 0b00 | |
| Bits 7–6 | Pin 41 | Radiator Cooling Fan Stage 2 Relay / A/C High Pressure | 0b00 | 0b00 |
Common Hardware Delete Recipes for ESKONF#
- Secondary Air Injection (SAI) Delete Only (
N112+J299):- Target: Byte 2 (Stock:
0x00). - Bits 5–4 set to
0b11(3 \times 16 = 48 = \mathbf{0\text{x}30}). - Write:
ESKONF[2] = 0x30.
- Target: Byte 2 (Stock:
- Complete SAI + EVAP + LDP Delete (
N112,J299,N80,V144): - Rear O2 Sensor Heater Delete (
Z28): - N249 Diverter Valve Bypass Delete:
7.3. Master Emissions Delete & Readiness Strategy#
A frequent engineering error during emissions hardware removal is zeroing diagnostic codewords (CD*) indiscriminately. While setting a diagnostic codeword to 0 prevents the ECU from running that specific self-test, it also leaves the associated OBD-II Readiness Monitor permanently set to "Incomplete / Failed", preventing the vehicle from passing state emissions inspection.
To achieve clean diagnostic operation with all readiness monitors set to "Passed", the engineer must apply a dual-tier strategy combining functional codewords, fault suppression, and readiness monitor forcing.
Tier 1: Codeword Suppressions (06A906032LP / AWP Offsets)#
| Symbol | Address | Stock | Delete | Functional Effect |
|---|---|---|---|---|
CWDLSAHK | 0x0181A1 | 0x01 | 0x00 | Master Rear O2 Sensor Codeword: Disables post-cat sensor plausibility, cat aging, and response delay tests. |
CDKAT | 0x0181A4 | 0x01 | 0x00 | Catalyst Diagnosis: Disables amplitude ratio evaluation between front and rear O2 sensors. |
CDHSH | 0x0181A5 | 0x01 | 0x00 | Rear O2 Sensor Heater Diagnosis: Disables impedance measurement of heating element Z28. |
CDSLS | 0x0181AE | 0x01 | 0x00 | Secondary Air Injection Diagnosis: Disables lambda deflection check during cold-start SAI pumping. |
CDLDP | 0x0181B2 | 0x01 | 0x00 | Leak Detection Pump Diagnosis: Disables EVAP pressure decay timing and reed switch evaluation. |
CDTES | 0x0181B3 | 0x01 | 0x00 | Tank Evaporative System Diagnosis: Disables fuel tank purge flow plausibility checks. |
CDLASH | 0x0181A2 | 0x01 | 0x00 | Aging of Oxygen Sensors: Disables dynamic response test of secondary oxygen sensor. |
Tier 2: Rear O2 Diagnostic Suppression without Readiness Lockout#
If CDKAT is set to 0x00, the catalytic converter monitor will report "Unsupported" or remain in an endless loop waiting to test. To force the monitor to cycle to "Passed" while running a decat downpipe:
- Leave
CDKAT = 0x01, but adjust the catalyst efficiency threshold:P0420(Catalyst System Efficiency Below Threshold): Change class from0x01to0x00.P0411(Secondary Air Injection Incorrect Upstream Flow): Change class to0x00.P0441(EVAP Control System Incorrect Purge Flow): Change class to0x00.P1423(Secondary Air Injection Bank 1 Flow Too Low): Change class to0x00. Setting the fault class to0x00ensures that even if internal test routines fail, the ECU never illuminates the Check Engine Light (MIL) and never sets a freeze-frame DTC in EEPROM.
- Set
CWDLSAHK = 0x00: Bypasses rear sensor voltage plausibility so no P0136 / P0140 / P0420 DTCs are queued. - Zero the DFPM Error Classes (
CLA*): Usingme7_dtc_manager.py(DOC 34), locate the fault class entries corresponding to:
Related#
Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.
- Chapter 13 — 121-Pin Harness —
Z28,Z19,J17,V144,N112,N249 - Chapter 34 — PCB Repair & IC Pinouts —
J17,V144,J299,N112,N249,N205 - Chapter 2 — Bosch Project Taxonomy —
J17,J299,N112,N249,DFPM,N205 - Chapter 46 — Secondary Air Injection —
CDSLS,J299,N112,N249,DFPM,ESKONF - Chapter 6 — Memory Geometry & Axes —
CWDLSAHK,CDSLS,CDKAT,CDLDP,ESKONF - Chapter 3 — Benchmark Calibrations —
CWDLSAHK,CDLDP,V144,DFPM,N80
← Previous chapter · Contents · Next chapter →
Related
Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.