TuneFI, feature by feature

Every claim on this page is a mechanism you can point to — starting with the one decision that shapes all of it.

01

It won't let you down

TuneFI sits in parallel to the ECU, never in series — it adds fuel on top of the ECU's own injection, and it can only add. Running lean is what kills engines; TuneFI can't cause it. If its own data goes stale, it falls back to holding the map's average enrichment — a ratio that stays correct at any RPM. Injector duty is hard-capped at 90%, and a watchdog restarts the controller if it ever stops answering.

And if the chip itself dies, the ECU's path to the injector is a direct electrical connection through a single diode: no chip in that path, nothing to crash. The ECU keeps driving the injector on its own. Not perfectly — but the bike runs, and you get home.

02

The fueling brain

The map decides how much fuel. The hardware decides exactly when it lands — on the ECU's own edges, never on its own schedule.

A real fuel map, not knobs. 256 cells — RPM by throttle — with bilinear interpolation between them, in fixed point, the same math high-end units use. One lookup every revolution, 2,000 times a second at 12,000 RPM, no exceptions.

Hardware-synchronized injection. TuneFI never injects on its own schedule — it extends the pulse the ECU already fired, timed to the ECU's exact rising edge. A GPIO trigger resets a hardware timer, so sync lands within ~2–5 µs with no CPU in the timing path. The ECU never knows anyone is there.

Tail-pulse extension. Adds fuel at the tail of each injection pulse without fighting the ECU's own acceleration enrichment — no transient bog when you snap the throttle open.

Ignition retard recovery. Above 8000 RPM at full throttle, the KLX300's ECU pulls up to 6° of timing. TuneFI holds the ECU on the fully advanced map — a relay and a filtered PWM voltage do the switching — and re-adds the fuel the ECU stopped giving. How it works →

RPM from the pulse itself. No tach wire, no crank pickup to install: RPM comes from frequency-counting the injector pulses the ECU already produces — measured on the same line that carries the fuel. One less wire, one less thing to fail.

03

Everything it knows

You can't tune what you can't see. The full picture streams to your phone live, at full rate.

100 Hz logging. Throttle, RPM, injector pulse width, AFR, ECU sensors — a hundred snapshots a second, ~1,000 data points over a packed binary protocol, streamed live while you ride.

Wideband AFR. Real air-fuel ratio from a Spartan 3 wideband controller over UART. Measured, not guessed.

Factory ECU data. Coolant temp, intake pressure, speed, FI codes — read over K-line, the dealer's own diagnostic wire.

Battery health, built in. The bike's 12 V rail is measured continuously and shown live: charging system healthy, battery getting tired, or that stall on the trail costing you the battery. A stale reading drops out of the stream, and above ~19 V the display saturates — it cannot be fooled into a bigger number.

Two aux inputs. Two 0–5 V analog inputs for anything you bolt on, logged at the full rate alongside everything else.

04

How you work with it

The workflow is ride → log → correct. The tools follow the bike, not the desk.

Tune from your phone, live. Edit the map while the engine runs — change a cell, blip the throttle, feel the difference. Edits reach the running engine in milliseconds over BLE. No laptop, no dyno: the TuneFI app drives all of it.

Tunes from your rides. Ride normally; your logs become a corrected map. Start from a shared map for your exact mods and let your own data converge on your bike — TuneFI Studio turns ride logs into map corrections. No closed-loop autotune magic: your engine's real numbers, made readable.

Signed updates, for life. Firmware updates arrive over the air from the app. Every image is RSA-PSS signed; the device refuses anything it can't verify — and never rolls backward.

Open source, on the roadmap. The intention is to open the phone app, and possibly TuneFI Studio, so the parts you touch are parts you can read.

All of it on one ESP32-C6 — one cylinder today, two supported in hardware.

The short version

The TuneFI project page

How it works, why it exists, and where it's going.

Questions on any of this? Discord or the project page.