Read the codes before you book the dyno
Fault codes are the cheapest diagnostic tool you own. A basic OBD-II scanner reads stored, pending, and permanent codes from the engine control module, and the pending set is the one that matters most before a dyno session. Pending codes are faults the ECU has seen once but not yet confirmed. They do not always light the dash, and they are exactly the kind of thing that turns into a live misfire at 6,000 rpm under load.
Pull codes with the key on, engine off, then again with the engine at operating temperature and idling. Write down every code, not just the ones you recognize. A P0300 random misfire and a P0302 cylinder 2 misfire tell you different things. A P0171 lean bank 1 code on a turbo car often points to an intake leak, a tired MAF sensor, or a fuel pressure problem, and none of those get fixed by a flash.
Freeze frame data is worth more than the code itself. Most scanners capture the engine speed, load, coolant temperature, and short and long term fuel trims at the moment the fault set. If the freeze frame shows the fault triggered at 2,400 rpm and 40 percent load, you know the problem lives in part throttle, not at the limiter. That single frame can save an hour of dyno time.
If you are working on a European platform and want the fault logic explained in plain terms, the write-ups at engine reprogramming diagnostics walk through how a pre-diagnosis is structured before any calibration work starts. The same order applies whether you are on a bench flash or a dyno pull: read first, then decide.
What checks must pass before the dyno?
A dyno session is a load test, and a load test exposes every weak system on the machine. Run these checks in order and do not skip one because it looks fine on the stand.
Compression and leak down. A cylinder that is 15 percent down on its neighbor will show up as a rich or lean condition the ECU tries to trim out. Fix the mechanical side first. No calibration recovers compression.
Fuel pressure and volume. Check static pressure at the rail, then check that pressure holds after the pump shuts off. A pump that bleeds down overnight gives you a hard start and a lean spike on the first pull. On a returnless system, watch the pressure under load, not just at idle.
Intake and boost integrity. Smoke test the intake tract. A cracked charge pipe or a leaking intercooler coupler costs you boost and skews the air mass reading. On a naturally aspirated engine, check the air filter and the MAF housing for an unmetered air leak after the sensor.
Ignition condition. Pull the plugs and read them. Check gap, check for oil fouling, check the coil boots for carbon tracking. A plug that is one heat range too hot will show as timing pull on the dyno and you will blame the tune.
Fluids and temperatures. Oil at the correct level and not diluted with fuel. Coolant full and the fan cycling. A dyno pull with a cold engine or a half full cooling system gives you a number you cannot repeat.
Battery voltage and grounds. Low voltage during a flash can brick a module. Check the battery under load and clean the ground straps. This is the cheapest insurance in the whole process.
Tire condition and strapping. A tire with a flat spot or a wheel that is not centered on the drum will give you a vibration you will chase for an hour. Check the rear tire pressure and the strap points before the first pull.
Why does a tuner refuse a machine with a fault?
A tuner refuses the work because accepting it transfers the risk to the shop. If the machine arrives with an active misfire and leaves with a fresh calibration, the customer will blame the tune for the misfire. The dyno graph will show a dip, the customer will point at the file, and the shop spends the next week proving the fault was there before the flash.
There is a second reason. A calibration is written against a known good baseline. If the ECU is already pulling 8 degrees of timing to protect the engine from knock, the tuner cannot tell whether the new file is safe or whether the knock sensor is doing the work. You cannot tune around a fault you have not identified, because you do not know which correction is the fault and which is the tune.
A third reason is warranty and liability. A shop that flashes a machine with a known fault and then hands it back has documented, in its own invoice, that it worked on a machine that was not healthy. If the engine lets go two weeks later, that invoice is the first thing a lawyer reads.
So the refusal is not gatekeeping. It is the same logic a doctor uses when he will not operate on a patient with an untreated infection. Fix the infection, then schedule the surgery.
The pre-dyno checklist, in order
Use this as a gate. If any line fails, stop and fix it before you book time.
- Scan stored, pending, and permanent codes. Record freeze frame data for every code.
- Confirm no active misfire at idle, at 2,500 rpm steady, and at a snap throttle.
- Compression and leak down within 10 percent across all cylinders.
- Fuel pressure within spec at idle and holding after shutoff.
- Smoke test the intake and boost tract, no leaks.
- Plugs, coils, and boots inspected and within spec.
- Oil, coolant, and battery voltage checked under load.
- Tire pressure and strapping points confirmed.
- Baseline pull on the dyno with the stock file, logged, before any flash.
That last line matters more than people think. A baseline pull with the stock calibration gives you a reference. If the baseline itself shows a fault, you have proof the problem predates the tune, and you have a clean place to start.
What the baseline pull tells you
A baseline pull is a diagnostic, not a formality. Watch the air fuel ratio across the pull. A ratio that drifts lean at the top end on a stock file points to a fuel delivery limit, not a calibration choice. Watch the ignition timing the ECU commands. If it is pulling timing at peak torque, the engine is telling you something about fuel quality, intake temperature, or knock.
Watch the boost curve on a turbo car. A curve that spikes and then falls off can be a wastegate issue, a boost control solenoid, or a tune that is protecting itself. Watch the coolant and intake air temperatures across the pull. A pull that starts at 90 degrees Fahrenheit intake air and ends at 160 is a heat soak problem, and the next pull will be worse.
Log every channel you can. A dyno session that produces one horsepower number and no data is a wasted session. The data is what lets you compare the before and after honestly, and it is what tells you whether the machine is actually healthy enough to accept more load.
After the checks pass
Once the codes are clear and the checks pass, the dyno session becomes straightforward. You have a baseline, you have a healthy engine, and you have a known starting point. The tuner can write a file against a real baseline instead of guessing what the engine was doing before.
That is the whole point of diagnosis before the dyno. It is not paperwork and it is not a delay. It is the difference between a number you can trust and a number you have to explain away.