Speeduino TunerStudio Setup and Bench Checks

Speeduino TunerStudio setup and bench-test guide: firmware and INI matching, project creation, sensor calibration, output tests, trigger/RPM checks, Ardu-Stim and first-crank preparation.

Before a Speeduino ECU is allowed to control a real engine, TunerStudio should be used to prove that the ECU is configured correctly, the sensors make sense, the trigger pattern is stable and every output goes to the channel you think it does. That is commissioning, not tuning.

A surprisingly large number of “bad tune” problems are actually setup faults: the wrong firmware definition, a TPS that was never calibrated, coolant and air temperature sensors using the wrong curve, injector outputs mapped to the wrong cylinders, or a crank decoder that appears to show RPM but loses sync.

This guide focuses on the TunerStudio and bench-check stage: loading firmware, creating the project, matching the correct speeduino.ini, verifying communications, calibrating inputs, testing outputs safely and proving crank/cam decoding before the first real start.

What You Need Before Opening TunerStudio

  • A Speeduino-compatible ECU or official/third-party hardware with known documentation.
  • The correct Speeduino firmware for that board/processor.
  • The matching TunerStudio speeduino.ini.
  • TunerStudio installed on Windows, macOS or Linux.
  • A USB/serial connection that is known to work.
  • A regulated bench supply or the vehicle electrical system with proper fusing.
  • A multimeter.
  • Preferably test LEDs, lamps or suitable dummy loads for output checks.
  • Optionally Ardu-Stim for simulated crank/cam patterns.

Do not begin bench testing with injectors spraying fuel or ignition coils producing high voltage. Prove the ECU logic first with safe indicators or dummy loads wherever practical.

If you are new to the platform, read our Speeduino Explained: How the DIY Arduino ECU Works first. For harness and sensor wiring, use the separate Speeduino Wiring Guide.

Firmware and INI Must Match

This is the first rule of TunerStudio setup. The Speeduino firmware running in the ECU and the speeduino.ini used by the TunerStudio project must describe the same firmware generation.

The INI tells TunerStudio:

  • What settings exist.
  • How configuration pages are laid out.
  • Which tables and gauges are available.
  • How values are scaled.
  • Which serial commands the ECU understands.
  • Which calibration and test menus TunerStudio should display.

If the firmware and INI do not match, TunerStudio may warn about a signature mismatch. Do not ignore that warning and continue changing settings. At best, fields or menus may be wrong; at worst, values can be written to locations that mean something different to the firmware.

As of September 2026, the Speeduino GitHub release page identifies 202501.7 as the latest stable firmware release. The live master branch can contain development changes beyond the latest release, including a newer INI signature. Use the INI supplied for the actual firmware version running in your ECU rather than copying the newest file from master by default.

Use SpeedyLoader When Possible

SpeedyLoader is the official universal firmware loader for Speeduino. It lets you choose a firmware release, select the ECU/serial port and upload a precompiled build without manually compiling the Arduino source.

Current SpeedyLoader also supports downloading base tunes matched to the selected firmware version. That is useful because it reduces the chance of starting with an old tune whose firmware signature or available features no longer match the ECU.

The basic sequence is:

  1. Select the Speeduino firmware version.
  2. Confirm the correct ECU board/processor target.
  3. Select the correct serial/USB port.
  4. Upload the firmware.
  5. Use the matching INI/base tune when creating the TunerStudio project.

If you deliberately build firmware from the current development branch, use the matching INI from that same code revision and accept that you are no longer on the normal stable-release path.

Create the TunerStudio Project

Create a new TunerStudio project and select the Speeduino ECU definition. If TunerStudio asks for the ECU definition file manually, point it to the matching speeduino.ini.

Connect the ECU by USB or the supported communications interface and let TunerStudio identify the firmware signature. The project should open without an ECU-definition mismatch.

At this point do not immediately import somebody else’s tune and start changing fuel tables. First confirm that TunerStudio and the ECU agree on the basic hardware and engine configuration.

If TunerStudio Will Not Connect

SymptomFirst checks
No serial portUSB cable, board power, USB driver and operating-system device manager
Port exists but TunerStudio cannot connectCorrect COM/tty port, another application holding the port, firmware actually running
Connects then dropsPower stability, USB cable quality, ground problems and firmware/communications issues
Signature mismatchWrong speeduino.ini for the firmware
Project opens with missing or strange menusINI mismatch or unsupported board/firmware combination
Works on USB power but behaves differently on vehicle powerCheck ECU supply voltage, grounds and board power-path behaviour

Recent Speeduino releases have included several communications fixes, so if you are troubleshooting an old installation, first establish exactly which firmware is loaded before assuming the hardware is faulty.

