Pre-injection (DAMOS folder InjCrv_PiI1 / map InjCrv_qPiI1Bas on EDC16/17/MD1) and post-injection maps look similar in EDC17 binaries but differ on four clear tells: pre-injection values are 1-2 mg (10× smaller than post-injection’s 10-20 mg), pre covers the entire RPM/load map while post has zeros at high RPM and high load corners, post-injection SOI is negative while main and pre-injection SOI are positive, and post-injection always sits last in the default map tree. Below — the 4-tell method walked through on a CP BMW EDC17 binary.
This is the text summary. Paid attendees of Q&A #1 (April 2026) got the live walkthrough — I demonstrated this on a real ECU binary in WinOLS, pointing to actual maps, scrolling DAMOS folders, showing byte-level changes. For the full diesel calibration methodology, see the Bosch EDC17 tuning guide →. Register free for our next Open Q&A → — live with me, agenda forming.
The question — from Q&A #1
Denis asked during our first live Q&A:
“How do you find the correct pre-injection maps on EDC or MD units? How do I correctly distinguish pre-injection maps from post-injection maps, since they have similar values and are visually similar? Can you show me using a factory DAMOS as an example?”
It’s a fair question. Pre- and post-injection maps sit close together in the map tree, both have small values, both look like similar grids in WinOLS®. Editing the wrong one is one of the more common slip-ups in early Stage 1 work.
How I tell them apart — the 4-tell method
In our Q&A #1 (00:04:38) the short answer was: post-injection has bigger values, and pre-injection covers the whole RPM range from beginning to end. That’s the headline — below are all four tells in detail, then the on-screen walkthrough on a CP BMW.
Tell 1 — Value magnitude (10× difference)
| Map type | Typical values | Raw factor |
|---|---|---|
| Pre-injection | 1-2 mg (small, precise) | ~0.01 factor |
| Post-injection | 10-20 mg (10× larger) | ~0.01 factor |
The order-of-magnitude difference is the fastest check. If you’re looking at a map with values around 0.5-2 mg → pre-injection. If you’re looking at values around 10-25 mg → post-injection.
Tell 2 — Zero pattern (coverage vs corners)
Pre-injection coverage:
“Pre-injection must fire at all RPMs — otherwise the engine won’t work properly, will smoke.” (00:11:29)
Pre-injection values exist across the entire map — all RPM, all load cells. Sometimes the first column (very low RPM) or the last row (extreme high load) has zeros, but the body of the map is populated end-to-end.
Post-injection coverage:
Post-injection has islands of values plus zeros at high RPM / high load corners. From the Q&A (00:05:13):
“At higher revs we have enough energy to start burning the [DPF] filter. If you drive very fast on the highway, it’s easy to self-ignite the filter. But if you drive very slowly and the system wants to start burning, this will be more difficult — so we need post-injection then.”
So post-injection helps DPF regeneration at low-to-mid RPM/load where exhaust temperature isn’t high enough on its own. At high RPM and high load the corners read zero — post-injection isn’t needed there.
Tell 3 — Post-injection SOI is negative
The Start of Injection (SOI) angle map sits near each value map. Post-injection SOI is negative — that’s the giveaway. From the Q&A (00:08:28):
“You’ll always have start of injection for post-injection which is negative — this is why it is at the top.”
Open the angle map adjacent to a value map. Negative numbers → post-injection. Positive angles → pre or main.
Tell 4 — Default order in map tree
Standard EDC17 structure after the torque limit section, in order from first to last (00:06:19):
- Main injection SOI —
InjCrv_MI1/InjCrv_phiMI1Bas(temperature-sorted — cold first; the correction factors at the very front can be omitted) - Limits section (looks like a small pre-injection map; axes usually precede limits)
- Pre-injection section —
InjCrv_PiI1/InjCrv_qPiI1Bas - Main injection section — main injection timing, looks like a VNT map when zoomed
- Post-injection section —
InjCrv_PoI/InjCrv_qPoI(last)
If you’re uncertain after tells 1–3, count down from the torque limit. The last injection section is post-injection. The section above main injection timing is pre-injection.
Some MD1 and EDC17 variants reorder the injection block — for that map-tree walkthrough see KB-07 — SOI timing degrees vs percent.
On-screen walkthrough — CP BMW EDC17
In the Q&A I opened a CP BMW EDC17 binary in WinOLS and walked through the identification step by step.
Step 1 — Find the torque limit
Easy to identify (large values, structural boundary). Everything injection-related sits after the torque limit in the default layout.
Step 2 — Walk through post-injection
From the Q&A (00:07:31):
“Here we have example of post-injection. Values are about 20 mg (raw value 2000, factor 0.01). Islands of values here and zeros in this zone for very high RPM and high load.”
Post-injection confirmed by: last position + 20 mg value + zero corners.
Step 3 — Walk back to pre-injection
Before reaching main injection I zoomed in to see ~2 mg values (00:09:33):
“Pre-injection is about 2 mg — 10 times smaller than post-injection. So we can easily see the difference. I see: aha, here is a big structure of two maps together which are pre-injection.”
Pre-injection confirmed by: position before main → 2 mg value → full-map coverage (no zero corners).
Step 4 — Selection tip
From 00:10:47:
“It’s a good idea to select from the back — from the bottom. Why? Because sometimes people make a mistake and start from this 30 value, which is not part of this map.”
When selecting a map in WinOLS, start from the bottom-right cell and drag to top-left. Starting from the top can accidentally pick up a stray value (like 30) that sits next to the map but isn’t part of it.
The 4-tell method — quick-reference card
Given a candidate injection map, check:
1. Value magnitude:
~1-2 mg → pre-injection
~10-20 mg → post-injection
2. Zero pattern:
Full coverage, values everywhere → pre-injection
Islands of values, zeros at high-RPM/load corners → post-injection
3. SOI sign (adjacent angle map):
Positive angle → pre or main injection
Negative angle → post-injection
4. Position in map tree (default EDC17):
Third section after torque limit → pre-injection
Last injection section → post-injection
If three of four tells point the same way, the map is identified. If they disagree, slow down and re-check the binary against a DAMOS reference before editing.
Why this matters
Editing the wrong injection map doesn’t blow anything up immediately, but it does send fuel into the wrong place. Pre-injection edited as post → main combustion timing disturbed (smoke, rough idle, cold-start complaints). Post-injection edited as pre → DPF regen logic gets the wrong inputs (regen cycles drift over time).
Neither failure mode shows up on the dyno during a Stage 1 verification run — they surface weeks later as “it ran fine in the shop and now the customer is back.” The 4 tells take a minute to apply and remove the guessing step.
Maps referenced in this guide
| Concept | DAMOS Folder | Map ID | ECU | Deep dive |
|---|---|---|---|---|
| Pre-injection fuel quantity | InjCrv_PiI1 |
InjCrv_qPiI1Bas |
EDC16, EDC17, MD1 | This KB (hub) |
| Main injection SOI timing | InjCrv_MI1 |
InjCrv_phiMI1Bas |
EDC16, EDC17, MD1 | KB-07 — SOI Italian Highway zones |
| Post-injection values | InjCrv_PoI |
InjCrv_qPoI |
EDC16, EDC17, MD1 | — |
Related on Tuners Guild
- Full EDC17 methodology — map tree deep dive: Bosch EDC17 Tuning Guide (pillar reference)
- Pre-injection as a primary recovery lever: KB-02 Why does my 21% diesel tuning strategy give only 10-15% real gain? — pre-injection optimisation is one of the recovery paths
- SOI timing workflow: KB-07 Should I change SOI timing by degrees or percent on diesel?
- Rail pressure three-zone rule: KB-05 Is rail pressure +10% safe on diesel — which zones and why?
- EGR off and the DPF stops regenerating: The +20% post-injection rule — full article on the blog — where the post-injection family from this method becomes the fix
- Complete diesel workflow: Chip Tuning Diesel — Practice course
Want the full map identification workflow?
The 4-tell method is chapter 1 of our Chip Tuning Diesel Practice course — the foundation everything else builds on. The course walks through map identification across EDC17 variants (C46, C74, CP04, CP14, CP44, CP56), MD1 variants, and older EDC16 — including the DAMOS-matching workflow and Ghidra cross-reference method when DAMOS is unavailable.
See the Chip Tuning Diesel course →
Your turn
Learning to identify injection maps on a different ECU family — EDC16, MD1, Delphi DCM6, Siemens SID? Share:
- ECU + binary you’re working with
- Which tell from the 4-tell method was most useful for your identification
- Any variants where the 4-tell method breaks (map pattern doesn’t match the expected signatures)
- Whether DAMOS was available or you worked map-only
Cross-ECU comparison helps everyone calibrate the 4-tell method across families.