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
| Rule | What it does |
|---|---|
nonzero | Fails if the value is exactly zero. Used for parameters where zero is never valid (e.g. cylinder count). |
min | Fails 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). |
max | Fails if the value exceeds a threshold. |
range | Fails if the value falls outside a defined minimum-to-maximum window. |
flat_table | Fails 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_pair | Fails 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
| Check | Parameter | Rule | Severity | What it means | Where to fix |
|---|---|---|---|---|---|
| Cylinder count not set | nCylinders | nonzero | critical | The 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 set | nInjectors | nonzero | critical | The number of injectors is zero. No fuel will be injected until this matches your engine. | Engine Constants |
| Required fuel is zero | reqFuel | min: 0.5 | critical | Required fuel is zero — the base fuel pulse width. If zero, the engine receives no fuel at all. | reqFuel calculator |
| Injector opening time not set | injOpen | min: 0.05 | warning | Injector 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 set | dwellrun | min: 0.5 | warning | Running 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 flat | veTable | flat_table | warning | Every 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 flat | afrTable | flat_table | warning | Every 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 flat | advanceTable | flat_table | warning | Every 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 inverted | tpsMin / tpsMax | inverted_pair | warning | The 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 |
Related guides
- Configuration Health Check overview — when the checks run and what happens when issues are found.
- Starting Your Engine — the full first-start walkthrough.