Repository navigation
Bench Testing
Bench testing means commanding each output on its own, with the engine not running, to confirm it is wired to the channel rusEFI thinks it is.
Do this before the first start. As How to Start an Engine puts it: "incorrect wiring or channel setting is like having the HT leads in the wrong order. You will fuel and spark the wrong cylinders." An injector on the wrong channel is not a tuning problem you can chase later — it is a mechanical hazard, and it is invisible until the engine is turning.
Bench testing also confirms the opposite: that an output which does nothing is genuinely miswired, rather than a configuration you have not found yet.
- The engine must not be running. rusEFI refuses to run injector and ignition bench tests while the engine is running, but do not rely on that as your only safeguard.
- Fuel is flammable. Injector tests spray fuel if the rail is pressurised. Have a fire extinguisher to hand, and consider testing injectors out of the rail or with the pump disabled if you only want to hear them click.
- Ignition coils produce high voltage. If you are checking for a spark, ground a spare plug properly and keep clear of it.
- Relays and pumps will actually run. Make sure nothing is going to be damaged by a fuel pump, fan or starter energising unexpectedly.
Open rusEFI tuner's Messages tab and enter the commands below. Check each channel against your wiring and settings first. Times are in milliseconds.
| Command | Parameters | Notes |
|---|---|---|
fuelbench |
on ms, off ms, count | Firmware example: "cylinder #2, 5ms ON, 1000ms OFF, repeat 3 times" |
fuelbench2 |
cylinder, on ms, off ms, count | Same, with the cylinder chosen explicitly |
sparkbench |
on ms, off ms, count | Firmware example: "5 ms ON, 400 ms OFF, two times" |
sparkbench2 |
coil, on ms, off ms, count | Same, with the coil chosen explicitly |
The cylinder and coil numbers are the human-facing numbers, so 1 is cylinder one.
| Command | Parameters | Tests |
|---|---|---|
fuelpumpbench |
none | Fuel pump relay |
fuelpumpbench2 |
duration ms | Fuel pump for a chosen duration |
mainrelaybench |
none | Main relay |
starterrelaybench |
none | Starter relay |
fanbench |
none | Cooling fan |
fanbench2 |
none, or duration ms | Second cooling fan |
acrelaybench |
none | Air conditioning compressor relay |
milbench |
none | Check engine light |
boostbench |
none | Boost control valve |
hpfpbench |
none | High pressure fuel pump valve, see GDI status |
tcusolbench |
solenoid, on ms, off ms, count | Transmission solenoid. Firmware example: "solenoid #2, 1000ms ON, 1000ms OFF, repeat 3 times" |
| Command | Parameters | Purpose |
|---|---|---|
ping_wideband |
index | Check a wideband controller is responding |
set_wideband_index |
hw index, index | Set a module's index |
update_wideband |
hw index | Update module firmware |
These require CAN support in the build.
In TunerStudio, open Controller → Bench Test & Commands. See Get Running with a Plug-and-Play ECU for the basic checks; the precautions also apply to wire-in ECUs. Use your wiring and settings to identify injector and spark channels, not just cylinder count.
There is also a stop engine button on the same screen, which is the correct way to stop a running engine without cutting power to the ECU.
Under Outputs → Speedometer output, configure the Output pin and set Test frequency in Hz (100 Hz by default). Press Test Speedo to drive that output at the requested frequency for three seconds, even while the vehicle is stationary. It then resumes normal output based on vehicle speed and Pulse per km. A test frequency of 0 pauses pulses for those three seconds. Pressing the button again restarts the three-second test. The test requires a configured, initialized output pin.
Work through the outputs your engine actually uses and confirm each one individually:
- Every injector fires on the channel that matches its cylinder, not just "some injectors click". Test them one at a time — see Injection Modes for how many channels your setup should be using.
- Every coil fires on the channel that matches its cylinder or pair. On wasted spark, confirm which pairs you expect — see Ignition Modes.
- Fuel pump primes.
- Any relay or light your build depends on.
If an output does nothing, check the pin assignment before rewiring anything. If an output fires on the wrong cylinder, fix it now — this is the entire reason for the exercise.
- How to Start an Engine — the wider first-start checklist
- Get Running with a Plug-and-Play ECU — walkthrough of the bench test screen
- Get Running with a Universal ECU
- Troubleshooting
- Error Codes — if the ECU is refusing to fire, the cut code says why
Command names and parameters are taken from firmware/controllers/bench_test.cpp in the rusEFI firmware, with the example usages quoted from that file's own comments.
- Getting Started roadmap
- How to search the Wiki
- Quick Start
- rusEFI tuner
- Support & Community
- How to create a TunerStudio project
- rusEFI Online
- FAQs and HOWTOs
- Acronyms & Terminology
- Wiring & Connectivity Overview
- Patchcord Color Scheme
- Bench Testing Outputs
- Sensors & Calibration
- Wideband Oxygen Sensors
- Trigger - Sensor Hardware
- Trigger - Configuration
- Trigger - Supported Patterns
- Trigger - Setting Offset
- Trigger - Troubleshooting
- Cranking
- Idle Control
