diff --git a/tunie/research/reference-maps/DEVICES.md b/tunie/research/reference-maps/DEVICES.md index eb2af1d..c325703 100644 --- a/tunie/research/reference-maps/DEVICES.md +++ b/tunie/research/reference-maps/DEVICES.md @@ -45,8 +45,24 @@ checksum is computed at flash time and is out of scope for the read/edit tool.) ## Confidence -- Flag **locations** (0x53801 / 0x53818 / 0x53819) and semantics (1/0): **validated** - against a real NO-SAI-NO-O2 map. -- SAI-vs-O2 **labeling** of the three bytes: strong (order + delete semantics); - final SAI-only-vs-O2-only separation would need a single-delete reference map or - a DTC/bench check. +- **SAI = 0x53801: ~90% (high).** Two independent confirmations: the device-name + logic in `l.java` `lc()` resolves `Devices[0]=SAI` via `fe[33]` to exactly + 0x53801, AND the real NO-SAI map cleared precisely that byte. +- **O2 sensors = 0x53818 / 0x53819: ~80% (probable).** The map declares "NO O² + SENSORS" (the twin has two) and exactly two adjacent boolean bytes cleared + beyond SAI; the 865 has no air-flap, so airbox removal is fuel-only (no flag). + Not independently isolated — no single-mod reference map exists, and the exact + `x.a()` device-layout branch for this ECU (i27=72) is too deeply nested to + trace reliably. + +## The real-world caveat (more important than the labels) + +Correct flags are **not** a good tune by themselves. Disabling O2 forces the ECU +**open-loop**: it stops live fuel trim and runs entirely on the base fuel map. +Stock maps assume closed-loop trim at idle/cruise, so an O2-delete on an otherwise +stock map can run lean/rough. A proper delete pairs flags-off with fuel enrichment +(which is exactly why the AIRBOXBONNY reference map also changed the fuel tables). + +**Recommendation:** flash a complete, known-good delete map matching the hardware +(exhaust/filters), not hand-toggled flags on a stock map. The checkbox editor is +for understanding/building a map, not a one-click safe delete. diff --git a/tunie/viewer/build_viewer.py b/tunie/viewer/build_viewer.py index 380a9c7..7e6c886 100644 --- a/tunie/viewer/build_viewer.py +++ b/tunie/viewer/build_viewer.py @@ -103,9 +103,9 @@ def _extract_romdefs(args) -> dict: # Validated against a NO-SAI-NO-O2 reference map (see research DEVICES.md). "deviceFe": 33, "devices": [ - {"name": "SAI (Secondary Air Injection)", "rel": 0x00}, - {"name": "O2 sensor", "rel": 0x17}, - {"name": "O2 sensor (2)", "rel": 0x18}, + {"name": "SAI (Secondary Air Injection)", "rel": 0x00, "confidence": "confirmed"}, + {"name": "O2 sensor 1", "rel": 0x17, "confidence": "probable"}, + {"name": "O2 sensor 2", "rel": 0x18, "confidence": "probable"}, ], } diff --git a/tunie/viewer/template.html b/tunie/viewer/template.html index 37a3fce..1c5ff59 100644 --- a/tunie/viewer/template.html +++ b/tunie/viewer/template.html @@ -128,13 +128,19 @@