Race Timer

Elite Software Programmer › ESP - Main setup › FunctionsUpdated Sep 2026

A drag car rarely wants the same boost and timing at the hit as it does at the top of fourth. The Elite Race Timer gives the ECU a clock that starts when the run starts, so you can build tables that change as the pass goes on. Here is how to set it up and how we use it.

What the Race Timer gives you

The Race Timer is a stopwatch inside the ECU. It writes to a channel called Race Time, in seconds with millisecond resolution, and you can use that channel anywhere a table or function lets you pick an input. Drag racers use it most, because boost, timing and traction strategies often need to follow time down the track rather than RPM or gear. Nothing stops you using it for circuit racing or anything else that benefits from an event clock.

How the timer behaves

  1. At ECU power-up the timer is stopped, reading 0.
  2. When your start conditions become true, it begins counting.
  3. If pause is enabled and its conditions become true, it freezes. When they stop being true, it carries on.
  4. When the reset conditions become true, it stops and returns to 0.

Two details trip people up. First, a value of 0 always means stopped. Second, if the start and reset conditions are both true at once, reset wins and the timer stays stopped. Design your conditions so they can't overlap by accident.

Building a condition

The Start, Pause and Reset tabs all work the same way.

SettingWhat it doesOur advice
Number of OperationsHow many checks make up the condition. Unused ones are greyed outUse as few as possible. Simple conditions are easier to debug
ChannelClick Select to search every ECU channelPick channels that change cleanly, like switches or speed
Comparison typeEqual, not equal, greater, less, or the "or equal to" versionsGreater-than on a small threshold avoids noise at exactly zero
Comparison valueThe number the channel is compared withLeave margin above sensor noise
Joiners (And / Or)Link the operations togetherRemember And is evaluated before Or

And comes before Or

If you mix joiners, the ECU groups the And terms first, the same way multiplication comes before addition in math. So "A Or B And C" is read as "A, or both B and C". If you meant "(A or B), and C", restructure the operations so the logic can't be misread.

Pause and reset

The pause condition is off by default, since most people never need it. Tick Enable Pause Condition on the Pause tab if you do, and build it like a start condition. The Reset tab is set up identically, just with conditions that mean the run is over.

Worked example: a drag car

Here's the kind of logic we'd use. The exact channels depend on how your car is wired.

  • Start: the car has left the line. For example, vehicle speed greater than a few mph, or your transbrake or launch button input switching off.
  • Reset: the run is over and the car is stopped. For example, vehicle speed back near zero and engine speed down near idle.

With Race Time counting from the launch, you can put it on the axis of a boost target or ignition table and taper power in during the first second or two, then let it build as the tires hook. Pair it with launch control on the line and traction control down the track, and use boost control tables with time as an input.

Check it in logs first

Before you let Race Time drive anything important, make a few passes with it only logged. Confirm it starts where you expect and resets every time. A timer that fails to reset will start your next run partway down its tables.

Troubleshooting

SymptomUsually
Timer never startsReset condition is also true at the line, so reset wins
Timer starts in the staging lanesStart threshold too low or triggered by sensor noise
Timer never returns to 0Reset condition can never be met, or uses the wrong channel
Logic behaves unexpectedlyMixed And/Or joiners being evaluated And-first

For other time-based logic, look at generic timers. Want help building a strategy for your car? Talk to us.