Save a Known Baseline Before Changing Anything

Once communication works, save the current tune/project as a baseline. Give the file a useful name that includes the firmware and date.

Bandit400_Speeduino_202501.7_BenchBaseline_2026-09-14.msq

That gives you a known return point if later calibration or setup work goes wrong. Save another copy after each major milestone: sensors calibrated, trigger confirmed, outputs confirmed, first crank and first stable idle.

Set the Basic Engine Configuration First

Before bench testing outputs, TunerStudio needs a configuration that describes the engine and available hardware correctly. The exact menu names vary slightly with firmware release and board type, but the fundamentals are:

  • Number of cylinders.
  • Engine cycle / stroke type.
  • Injection mode: batch, semi-sequential or sequential as supported.
  • Ignition mode: distributor, wasted spark, coil-on-plug or other supported strategy.
  • Injector count and channel arrangement.
  • Trigger pattern and tooth count.
  • Secondary/cam input requirement.
  • Board pin mapping/layout.

If you do not know these values, stop and identify the engine and hardware. TunerStudio cannot infer the crank wheel, injector size or ignition architecture from the USB cable.

Bench Check the ECU Power First

Before connecting sensors or output loads, power the ECU from a properly fused, current-limited supply suitable for the board. Verify:

  • No component becomes abnormally hot.
  • The expected 5 V and/or 3.3 V rails are correct.
  • TunerStudio remains connected.
  • The battery-voltage channel shows a plausible value.
  • The ECU does not reset when relay outputs are switched.

If battery voltage in TunerStudio differs significantly from a trusted meter measured at the ECU supply, fix or calibrate that before tuning. Speeduino uses battery voltage for corrections such as injector dead-time behaviour and ignition charging strategy.

Check Sensor Readings with the Engine Stopped

With the engine cold and not running, TunerStudio should already tell you a lot about whether the installation is sane.

SensorWhat should make sense before cranking
CLTClose to actual coolant/ambient temperature on a cold engine
IATClose to ambient air temperature
MAPClose to local atmospheric pressure with engine stopped
TPSNear 0% closed and near 100% open after calibration
BatteryClose to the voltage measured at the ECU
O₂ / AFRMatches the external wideband controller or known calibration behaviour
RPM0 when no trigger signal is present

A MAP sensor reading 40 kPa on the bench with its pressure port open to atmosphere is not a fuel-table problem. A coolant sensor showing -40°C in a warm workshop is not a cold-start tuning problem. Fix the input first.

Calibrate TPS Before Anything Else Uses It

A conventional TPS is a potentiometer. TunerStudio needs to learn the voltage/ADC value corresponding to closed throttle and wide-open throttle.

Use the Speeduino TPS calibration function defined by the matching INI:

  1. Leave the throttle fully closed.
  2. Capture the closed-throttle value.
  3. Open the throttle fully by hand.
  4. Capture the wide-open value.
  5. Save/burn the calibration.
  6. Move the throttle slowly from closed to open and confirm the reading is smooth.

If TPS jumps, drops out or moves in the wrong direction, investigate the sensor wiring and ground reference before configuring acceleration enrichment.

Calibrate CLT and IAT to the Actual Sensors

Coolant and inlet-air sensors are commonly NTC thermistors. The ECU converts their resistance/ADC value into temperature using the configured calibration curve.

If you are using a known sensor with an existing calibration, select the correct curve. For an unknown sensor, obtain resistance-versus-temperature data or measure it properly and create the calibration from real values.

On a cold engine that has been sitting for hours, CLT and IAT should usually be reasonably close to each other and to ambient conditions. A large discrepancy is an immediate clue that one calibration or wiring path is wrong.

Check MAP at Key-On, Engine-Off

With the engine stopped and the MAP sensor exposed to manifold pressure equal to atmosphere, MAP should read close to the local barometric pressure.

Do not expect one universal number because atmospheric pressure varies with weather and altitude. The important check is plausibility. If a nearby weather station or trusted barometer says around 100 kPa and Speeduino shows 62 kPa, investigate calibration, wiring or the selected sensor type.

Check the Wideband/Oxygen Input

If you use an external wideband controller, first make sure the controller works independently. Then compare its own display/output with the AFR or lambda value in TunerStudio.

If they disagree, common causes are:

  • Wrong 0–5 V wideband calibration selected.
  • Wideband analogue ground and ECU sensor ground differ.
  • Controller output has been programmed for a different voltage/lambda curve.
  • AFR and lambda are being compared using different stoichiometric fuel values.

Do not start autotune or closed-loop correction until the ECU’s AFR value agrees with the controller you are trusting.

Output Test Mode: Use It Before the Engine

