Files
samplez/tunie/research/ROAD_TEST_LOG.md
uhryniuk f830f8937d Log real-world road test results and correct/extend the CO-trim theory
New research/ROAD_TEST_LOG.md: the 2026-09-15 flash of
20262-arrow-delete-lowthrottle-composed.hex was a major real-world
success (stalling fully resolved, decel backfire much reduced but not
eliminated). Captures the live diagnostic reasoning that followed:
correcting an overly-lean-leaning framing mid-session (residual decel pop
is more likely a rich-unburned-mixture-with-no-SAI-assist problem, not a
lean one), a structural hypothesis that the Idle Fuel Trim (CO) curve
likely applies whenever the throttle is closed at any RPM rather than
only at a literal stop (only 2 of its 32 points are currently corrected,
and the untouched middle range lines up with the residual pop's RPM
window), and the reasoning for rejecting airbox-baffle removal as a fix
for decel popping specifically (wrong mechanism -- closed throttle isn't
airbox-limited -- and risks worsening the separately-flagged, still
unaddressed main-VE-table leanness gap).

Also updates TABLES.md with the CO-trim applicability open question, and
brings TUNING_GUIDE.md's "local research assets" section up to date (it
still said maps were gitignored/unflashable, both stale).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FP2GaxS9HkUdL5sLBnjKje
2026-09-16 09:07:35 -05:00

6.5 KiB

Road test log — real-world tune results

Empirical outcomes from actually flashing and riding, kept separate from the static reverse-engineering docs (TABLES.md, DEVICES.md) since this is field data, not derived facts about the ROM format.

2026-09-15 — 20262-arrow-delete-lowthrottle-composed.hex, first real ride

Flashed after several days running plain stock 20262Map.hex (SAI/O2 flags still enabled despite SAI being physically removed, snorkel already removed with zero main-table correction). Result: major, immediate improvement.

  • Stalling at lights / low-speed choking: fully resolved. Not just fixed — noticeably better than expected: "a lot more low rev and slow speed control," easier to get going, smooth at slow speeds. Attributed to the Low-throttle fuel table correction (under ~10% throttle, both cylinders, +7% to +24%) plus the two corrected Idle Fuel Trim (CO) points.
  • Decel backfire (3-4.5k RPM, 2nd-4th gear): dramatically better, not eliminated. Before: "backfires like crazy," reliably reproducible. After: 1-3 noticeable pops on a 5k→3k decel sweep in 2nd-3rd gear, and not reliably reproducible anymore (sometimes it doesn't happen at all).
  • New/newly-noticeable, minor: holding steady revs at 5k, the engine can "break up and get a tiny bit throaty." Described as minor, not concerning, bike is very rideable as-is.

User's own assessment: "In the current state I could drive it as is and be happy" — this is a real, working baseline, not a stopgap.

Diagnosing the residual decel pop — reasoning, 2026-09-15/16

Two mechanisms were on the table for residual exhaust-side popping on deceleration:

  1. Rich unburned mixture reaching the hot exhaust with no SAI assist to burn it cleanly — the classic mechanism for popping from the exhaust on decel (as opposed to backfiring through the intake, which is the lean-misfire pattern). SAI's actual job was adding oxygen downstream to assist combustion of that charge; a fuel table can't replicate an air supply by adjusting how much fuel goes in. This is the mechanism the user's own reasoning correctly pointed at (session correction: "I mean it's still rich, since that's what caused the popping" — right call, corrected an overly-lean-leaning framing from earlier in the same conversation).
  2. Unaddressed leanness in areas the current composed file doesn't touch.

Important structural correction, made mid-session: the Idle Fuel Trim (CO) table (0x53690-0x536AF, 32 RPM-indexed points, same RPM axis as the main tables — see TABLES.md) was initially assumed to apply only at a literal stop. That's likely wrong. The table has real entries all the way out to 10,000 RPM — no reason for that range to exist if it only ever applied near idle. More likely: this curve applies whenever the throttle is closed/near-closed, at whatever RPM the engine happens to be at — i.e. it's the relevant table during an active decel sweep through elevated RPM, not just idle-at-a-stop.

Given that, the composed file's coverage of this curve matters directly for the decel-popping symptom:

Curve region RPM range Correction status
Point 12 2400 Corrected (see compose_arrow_delete.py)
Points 13-26 2600-6500 Untouched — still Arrow's original values
Point 27 7000 Corrected

The user's actual decel sweep (5000→3000 RPM) runs almost entirely through the untouched middle section of this curve. That's a more precise, evidence-grounded candidate for the residual pop than either "lean the idle" (don't — that's the low-throttle fix that's working great, protect it) or "richen the higher range" broadly (that's a different symptom, different table — see below).

Two symptoms, two different tables — don't conflate them:

Symptom Condition Likely table
Decel pop closed throttle, elevated RPM (falling through 3-5k) Idle Fuel Trim (CO) curve, untouched middle points
"Breaks up/throaty" at held 5k revs open throttle, sustained load Main VE fuel tables — still 100% stock-Arrow, unaddressed

The second one is the known, previously-flagged gap (no main-table correction exists for the snorkel/baffle removal). It is a separate project from the decel-pop investigation, not the same fix.

Baffle removal considered and rejected as a fix for decel pop (2026-09-16)

User proposed removing the airbox internal baffle (on top of already-removed snorkel), reasoning more airflow would "even out" the remaining popping. Rejected, reasoning below — not because baffle removal is bad in general, but because it's the wrong tool for this specific symptom:

  • Decel popping happens at closed throttle, where the throttle plate itself (not the airbox) is the dominant restriction. Baffle removal doesn't meaningfully change airflow in that condition.
  • Baffle removal does increase airflow at every open-throttle condition — exactly the untouched main VE tables. This widens the existing, already-flagged leanness gap rather than closing it, and is likely to make the "breaks up/throaty at 5k" symptom worse, not better.
  • Per COMMUNITY_TUNING.md's TTP dyno data, baffle-removal+2-1 already lands close to full airbox removal in airflow/power terms. Pulling the baffle on top of an already-removed snorkel pushes past what either reference data point in this project actually characterizes.

Recommendation given: don't pursue baffle removal as a decel-pop fix. If pursued later for its own sake (more performance), it should come with main-table correction work, not before it.

Where this leaves things, if picked up again

Current file (derived/20262-arrow-delete-lowthrottle-composed.hex) is a good, real, working baseline — user is happy running it as-is. If further work is wanted:

  1. For the decel pop specifically: pull real reference deltas for the untouched CO-trim points in the 2600-6500 RPM range (same source methodology as the rest of this project — 20184dynoTuneSteveO2-Disable.hex vs 20186Map.hex), test in isolation, don't touch the low-throttle fix that's already working.
  2. For the main-table gap: the bigger, separately-tracked project — full VE-table composition for the snorkel/airbox-baffle removal, still not started (COMMUNITY_TUNING.md's "~1340-byte main VE overlap").
  3. Neither is urgent — current state is rideable and the user is satisfied with it. This is optimization, not a fix for something broken.