All topics
Getting started

Your first session, step by step

Baseline, one part, fuel, timing, finish: the whole loop on one car using the app's own controls. About twenty pulls.

Start with the Kestrel: no boost, honest, hard to hurt. The same steps work on every car; the turbo cars add stage 5.

Before the first run

  1. Settings (top right): pick your units and whether the λ table shows λ or AFR. Leave damage realism on Realistic and X-Ray off.
  2. Keep auto-abort on. It lifts off when the engine starts damaging itself, the way an operator would.
  3. Garage: pick the car in the list and, if it is not already in the garage, select it. Leave the mods, fuel and day alone for now. Click Go to the dyno.

Step 1: the baseline

  1. Set Speed to 1× real time for the first pull and press RUN SWEEP (or Space). Watch the gauges: MAP climbing, λ measured against target, timing and retard, knock level against its threshold, EGT, injector duty.
  2. Read the result card: peak power and torque, λ error at wide-open, knock counts, max EGT, duty. Open Diagnostics: a stock car shows tips, not warnings.
  3. Runs & compare: set this run as the baseline and star it. Switch Speed to Instant for the rest of the session.

Step 2: fit one part

  1. Garage → Mod shop → one part (the intake is a good first one). Read the retune banner: it lists what the ECU now believes wrongly.
  2. If the part is injectors, a pump or a fuel change, the banner names a scalar: open the Scalars tab on the dyno page and type the installed value (injector flow and dead time, or the fuel's stoich) before the first run. The app never does this for you, and the pre-run checks under RUN will keep warning until it is done. An intake needs no scalar change.
  3. Back on the dyno, press Cool down, then run. Note the peak against the baseline on the run strip.
  4. Set the Overlay to Cells hit, then to Measured λ (the wideband's reading averaged into each cell) and λ error % (the same thing as a percentage of the final target). The lit cells are where the table and the engine disagree. Open Diagnostics and read the fuel entries.

Step 3: fuel (stage 2)

  1. Overlay: Suggested VE. Select the lit cells in the region the pull actually covers (high load, the rpm range of the sweep).
  2. In the VE correction panel read one cell's worked line: VEold × (λmeasured ÷ λtarget). The target is the final one, protection enrichment included, so you never chase fuel the ECU added on purpose.
  3. Apply to selection. Cool down. Run. Repeat until the λ error is under 1 % average and 3 % in any visited cell. Two or three passes is normal.
  4. Do not touch the Ignition table during this step. The peak may move either way, and after a big airflow change it can move a lot: if the old table was lean, the correction makes the mixture richer and you lose the power the lean mixture was making. That power was never yours; it was an unverified mixture at full load. This step is about accuracy; power by choice comes at stages 3 to 5.

Step 4: targets (stage 3)

  1. Open Target λ. Stock targets are usually right for stock-ish hardware: stoich at light load, rich under load, richer under boost.
  2. Change a target only with a reason: EGT in the protection band (richer), knock you cannot fix with timing (richer, up to a point), or a top end richer than its knock margin needs (leaner, watching EGT and duty).
  3. Leaner at full load heats the piston crown before it heats the exhaust. On a boosted engine at high rpm, 0.80 can be cooking the pistons while EGT reads fine; the Health panel is the only gauge for it. Lean the top end in 0.01 steps and check health after every pull.
  4. Any λ change moves the knock limit, so step 5 starts over after it.

Step 5: timing (stage 4)

  1. Open Ignition. Select the block the sweep lives in: on an NA car the 85–105 kPa rows, on a turbo car from about 140 kPa up, all rpm.
  2. Press + once (0.5°). Cool down. Run. Compare: did torque rise beyond the noise band? Did counts or retard rise? Set the Overlay to Knock level / threshold to see which cells.
  3. Repeat until a step gives no torque or raises the counts. Take that step back out. That block is done.
  4. If counts appear in one region only, back that region off 0.5° rather than the whole block. Keep the map smooth: a flat offset on a block, not a single hot cell.
  5. The Δ vs baseline tune overlay shows every cell you changed against the baseline's map. Look at it before you star a run.

Step 6: boost (turbo cars, stage 5)

  1. If you fitted a turbo, spring, solenoid or wastegate: set every Boost cell to 0 first and make a short part-throttle pull in real time to measure the base boost (Peak MAP on the result card). The stock cells were solved for the old parts and will overboost. Then set the cut 25–30 kPa above that base.
  2. Boost (WG duty) table: +5 % on the rpm range you want more from. Set the boost cut above the new target first.
  3. Closed-loop alternative: Scalars → Boost control → Closed-loop. The Boost target tab appears; set the boost you want per rpm and the controller trims the duty table (now "Base duty") toward it. Watch the Boost target trace against the boost trace in the Log viewer and the WG trim. When the trim settles near zero the base table is right; when it sits at its limit, the diagnostics tell you which way the base table is wrong.
  4. Run and read MAP against the target, overshoot on spool, turbo speed, injector duty and EGT. Each has a limit the Diagnostics will name.
  5. More boost means cells the table has never fuelled: back to Step 3 for them, then Step 5.

Step 7: finish

  1. Three cooled pulls in a row with no warnings, λ error inside the limit, counts 0–2, health unchanged.
  2. Garage → day → Hot 38 °C. One pull. Then Cold 5 °C. One pull. No warning and no health lost on either? Back to Mild. (Hot finds knock; cold finds cylinder pressure and crown heat, and on a boosted engine the cold day is the dangerous one.)
  3. Star the run, set it as the baseline, Settings → Export project.

Part-load cells: steady-state

A sweep only visits the wide-open rows. For cruise and part-throttle cells switch the dyno to Steady-state, set an rpm and a throttle, and let the engine sit: the live cursor shows the cell, follow-cell keeps it selected, and the live VE suggestion and the Δ-torque readout answer the same questions a pull does, one cell at a time. Watch ECT: a long hold warms the coolant and the ECT trim starts pulling timing.

Keyboard: Space runs or aborts; + and − step the selection (Shift for the big step); Enter types a value into every selected cell; I interpolates; S smooths; Ctrl/Cmd+Z undoes. PgUp/PgDn and [ ] move rpm and throttle in steady-state.
Now try it.

Pick a car in the garage, make a baseline pull, correct the fuel, add timing, finish. The whole loop takes about twenty pulls. Free, in the browser, no account.

Start your first session →