Speeduino’s TunerStudio definition includes hardware output-test controls. They are extremely useful for proving channel mapping before cranking, but the warning in the interface is there for a reason: output testing can energise real hardware.

For the first test, disconnect fuel and high-energy ignition loads where possible and use a safe test lamp, LED circuit, oscilloscope or suitable dummy load.

Use output testing to verify:

  • Fuel-pump relay output.
  • Injector channels.
  • Ignition output channels.
  • Cooling-fan output.
  • Idle valve outputs where applicable.
  • Boost/VVT/auxiliary outputs where applicable.

The goal is not merely “the output toggles.” Confirm that the output labelled INJ1 actually reaches injector channel 1 in the harness, and similarly for every ignition channel.

Do Not Bench-Fire Ignition Coils Casually

An ignition output is not a harmless LED output. A coil can generate tens of kilovolts, and the primary current can overheat the coil or driver if dwell or polarity is wrong.

Before connecting real coils:

  • Confirm whether the coil is logic-level or requires an external igniter.
  • Confirm the Speeduino board’s ignition-output type.
  • Confirm output polarity.
  • Confirm dwell configuration is appropriate for the coil/igniter.
  • Keep HT outputs safely terminated if live spark testing is performed.

If a coil or igniter becomes hot with the engine stopped, disconnect power immediately and re-check the output architecture and polarity.

Injector Output Checks

For the first bench test, a suitable electrical test load is preferable to a fuel injector connected to a pressurised fuel rail.

Verify:

  • Each injector channel switches independently.
  • The harness connector labels match the configured firing/channel order.
  • The ECU low-side driver is wired as intended.
  • No injector output is permanently active.
  • Supply voltage remains stable during output testing.

When real injectors are eventually connected, perform any live bench pulsing with the fuel system depressurised or arranged safely. Fuel spray and ignition testing should never share the same casual bench setup.

Use Ardu-Stim to Prove the Trigger Decoder

Ardu-Stim is one of the best tools in the Speeduino ecosystem because it generates simulated crank, cam and tertiary trigger signals without rotating a real engine.

The official Speeduino Ardu-Stim fork supports a large set of trigger patterns and can vary simulated RPM. On an Arduino Nano/Uno, its documented default outputs are:

Ardu-Stim signalNano / Uno pin
Primary crankD8
Secondary camD9
Tertiary / second camD10

Connect the simulator through the correct Speeduino input conditioning path for your board. Ardu-Stim gives digital trigger signals; do not assume that connecting it to a VR conditioner input exactly reproduces the analogue behaviour of a real VR sensor.

What to Check with Simulated RPM

  • TunerStudio shows the expected RPM.
  • RPM is stable rather than jumping randomly.
  • Sync is achieved with the selected decoder.
  • Sync remains stable as RPM increases.
  • Cam/secondary synchronisation behaves correctly if required.
  • Injector and ignition events occur in the expected sequence.

A simulated trigger is not proof that the real crank sensor installation will work under starter noise, weak VR voltage or ignition interference. It is proof that the basic decoder configuration and ECU-side signal path can work.

Use the Tooth / Trigger Logging Tools

Do not judge a crank signal only from the RPM gauge. Speeduino firmware explicitly supports high-speed tooth/trigger logging, and TunerStudio can display the captured trigger timing.

For a missing-tooth wheel, the logger should show a repeatable longer gap corresponding to the missing tooth region. Extra spikes, missing pulses or inconsistent timing are clues that the decoder selection, trigger edge or electrical signal is wrong.

When testing on the actual engine, capture logs during cranking before fuel and ignition are enabled. Stable cranking RPM and a clean tooth pattern should come before any attempt to tune VE or ignition tables.

RPM but No Sync Is Still a Trigger Problem

An ECU can sometimes calculate an apparent RPM from crank transitions while still failing to establish reliable engine position.

If TunerStudio shows RPM but sync is unstable, investigate:

  • Wrong decoder or tooth count.
  • Wrong rising/falling trigger edge.
  • VR sensor polarity.
  • VR conditioner threshold/hysteresis.
  • Hall pull-up or logic voltage.
  • Missing/incorrect cam phase.
  • Noise from starter, coils or injectors.
  • Poor grounds or shield termination.

Fix the trigger system before tuning. A fuel table cannot compensate for the ECU losing track of crank angle.

Do a Sensor Disturbance Test

On the bench or vehicle, deliberately operate high-current outputs while watching the analogue sensors in TunerStudio.

Examples:

  • Switch the fuel-pump relay.
  • Operate the cooling-fan relay.
  • Toggle test loads on injector/aux channels.

TPS, MAP, CLT and IAT should not jump simply because a relay switched. If analogue readings move with high-current loads, investigate power distribution, sensor grounds and harness routing before hiding the problem with software filtering.

