VETuner Open App →

Configuration Health Check Reference

This page lists every configuration check VETuner performs automatically after connecting to your ECU in Focus Mode. Use it to understand what each check means and where to fix it.

See the Configuration Health Check overview if you want to know when and why these checks run rather than the full reference.

How the check engine works

VETuner checks your ECU's current configuration values — the live data read from the ECU after connection, or the values loaded from a tune file — against a fixed set of rules. Each rule targets a specific constant by name and evaluates its value using one of the rule types described below. Only constants that exist in your ECU's firmware definition are checked; parameters absent from your firmware are silently skipped.

Rule types

RuleWhat it does
nonzeroFails if the value is exactly zero. Used for parameters where zero is never valid (e.g. cylinder count).
minFails if the value is below a threshold. Used for parameters that must be above a minimum (e.g. dwell time must be at least 0.5 ms).
maxFails if the value exceeds a threshold.
rangeFails if the value falls outside a defined minimum-to-maximum window.
flat_tableFails if every cell in a 2D table (like a VE table or AFR target table) contains the same value. A flat table almost always means the ECU has never been calibrated.
inverted_pairFails if one value is greater than another when it should be the opposite. Currently used to detect when tpsMin is higher than tpsMax, meaning the TPS calibration was performed backwards.

Unconfigured ECU detection

When all three critical checks fail at once — cylinder count is zero, injector count is zero, and required fuel is zero — VETuner recognises that the ECU is almost certainly running on factory defaults rather than a real tune. The prompt may also appear with other combinations of critical and flat-table failures. Instead of walking you through dozens of individual fixes, it offers to load a tune file so you can start from sensible values.

Full check list

CheckParameterRuleSeverityWhat it meansWhere to fix
Cylinder count not setnCylindersnonzerocriticalThe cylinder count is zero or invalid. Every fuel and ignition calculation depends on this — the engine will run extremely rich or refuse to start until corrected.Engine Constants
Injector count not setnInjectorsnonzerocriticalThe number of injectors is zero. No fuel will be injected until this matches your engine.Engine Constants
Required fuel is zeroreqFuelmin: 0.5criticalRequired fuel is zero — the base fuel pulse width. If zero, the engine receives no fuel at all.reqFuel calculator
Injector opening time not setinjOpenmin: 0.05warningInjector dead time (opening time) is zero or not set. This causes incorrect fuelling at low pulse widths, particularly at idle. Typical values are 0.7–1.5 ms at 14 V.Injector settings
Coil dwell time not setdwellrunmin: 0.5warningRunning dwell time is zero or extremely low. The ignition coil will not have time to charge, causing a weak or absent spark. Typical values are 2–4 ms.Ignition settings
VE table appears flatveTableflat_tablewarningEvery cell in the VE table contains the same value. A flat VE table is a strong sign the ECU has never been calibrated — real engines always need non-uniform VE values.Load a tune file
AFR target table appears flatafrTableflat_tablewarningEvery cell in the AFR target table contains the same value. A properly tuned engine needs richer targets under load and leaner targets at cruise.Load a tune file
Spark advance table appears flatadvanceTableflat_tablewarningEvery cell in the spark advance table contains the same value. Ignition timing should vary considerably across the RPM and load range.Load a tune file
TPS calibration invertedtpsMin / tpsMaxinverted_pairwarningThe closed-throttle ADC value (tpsMin) is higher than the open-throttle value (tpsMax). The TPS gauge will read incorrectly. Re-run the TPS calibration.TPS Calibration