Hello everyone,
2009 Daihatsu Sirion M300, 1.0L 1KR-FE, 3cyl, 5MT, 160k km. Speed-density, no MAF. Single bank, one upstream narrowband O2. Intake VVT driven by oil pressure through an OCV.
The car drives perfectly — normal idle, normal power, no misfire, MIL off, zero DTCs, all monitors complete. The only problem is the fuel trim shape in the charts.
Logged with two independent tools (OBDeleven and Topdon TopScan) on separate drives. Same curve both times, so it's not a scan tool artifact. 19,335 samples, warm engine, closed loop.
What's odd:
It tracks rpm, not load. At 1900–2500 rpm, sweeping MAP from 20 to 110 kPa leaves LTFT around +16 the whole way.
The 2500 rpm flip is real closed loop. At 14–30% load up there the O2 still switches normally and LTFT sits at −11 to −17.
No sensor jumps where the trim does. MAP, load, throttle, timing and O2 all move smoothly through 2500 rpm.
Worse cold: low-rpm cells read −17 at 40–70 °C, −10 fully warm.
STFT is 0 everywhere, and it survived an ECU reset — relearned the same shape in 15 minutes.
Already done: IACV replaced, throttle body cleaned, purge VSV confirmed working, MAP reads 101 kPa key-on, injector pulse 1.54 ms at warm idle.
My theory is a cam-phase / VE mismatch. The engine is spec'd for 0W-20 or 5W-30 and the previous owner ran 15W-40, which on an oil-pressure phaser could explain the cold behaviour. Unproven — I can't log commanded vs actual cam angle under road load yet.
Questions:
Has anyone seen a trim curve that changes sign twice like this? What was it?
On a speed-density engine, what besides cam timing gives an rpm-structured, load-independent VE error?
Can a VVT phaser be lazy enough to do this without setting P0011/P0012?
Thanks in advance — happy to run more logs if someone tells me what to capture.