EDC15 small TDI
Bosch EDC15 (VAG diesel). Variants: EDC15V / EDC15VM+ (VP37 rotary-injection-pump 1.9 TDI, e.g. AGR/ALH/AHF/AHH) and EDC15P / EDC15P+ (Pumpe-Duse unit-injector engines, incl. the small 3-cyl 1.2/1.4 TDI PD and the 1.9 PD). Small-engine focus: 1.2 TDI 3-cyl PD (ANY 61PS, AYZ 75PS - Lupo 3L / Audi A2 3L) and 1.4 TDI 3-cyl PD (AMF 75PS, BNM 70PS, BNV 80PS - Polo 9N / Fabia / Ibiza / Arosa). This is a
The ECU hardware
Siemens/Infineon C167 family 16-bit MCU (SAK-C167CS / C167CR), little-endian, with an on-chip bootstrap loader (BSL). Program + calibration live in an EXTERNAL parallel NOR flash, 16-bit wide, typically 512 KB / 4 Mbit (AMD/Fujitsu/ST 29F400-class); some SW is 256 KB - verify the actual device/size. Immobilizer / VIN / adaptation / mileage live in a SEPARATE small serial EEPROM (24C02 or 24C04 I2C, or on some builds a 95040-type SPI) - NOT in the flash. K-line only (ISO 9141 / ISO 14230 KWP2000); these cars predate diagnostic CAN. Note: the C167 uses BSL/BDM-less bootstrap for bench work - it has NO Freescale-style BDM port (BDM/Nexus belongs to the MPC5xx used in EDC16, not here).
Fuelling and load sensing
Diesel. PD unit-injector for the 3-cyl PD and 1.9 PD; VP37 distributor pump for early EDC15V 1.9 TDI. No common rail - fuel quantity = injector/pump solenoid DURATION (commanded internally as mg/stroke), so rail pressure does not apply; the analogous hard actuator ceiling is solenoid duration. No knock sensor and no rail-pressure protection, so the engine's only governors are the air/smoke limiter, EGT, the duration ceiling, turbo overspeed, and driveline torque.
How this ECU is read and flashed
Read/write over OBD on the K-line only (KWP2000 / ISO 14230, no CAN). CORRECTED from the draft: the normal OBD reflash is NOT the C167 silicon bootstrap - the tool opens a KWP2000 diagnostic session, passes EDC15 SECURITY ACCESS (a well-known public seed/key algorithm), uploads a small flash-loader routine into ECU RAM, then erases and programs the external NOR flash. It is pin-less. It is IMMO-INDEPENDENT because the immobiliser lives in the separate serial EEPROM, not the flash (major contrast with ME7 petrol, where flash is immo-gated) - the pairing stays intact as long as the EEPROM is untouched. Tools: Galletto 1260, MPPS, KWP2000+/'VAG EDC15 flasher', KESS V2, KTAG; fjvva/ecu-tool as a K-line/KWP2000 protocol reference. BENCH RECOVERY (not the OBD path): the C167 BOOTSTRAP LOADER (BSL / 'boot mode'), entered by grounding the boot-config pin, run over serial/K-line via KTAG or a BSL adapter - recovers a blank/bricked ECU including the boot sector; this is the safety net for a failed OBD write. Note the C167 has NO BDM port - 'BDM/Nexus' recovery belongs to EDC16 (Freescale MPC5xx), not here. Always verify HW/SW number before selecting a def or checksum.
Engine codes in this family
- ANY - 1.2 TDI 3-cyl PD 61PS (Lupo 3L / Audi A2 3L)
- AYZ - 1.2 TDI 3-cyl PD 75PS
- AMF - 1.4 TDI 3-cyl PD 75PS (Polo 9N / Fabia / Ibiza / Arosa)
- BNM - 1.4 TDI 3-cyl PD 70PS
- BNV - 1.4 TDI 3-cyl PD 80PS
- ATD/AXR/BEW - 1.9 TDI PD 100-101PS (EDC15P/P+)
- ASZ/ARL - 1.9 TDI PD 130/150PS (EDC15P+)
- AGR/ALH/AHF/AHH - 1.9 TDI VP37 (EDC15V) related VP platform
- NOTE: earliest 1Z/AHU 1.9 TDI use a pre-EDC15 Bosch EDC generation; some later 1.4 TDI (e.g. BMS) move to EDC16 - verify the ECU is EDC15 before applying these defs
Staging - what each stage really gives
- stage1 - Software only. Raise in lockstep: driver's wish + full-load IQ limiter + MAF smoke + MAP smoke + torque/quantity limiter + boost target + boost-limiter ceiling; usually reduce/disable EGR; correct checksum in WinOLS and verify. Keep AFR clean (~air_mass/17) and inside turbo compressor and injector-duration limits. Typical, dyno/tuner-dependent outcomes: 1.2 TDI ANY 61PS -> ~75-90 hp and ~170-200 Nm (ASG-clutch capped - do NOT chase 230+ Nm on the stock automated-manual); 1.4 TDI AMF 75PS -> ~90-100 hp / ~210-240 Nm (KP35/GT15-turbo limited); 1.9 PD100 -> ~125-135 hp, PD130 -> ~160-170 hp. Roughly +25-40% torque; the tiny single turbo and the duration wall cap the 3-cyls.
- stage2 - Bolt-ons + re-tune: freer intake, exhaust/decat (or DPF-back if fitted), larger front-mount intercooler, EGR delete, colder thermostat; then re-raise smoke/boost/fuel to suit. On the 3-cyl the tiny KP35/KP39/GT15 turbo is the ceiling, so Stage 2 adds only ~+5-15 hp over Stage 1 and mostly improves EGT margin and consistency, not peak.
- stage3 - Hardware. Hybrid/larger turbo (1.2/1.4 TDI hybrid kits, GT1749V-class on the 1.9), higher-flow PD injector nozzles (advance SOI to match), N75/VNT remap, uprated clutch - and for Lupo 3L / A2 3L convert the ASG automated-manual to a real manual to survive >~200 Nm. Big custom smoke/torque/boost calibration. Indicative: 1.2 TDI hybrid ~100-115 hp; 1.9 PD130 hybrid ~180-200 hp. Requires clutch, EGT and smoke management or it smokes / overheats / overspeeds the turbo.
Safety limits
- Smoke/AFR: keep full-load mass air/fuel >=~17:1 (lambda >=~1.2 clean, ~1.1 aggressive); NEVER let smoke-limiter fuel exceed measured air. Rule of thumb: max mg ~= air_mass/17. Over-fuel = black smoke, soot, EGT runaway.
- EGT: keep pre-turbo EGT sustained under ~750-800 C, brief peaks <=~830 C (pre-turbo runs hotter than an EGT-probe reading in the downpipe - know which point you are measuring). Small turbo-diesels are EGT/overspeed limited; add no fuel you can't cool with air. Ideally fit an EGT gauge, since with no knock sensor the ECU won't protect against overfuel heat.
- Turbo overspeed / compressor map: stock small turbos live ~1.2-1.25 bar (KP35/KP39/GT15, target ceiling ~2200-2250 mbar absolute), GT1749V ~1.45 bar, BV39 ~1.55 bar. Do NOT hold peak boost past ~4000 rpm - the small compressors overspeed and choke; keep a margin under the boost-limiter so overboost/limp (P0234-type) never trips.
- MAF / air-mass signal ceiling: the EDC15 air-mass reading saturates; tuning fuel past the MAF max makes the smoke limiter mis-read air and over- or under-fuel. Stay under the sensor ceiling (known EDC15 constraint).
- Injector/pump DURATION ceiling (PD has no rail pressure): do not command more solenoid duration/quantity than the injector or VP37 pump can deliver - beyond it you get incomplete/late injection, heat and mechanical damage. mg limits are engine/SW/nozzle-specific, so validate per file; on EDC15V the VP pump-voltage map is the matching ceiling.
- Over-fuel mechanical damage even within limits: sustained rich full-load fuelling washes the bores, dilutes oil, and cooks pistons/turbo regardless of the duration number - respect the air/EGT limits, not just the duration ceiling.
- Torque monitor: stay under the ECU torque-monitor ceiling or it faults/limps; raise the torque/quantity limiter map to MATCH fuel - do not uniformly scale it (boost spikes and monitor trips).
- Clutch/gearbox: the Lupo 3L / A2 3L ASG automated-manual clutch slips ~170-200 Nm - cap torque there unless converted to a manual (~230+ Nm capable); respect the manual gearbox/clutch rating on all the small TDIs too.
- EGR-off: common for reliability and air targets but has emissions/legal implications - flag, don't silently apply.
- DPF: MOST EDC15 small TDIs are PRE-DPF (the DPF era is largely EDC16); only late cars carry a DPF, and only there do soot-loading/regen consequences of EGR/fuel changes apply.
- Immo/EEPROM: do NOT disturb the 24C02/24C04/95040 immo data when flashing maps; for ECU swap/clone the EEPROM (immo, SKC, VIN, adaptation) must be cloned and matched to the cluster or the car won't start.
Every car using this platform (14)
Stock power and typical remap figures per car. Stage results assume a healthy engine on good fuel.
| Car | Engine | Engine code | Stock | Stage 1 | Flash access |
|---|---|---|---|---|---|
| Audi A2 8Z 1999–2005 | 1.2 TDI | ANY | 61 hp | ~75 hp / ~145 Nm — injection duration/ | OBD flash via KWP2000 on EDC15; immo separate from flash; bo |
| Audi A2 8Z 1999–2005 | 1.4 TDI | AMF | 75 hp | ~90 hp / ~195 Nm — PD injection, boost | OBD flash via KWP2000 on EDC15; immo separate from flash; bo |
| Audi A2 8Z 1999–2005 | 1.4 TDI | ATL | 90 hp | ~110 hp / ~235–240 Nm — PD injection, | OBD flash via KWP2000 on EDC15; immo separate from flash; bo |
| Audi A3 8L 1996-2003 | 1.9 TDI 8v | AGR/ALH | 90 hp | ~115-120 hp / 240-250 Nm | OBD KWP; immo-gated; some EDC15V need bench/chip |
| Audi A3 8L 1996-2003 | 1.9 TDI 8v | AHF/ASV | 110 hp | ~135-140 hp / 285-290 Nm | OBD KWP; immo-gated |
| Audi A4 B5 1995–2001 | 1.9L I4 8v TDI VP37 rotary-pump | 1Z / AHU / AFN / AVG / A | 90–115 hp hp | ≈120–140 hp / +70–90 Nm — remap (fuel | OBD KWP2000 flash (EDC15, checksum-only; no immo wall for fl |
| VW Caddy 9K 1995-2003 | 1.9L I4 8v TDI | ALH / AGR (TDI). AEY/AGP | 90 hp | ~110-125hp/240-280Nm | OBD (KWP2000) / bench; light security |
| VW Golf 1.9 TDI (non-PD, reference) Mk4 1997-2004 | 1.9L 8v TDI | ALH (US) / AHF / ASV / A | 90-110 hp | ~110-130 hp / 235-260 Nm (remap raises | OBD K-line KWP2000; immo + checksum; some full reads need BD |
| Volkswagen Jetta / Bora TDI Mk4 1999-2004 | 1.9L 8v TDI | ALH (AHF/ASV EU) | 90 (110/115 EU) hp | ~90 -> 115-125 hp with a large low- | OBD EDC15 (immo + checksum). Older cars often need a KKL/K-l |
| Volkswagen New Beetle 9C 1998-2010 | 1.9 TDI VP37 | ALH | 90 PS / 89 hp hp | ~115-120 PS / ~240-250 Nm (map + sligh | OBD flash (EDC15V); immo + checksum; mature/open |
| VW Passat B5 1996-2005 | 1.9L TDI 8v | AFN / AHH / AHU / AVG | 90-110 hp | ~130-140 hp / +70 Nm (quantity/duratio | OBD flash via KWP2000 (well-supported, largely open) |
| VW Polo 9N 2001-2005 | 1.4 TDI PD 8v 3-cyl turbo diesel | AMF / BAY | 70-75 hp | 90-100 hp / +40-45 Nm — injection dura | OBD flash (KWP2000), immo/checksum handled; EDC15 OBD-friend |
| VW Sharan 7M 1995-2010 | 1.9L I4 8v TDI | 1Z / AHU / AFN / AVG | 90 / 110 hp | ~130hp/290Nm | OBD (KWP2000); bench via boot pins; immo present but flash g |
| VW Transporter T4 1990-2003 | 1.9L I4 8v turbo-diesel | AAZ | 68 hp | n/a (mechanical) | None (mechanical injection); boost/fuel-screw adjustment onl |
How confident is this?
SOLID (high): MCU = C167, external NOR flash (typ. 512 KB), little-endian; K-line-only KWP2000; immo lives in the separate EEPROM so OBD MAP flashing is immo-independent (major contrast with ME7 petrol); the MIN()-selection lockstep (driver wish -> full-load IQ -> MAF smoke -> MAP smoke -> torque/quantity limiter); the identified tuning maps and their smoke/torque/boost lockstep; modular-additive (not CRC) checksums corrected in WinOLS; general staging direction. CORRECTED vs the draft and now SOLID: OBD flash = KWP2000 + public security-access seed/key + RAM flash-loader (pin-less), NOT the C167 bootstrap; bench recovery = C167 BSL 'boot mode' via the boot pin, NOT 'BDM' (BDM is EDC16/MPC5xx); the 1.2 TDI Stage-1 torque figure lowered to ~170-200 Nm to respect the ASG clutch (the draft's 230-250 Nm was self-contradictory); the bogus boost label 'SVBL' removed; the 'MSA15' hybrid caveat replaced with the real pre-EDC15 (1Z/AHU) and later-EDC16 (BMS) caveats. MEDIUM (directional, validate per car): exact per-turbo boost ceilings, exact mg/stroke and duration-limit numbers (engine/turbo/SW/nozzle-specific), EGT thresholds, and ASG clutch slip torque (~170-200 Nm). THIN / MUST-VALIDAT
VAGPULSE reads, backs up, tunes and flashes these ECUs over OBD from a Windows laptop - diagnostics, fault codes, coding and Stage 1-3 maps in one app, with your original file saved first and checksums corrected automatically.
See VAGPULSE