Check Fuel-Pump Behaviour

The fuel-pump output is easy to overlook because it appears simple. Confirm that the intended relay output primes when expected and turns off when the ECU no longer sees a running engine.

On the bench use the relay or a safe simulated load first. On the vehicle, confirm the pump circuit is fused and that a stalled engine does not leave the pump running indefinitely because of wiring around the ECU control.

Base Tune Does Not Mean Safe Tune

A base tune is useful because it gives you a structured configuration rather than a blank project. It is not proof that the fuel and ignition tables are safe for your engine.

Before using a downloaded base tune, compare at least:

  • Cylinder count.
  • Engine displacement.
  • Injector flow rate.
  • Injector dead-time data.
  • Fuel pressure.
  • Trigger pattern.
  • Ignition hardware and dwell requirements.
  • MAP sensor range.
  • Temperature sensor calibrations.
  • Wideband calibration.

If those fundamentals differ, copying the VE and ignition tables is not a shortcut to a working engine.

Before the First Real Crank

By the time the starter motor is first used, the following should already be true:

  • TunerStudio connects reliably.
  • Firmware and INI match.
  • Board/pin mapping is correct.
  • TPS is calibrated and smooth.
  • CLT and IAT are plausible.
  • MAP is plausible at atmospheric pressure.
  • Battery voltage is believable.
  • Wideband input calibration is known.
  • Fuel-pump output is verified.
  • Injector channels are mapped correctly.
  • Ignition channels and polarity are confirmed.
  • Trigger decoder settings match the engine.
  • No unexpected output remains permanently active.

First Crank: Disable Fuel or Spark While Proving Trigger Timing

The first starter-motor test should be a diagnostic exercise. Crank the engine with fuel and/or ignition disabled as appropriate for the checks you are performing, then observe RPM, sync and trigger logs.

Once crank synchronisation is proven, the ignition reference should be checked physically with a timing light before load tuning. The ECU’s displayed advance is only useful if its configured crank reference matches the engine’s real crankshaft position.

If commanded fixed timing and measured timing do not agree, correct the trigger angle/reference setup first. Do not “repair” a mechanical reference error by reshaping the ignition table.

What TunerStudio Should Look Like Before First Start

ChannelExpected condition
RPM0 stopped; stable and plausible while cranking
SyncStable after decoder establishes position
TPS0–100% smoothly
MAPAtmospheric stopped; responds to manifold pressure/vacuum
CLTPlausible actual temperature
IATPlausible actual temperature
BatteryClose to meter; drops plausibly while cranking
AFR/lambdaMatches wideband behaviour when controller is ready
Injector PWNo impossible or stuck-on output state
Ignition advancePlausible commanded value, then physically verified

Common TunerStudio Setup Problems

ProblemLikely causeWhat to do
Strange menus or valuesFirmware/INI mismatchUse the matching Speeduino INI
TPS never reaches 0/100%Not calibrated or wiring issueRun TPS calibration and verify sensor ground
CLT reads -40°COpen circuit/wrong calibrationCheck wiring and thermistor curve
MAP wrong with engine stoppedWrong sensor calibration/wiringVerify sensor type and pressure reference
RPM jumps wildlyTrigger noise or decoder problemInspect tooth log and input conditioning
RPM exists but sync dropsTrigger/cam phase problemCheck decoder, edge, polarity and cam input
Injector 1 test drives wrong cylinderHarness/channel mapping errorCorrect wiring or configuration before cranking
Coil gets hot with engine offIgnition polarity/dwell/output errorPower down immediately and verify hardware
Sensors jump when relay switchesGround/power noiseFix wiring before adding filters
Wideband display and TS disagreeWrong analogue calibration/ground offsetMatch controller voltage curve and grounds

A Good Bench-Test Order

  1. Power the ECU alone and verify rails/current.
  2. Flash the intended stable firmware.
  3. Create a TunerStudio project with the matching INI.
  4. Save a baseline tune.
  5. Configure engine/board basics.
  6. Calibrate TPS, CLT, IAT, MAP and wideband inputs.
  7. Check battery-voltage accuracy.
  8. Test relays and low-risk outputs.
  9. Verify injector/ignition channel mapping with safe test methods.
  10. Use Ardu-Stim or another simulator to check trigger decoding.
  11. Capture trigger/tooth logs.
  12. Crank the real engine with fuel/spark disabled as required.
  13. Verify real ignition reference with a timing light.
  14. Only then proceed toward first start and tuning.

Following that order turns first start into a controlled commissioning step instead of a lottery.

Related Speeduino Guides

Official Speeduino Resources

Share your love