Quick Summary (TL;DR):
A reliable Speeduino installation starts with wiring, not tuning. The ECU must receive a clean crank signal, a valid cam signal where required, stable analogue sensor voltages and correctly referenced grounds before injector or ignition tuning makes sense. Wire crank and cam sensors according to their electrical type: Hall sensors need a correctly conditioned digital input and may require a pull-up; VR sensors produce an AC waveform and require a VR conditioner. Keep crank/cam wiring away from coils, injectors, alternator and starter cables, and use shielded twisted pair where appropriate. Typical analogue sensors such as TPS, MAP, IAT and CLT use the ECU’s sensor reference and sensor ground rather than noisy chassis power paths. Injectors are normally supplied with switched/fused 12 V and controlled by ECU low-side drivers; ignition wiring depends on whether the coils are logic-level ‘smart’ coils or passive coils requiring external or onboard igniters. The wideband oxygen sensor must use its own controller, with Speeduino receiving the controller’s calibrated output. Exact terminal numbers vary between Speeduino v0.3, v0.4, DropBear, PNP and third-party boards, so always map the logical function in this guide to the schematic/manual for your exact ECU.
Before You Wire Anything: Identify the Exact Speeduino Hardware
Speeduino is a firmware and hardware ecosystem, not one fixed ECU connector. Official hardware includes the v0.3 and v0.4 families, DropBear and vehicle-specific PNP boards, while many third-party ECUs use the same firmware with different connectors and driver circuits.
That means a useful wiring guide should describe what each signal needs electrically rather than pretending that ‘injector 1 is always terminal X’. The ECU schematic and board documentation for your exact hardware remain the authoritative source for terminal numbering.
| What to identify first | Why it matters |
|---|---|
| ECU board and revision | Determines connector pinout, drivers and input conditioners |
| Processor target | Affects firmware pin mapping and supported functions |
| Crank sensor type | Hall/digital and VR sensors need different input conditioning |
| Cam sensor type | Same electrical distinction as crank |
| Injector impedance/type | Must match driver capability |
| Ignition coil type | Smart coils and passive coils require different drive hardware |
| Wideband controller | Determines lambda/voltage calibration and wiring |
| Idle valve type | PWM and stepper systems require different outputs |
| Fuel-pump/fan relay architecture | ECU normally controls relay/driver logic, not the load directly |
Think of the Harness as Four Separate Electrical Systems
Speeduino Harness
│
├─ CLEAN SENSOR / REFERENCE CIRCUITS
│ ├─ TPS
│ ├─ MAP
│ ├─ IAT
│ ├─ CLT
│ ├─ wideband analogue output
│ └─ sensor ground / reference
│
├─ POSITION / TIMING SIGNALS
│ ├─ crank
│ └─ cam
│
├─ HIGH-CURRENT / NOISY LOADS
│ ├─ injectors
│ ├─ ignition coils / igniters
│ ├─ idle valve
│ ├─ boost solenoid
│ └─ relays / fans / pumps
│
└─ ECU POWER & COMMUNICATIONS
├─ fused switched supply
├─ ECU grounds
├─ USB / serial
└─ CAN where supported
Many ECU problems happen because these groups are physically mixed without thought. A sensor reference carrying millivolt-level information should not share the same noisy path as a coil or injector current pulse.
Speeduino Grounding: The Most Important Wiring Subject
Ground is not simply ‘zero volts’. In a running vehicle, current flowing through cables and engine/chassis metal creates voltage differences. If the ECU sees those differences as sensor voltage, readings move even though the sensor itself has not changed.
The practical goal is to keep sensor-return current separate from high-current actuator return current until the grounding topology reaches the point intended by the ECU/board designer.
- Use the ECU’s designated sensor ground for TPS, MAP and thermistor sensor returns when provided.
- Use the ECU’s main/high-current ground connections exactly as specified by the board manufacturer.
- Engine-block grounding must be excellent because the starter, alternator, ignition and many sensors reference the engine.
- Provide a robust battery-negative-to-engine connection and a robust engine-to-chassis bonding path.
- Do not use a rusty body screw as the only ECU ground.
- Do not merge shield drain wires, sensor grounds and high-current grounds randomly.
- Measure voltage drop under cranking, not only continuity with the engine off.
Powering the ECU
A Speeduino ECU normally receives switched vehicle power through a fused circuit. The ECU board then regulates and conditions that supply for its microcontroller and sensors.
Battery +
│
├─ Main fuse
│
└─ Ignition / main relay
│
├─ Speeduino ECU power
├─ injector +12 V supply
├─ coil / igniter +12 V supply
└─ other engine-management loads
Battery -
│
├─ Engine block
├─ Chassis
└─ ECU ground architecture
Use the power architecture specified by the ECU and vehicle rather than powering the complete engine-management system through a small accessory wire. Injector and coil currents can be substantial, and starter operation produces large supply disturbances.
Automotive electrical systems also generate reverse-polarity risk, alternator/load transients and inductive switching noise. A proper Speeduino ECU board includes protection/conditioning appropriate to its design; a bare microcontroller board does not.
Crank Sensor Wiring
The crank sensor is usually the most timing-critical input in the whole installation. The ECU uses it to calculate RPM and crank angle, so one false tooth can be more serious than a noisy temperature reading.
Before wiring the crank input, identify whether the sensor is Hall/digital or variable reluctance (VR). Do not decide from connector pin count alone.
Hall Crank Sensors
A Hall sensor produces a digital-style output. Depending on the sensor, it may actively drive both logic states or it may use an open-collector/open-drain output that needs a pull-up.
Typical Hall arrangement
ECU / sensor supply ─────────► Hall sensor V+
Sensor ground ───────────────► Hall sensor GND
Hall signal ─────────────────► Speeduino crank/Hall input
If sensor output is open collector:
pull-up → correct ECU/reference voltage
│
└──────── signal line
- Confirm the sensor supply voltage from the sensor documentation or original vehicle wiring.
- Do not assume every Hall sensor runs from 5 V; many automotive sensors use other supply arrangements.
- If the sensor uses an open-collector output, enable/use the appropriate pull-up specified by the Speeduino board.
- Select the correct trigger edge in TunerStudio after observing the actual signal/tooth log.
- Keep the Hall signal wire away from ignition and injector wiring.
VR Crank Sensors
A VR sensor is passive. It generates an AC waveform as a ferrous tooth passes the magnetic sensor. The waveform amplitude and frequency vary strongly with engine speed.
VR sensor
VR+ ───────────────┐
│
▼
VR conditioner
│
▼
digital crank signal
│
▼
Speeduino MCU
VR- ───────────────┘
The Speeduino ecosystem includes dedicated VR-conditioning hardware, and current official hardware repositories still include VR conditioner designs. The conditioner converts the bipolar analogue waveform into a clean digital transition suitable for the microcontroller.
- Do not connect a raw VR waveform directly to a normal digital microcontroller input.
- Observe polarity: reversing VR wires changes the waveform phase and which edge crosses the detection threshold first.
- Use twisted-pair wiring to improve noise rejection.
- Where shielding is used, terminate the shield according to the ECU/board guidance, commonly at the ECU end rather than at both ends.
- Check signal quality at cranking speed, because that is when VR amplitude is smallest.
- Also verify at higher RPM, because amplitudes can become much larger.
Crank Sensor Shielding and Routing
Keep the crank pair physically separated from ignition primary wiring, coil-on-plug harnesses, injector power, alternator output, starter motor cables and high-current PWM solenoid wiring.
Twisting the signal pair reduces the loop area that can pick up electromagnetic interference. A shield adds another layer of protection, but poor shield grounding can itself create unwanted current paths.
If an engine loses sync only when coils start firing, do not immediately change fuel or ignition tables. That behaviour strongly points toward trigger integrity, grounding, shielding or input-conditioning problems.
Cam Sensor Wiring
The cam sensor is wired using the same electrical logic as the crank sensor: Hall/digital inputs use the appropriate digital conditioning/pull-up, while VR cam sensors require a suitable VR input.
The cam signal normally carries less timing resolution than the crank wheel. Its main job is to identify engine phase so the ECU knows which crank revolution corresponds to compression for a particular cylinder.
Sequential injection and individual coil-on-plug strategies often depend on correct cam synchronisation. A missing or unstable cam signal may allow some batch/wasted-spark configurations to run while preventing full sequential operation.
Primary vs Secondary Trigger Inputs
| Speeduino concept | Typical source | Purpose |
|---|---|---|
| Primary trigger | Crank sensor | High-resolution engine speed and crank-angle reference |
| Secondary trigger | Cam sensor | Engine-phase / cylinder-cycle identification |
| Tertiary trigger | Some specialised patterns | Additional cam/position information on supported decoders |
Speeduino’s firmware contains multiple trigger decoders and lets the configured decoder interpret the relationship between these inputs. Current development also continues to add decoder support, so verify that your exact OEM pattern is supported before designing the harness around it.
MAP Sensor Wiring
MAP — manifold absolute pressure — is normally a three-wire sensor: supply/reference, sensor ground and analogue signal.
Speeduino reference / sensor supply ───► MAP V+
Speeduino sensor ground ─────────────────► MAP GND
MAP signal ──────────────────────────────► MAP analogue input
Some Speeduino boards include an onboard MAP sensor, while others expect an external sensor. If using an external MAP sensor, calibrate it in TunerStudio so the voltage-to-pressure relationship matches the actual sensor.
With the engine stopped and the intake connected to atmosphere, MAP should read close to local barometric pressure. A wildly incorrect key-on-engine-off reading is a calibration or wiring problem, not a fuel-table problem.
TPS Wiring
A conventional throttle position sensor is a potentiometer with reference voltage, sensor ground and a wiper signal.
5 V / sensor reference ─────► TPS reference
Sensor ground ────────────────► TPS ground
TPS wiper ────────────────────► TPS input
Once wired, calibrate closed throttle and wide-open throttle in TunerStudio. The value should move smoothly without dropouts when the throttle is opened slowly.
Do not swap the sensor ground for a random chassis ground. Even a small ground difference can shift the indicated throttle position and affect acceleration enrichment or idle detection.
IAT and CLT Sensor Wiring
Inlet-air temperature (IAT) and coolant temperature (CLT) sensors are usually NTC thermistors. Many are two-wire sensors: one side connects to the ECU’s temperature-input circuit and the other to sensor ground.
Speeduino internal pull-up
│
▼
Temperature input ───── sensor ───── Sensor ground
As temperature rises:
NTC resistance usually falls
↓
input voltage changes
↓
firmware converts using calibration
The calibration curve must match the sensor. Speeduino can support different thermistor calibrations, but the ECU cannot infer the sensor curve from the wire colour.
- At a cold start after sitting overnight, IAT and CLT should both be close to ambient temperature.
- If one reads an impossible extreme, check open/short wiring before changing calibration.
- Route temperature-sensor wires with the clean sensor harness, not bundled tightly around coil primary wiring.
Wideband O₂ / Lambda Wiring
A modern wideband oxygen sensor requires a dedicated wideband controller. The sensor heater and pump-cell control are not something Speeduino’s ordinary O₂ analogue input drives directly.
Wideband O2 sensor
│
▼
Wideband controller
│
├─ power / heater control
├─ sensor control
└─ calibrated output
│
▼
Speeduino O2 input
Depending on the controller and ECU hardware, Speeduino may receive a calibrated analogue voltage or another supported communication format. If using analogue voltage, configure the correct voltage-to-lambda/AFR calibration.
Grounding is especially important here. If the wideband controller’s analogue-output ground sits at a different potential from the ECU sensor ground, the ECU can report a lambda value different from the controller display.
Battery Voltage Input
Speeduino monitors supply voltage because injector opening time and ignition-coil charging behaviour depend on voltage. The ECU board normally scales vehicle voltage into a safe microcontroller ADC range.
Compare TunerStudio battery voltage against a trusted multimeter at the ECU supply. Large disagreement can affect injector dead-time compensation and therefore fueling.
Injector Wiring
Port fuel injectors are inductive solenoids and require proper drivers. A common arrangement supplies the injectors with fused/switched 12 V and lets the ECU switch the other side through a low-side driver.
Switched +12 V
│
├──────── Injector 1 ─────► INJ1 ECU driver ───► ECU power ground
├──────── Injector 2 ─────► INJ2 ECU driver ───► ECU power ground
├──────── Injector 3 ─────► INJ3 ECU driver ───► ECU power ground
└──────── Injector 4 ─────► INJ4 ECU driver ───► ECU power ground
The microcontroller itself is not switching injector current. The Speeduino ECU hardware contains or connects to the required power-driver circuitry.
- Use a fused supply sized for the injector system and harness.
- Confirm whether the ECU driver is intended for the injector impedance/type being used.
- Do not assume high-impedance and low-impedance injectors can use the same driver strategy.
- Keep injector power and switching wiring away from crank/cam signal pairs.
- Use wire gauge appropriate to current, harness length and automotive temperature conditions.
Batch, Semi-Sequential and Sequential Injector Wiring
| Control strategy | Harness implication |
|---|---|
| Batch | Multiple injectors may share output channels/groups |
| Semi-sequential / paired | Injectors grouped according to firing strategy |
| Sequential | Each injector needs its own ECU output channel and reliable phase information |
The wiring strategy and the TunerStudio injection-layout setting must agree. A four-cylinder engine wired with four individual injector outputs can still be configured incorrectly in software, and vice versa.
Ignition Wiring: First Identify Smart vs Passive Coils
Ignition wiring cannot be described safely until you know whether the coil has an integrated igniter.
| Coil type | What ECU output must do |
|---|---|
| Smart / logic-level coil | ECU sends a low-current logic trigger to the coil’s integrated igniter |
| Passive / dumb coil | Requires a high-current ignition driver/igniter between MCU logic and coil primary |
| Distributor with external igniter | ECU controls the existing/new igniter depending on system design |
Some Speeduino hardware includes ignition-driver options; other boards provide logic-level ignition outputs intended for smart coils or external igniters. Use the board schematic and coil documentation together.
Smart Coil Wiring
Typical smart coil concept
Switched +12 V ───────────────► Coil power
Engine / power ground ────────► Coil power ground
ECU ignition output ──────────► Coil trigger input
Sensor / logic ground* ───────► Coil logic reference where required
* exact grounding arrangement depends on coil design
Smart coils vary. Some have separate power and logic grounds; some combine them; some expect specific trigger voltage or dwell behaviour. Copying wiring from a visually similar coil can damage the ECU or coil.
Passive Coil Wiring
Speeduino ignition logic
│
▼
Ignition driver / IGBT
│
▼
Coil primary
│
└──────── switched +12 V
Coil secondary → spark plug
A passive coil primary is a high-current inductive load. The ignition driver must be correctly rated and thermally managed. Never connect a passive coil primary directly to an Arduino/STM32 logic pin.
Ignition Output Polarity Is Critical
The logical polarity of an ignition output matters because an inverted configuration can charge a coil when the ECU thinks it is off. That can overheat coils or ignition drivers before the engine even starts.
Before connecting coils permanently, verify the board’s ignition-output type and the correct TunerStudio ignition polarity setting from the Speeduino hardware documentation and the coil/igniter requirements.
This is one of the configuration areas where ‘try both and see which works’ is not an acceptable commissioning method.
Verify Ignition Timing Mechanically
Once trigger wiring is stable, the ECU’s reported ignition angle must be matched to the actual crankshaft using the engine’s timing marks and an appropriate timing-light procedure.
The objective is to confirm that when Speeduino commands a known fixed timing angle, the engine physically fires at that angle. Trigger offset should be corrected before tuning an ignition table.
A stable RPM signal does not prove the trigger offset is correct.
Fuel Pump Relay Wiring
The ECU typically controls the relay coil or a suitable driver input; it does not power the fuel pump motor through a microcontroller pin.
Battery + ── fuse ── relay contacts ──► Fuel pump
│
└──── high-current path
Ignition-switched / relay coil supply
│
relay coil
│
▼
Speeduino fuel-pump output
(appropriate low-side driver)
The firmware can prime the pump and then keep it running while engine-speed/operating conditions indicate that it should run. Wire the relay and fuse so the pump’s current does not pass through ECU logic circuitry.
Idle Valve Wiring
Idle valves may be simple on/off, PWM solenoids or stepper motors. The correct Speeduino output depends on the valve type.
| Idle device | Electrical control |
|---|---|
| 2-wire PWM valve | One powered side + ECU low-side PWM driver on the other |
| 3-wire PWM valve | Requires the board/driver architecture intended for bidirectional/dual control |
| Stepper IAC | Multiple phase outputs through a suitable stepper-driver arrangement |
Do not wire a stepper motor to an output intended only for a single PWM solenoid.
Boost Solenoid and Other PWM Loads
Boost solenoids and similar auxiliary valves are inductive loads. They require an ECU output/driver designed for the load current and switching frequency.
The supply side is normally fused/switched 12 V and the ECU driver switches the return side. Flyback/transient suppression must be handled by the board/driver design.
Fan and Other High-Current Loads
A radiator fan motor can draw tens of amps, especially at startup. Speeduino should therefore control an appropriately rated relay or solid-state power stage rather than the fan directly.
The same principle applies to fuel pumps, electric water pumps and other large loads: the ECU supplies the control decision; the external power stage carries the load current.
Tachometer Output
Older tachometers can expect very different signals: logic-level pulses, 12 V square waves or the high-voltage characteristics of a traditional coil negative terminal.
Use a tach-output circuit matched to the vehicle’s instrument rather than connecting an MCU pin directly to an unknown factory tach input.
CAN Wiring Where Supported
CAN capability depends on the Speeduino controller and board. Where native or external CAN hardware is provided, the physical bus still needs a CAN transceiver and the usual differential-pair wiring.
- Use twisted-pair CANH/CANL wiring.
- Maintain appropriate 120 Ω termination at the two physical ends of the bus.
- Avoid adding termination at every device.
- Keep stubs short where practical.
- Do not connect microcontroller TX/RX/CAN-controller logic directly to CANH/CANL without a transceiver.
Sensor Wiring Table
| Input | Typical electrical type | Recommended harness treatment |
|---|---|---|
| Crank Hall | Digital / open collector or driven | Twisted/shielded signal + correct pull-up/conditioning |
| Crank VR | Differential/bipolar analogue waveform | Twisted pair + VR conditioner + shielding |
| Cam Hall | Digital | Treat similarly to Hall crank |
| Cam VR | VR waveform | Treat similarly to VR crank |
| TPS | 0–reference analogue | Reference + sensor ground + clean signal wire |
| MAP | Analogue | Reference/supply + sensor ground + clean signal |
| IAT | Thermistor | Sensor ground + ECU temperature-input circuit |
| CLT | Thermistor | Sensor ground + ECU temperature-input circuit |
| Wideband | Controller output | Match controller output calibration and ground reference |
| Battery | Scaled vehicle voltage | Board-specific conditioned input |
Actuator Wiring Table
| Output | Typical load | Correct interface |
|---|---|---|
| Injector | Inductive solenoid | ECU injector driver |
| Smart coil | Logic-triggered ignition module | Correct logic-level ignition output |
| Passive coil | High-current inductive primary | Ignition driver / IGBT |
| Fuel pump | High-current DC motor | Relay or power controller |
| Cooling fan | High-current DC motor | Relay or power controller |
| Idle PWM valve | Inductive solenoid | Rated PWM driver |
| Boost solenoid | Inductive solenoid | Rated PWM driver |
| Tachometer | Vehicle-specific input | Appropriate tach driver/level interface |
Recommended Harness Routing
ENGINE BAY HARNESS CONCEPT
[Crank/Cam twisted shielded pair]
│
└────────────────────────► ECU
keep away from:
X coils
X plug leads
X injector power
X alternator cable
X starter cable
[Clean sensor bundle]
TPS / MAP / IAT / CLT / wideband signal
│
└────────────────────────► ECU sensor inputs
[Actuator bundle]
Injectors / coils / idle / boost
│
└────────────────────────► ECU drivers
[High-current power]
battery / relay / fuse feeds
│
└──── routed separately where practical
Wire Size: Use Current and Environment, Not Guesswork
Sensor signal wires carry very little current and are selected mainly for mechanical durability, connector compatibility and noise performance. Injector, coil, pump and fan wiring is different: conductor size must be based on current, harness length, voltage drop, bundling and under-bonnet temperature.
Use automotive-grade insulation and terminals suited to heat, oil, vibration and moisture. Household cable and breadboard jumper leads do not belong in a permanent engine harness.
Connector and Splice Quality
A calibration cannot fix a high-resistance crimp. Intermittent connections create exactly the sort of faults that are hardest to diagnose because they can change with heat and vibration.
- Use the correct open-barrel/closed-barrel crimp tool for the terminal system.
- Provide strain relief near the connector.
- Seal splices appropriately for the environment.
- Avoid large solder-stiffened sections in high-vibration harness areas unless the joint is mechanically supported.
- Label the harness during construction rather than relying on wire colour alone.
- Continuity-test every circuit before applying power.
Do Not Trust Wire Colours
OEM wire colours vary by manufacturer, model year and harness section. Aftermarket sensors and coils can use the same colour for different purposes.
Identify circuits from the correct schematic and connector cavity numbering, then confirm with measurements where appropriate. A red wire is not automatically 12 V and a black wire is not automatically ground.
Bench Testing Before Installing the ECU
A bench test can isolate ECU and harness problems before fuel, spark and engine rotation are involved.
- Power the ECU from a current-limited, correctly fused supply appropriate to the board.
- Connect TunerStudio and verify stable communications.
- Confirm that disconnected sensor channels fail in expected/plausible ways rather than producing random values.
- Use known resistances or real sensors to verify IAT/CLT response.
- Move the TPS through its range and check for smooth readings.
- Feed a known MAP signal/sensor pressure if test equipment is available.
- Use a trigger simulator such as the Speeduino community’s Ardu-Stim setup to test crank/cam decoding without turning an engine.
- Verify output logic with suitable test loads/measurement methods before connecting expensive coils or injectors.
Ardu-Stim for Crank/Cam Testing
The Speeduino project maintains an Ardu-Stim tool for producing simulated trigger patterns from an Arduino. Its current documentation provides separate crank, cam and tertiary trigger outputs for supported Arduino boards.
A simulator is extremely useful because it lets you verify decoder selection, RPM behaviour and sync without starter noise, weak batteries, fuel or ignition.
Commissioning Checklist Before First Crank
- ECU powers up without abnormal heat or current draw.
- TunerStudio communicates reliably.
- TPS calibrates and moves smoothly.
- MAP reads close to atmospheric pressure with engine off.
- IAT and CLT are plausible and close to ambient on a cold engine.
- Battery-voltage reading is plausible.
- Wideband controller works independently and its ECU reading matches the configured calibration.
- Crank and cam inputs are connected to the correct conditioner type.
- Trigger decoder and tooth count/pattern match the engine.
- Injector outputs correspond to the intended cylinders/groups.
- Ignition outputs correspond to the intended coils/igniter channels.
- Ignition-output polarity is confirmed from hardware documentation.
- Fuel pump is controlled through the intended relay/power circuit.
- No fuel leaks are present.
- All main ECU/engine grounds have been checked for low voltage drop.
First Crank: What to Watch
During the first cranking test, the objective is not to make the engine run immediately. The objective is to prove that the ECU sees the engine correctly.
- RPM should appear quickly and remain stable.
- Sync loss should remain at zero/normal once the decoder has synchronised.
- Tooth/composite logs should resemble the expected trigger pattern.
- Battery voltage should not collapse excessively.
- MAP should respond to cranking pulses in a plausible way.
- If RPM is unstable, stop and fix the trigger system before enabling meaningful fuel/spark tuning.
Common Wiring Fault: Engine Cranks but RPM Is Zero
| Possible cause | What to inspect |
|---|---|
| Wrong sensor type selected | Hall vs VR input configuration |
| VR sensor connected to Hall input | Use the correct VR conditioner |
| Hall sensor has no pull-up | Check sensor output type and board pull-up option |
| Crank wires reversed on VR sensor | Check polarity and tooth waveform |
| Wrong primary trigger terminal | Verify exact ECU connector/schematic |
| Sensor has no power/ground | Measure at the sensor during cranking |
| Decoder mismatch | Confirm wheel pattern and firmware decoder |
Common Wiring Fault: RPM Appears but Sync Is Unstable
- Crank/cam wiring runs alongside coil or injector wiring.
- VR conditioner threshold/polarity/configuration is wrong.
- Poor engine/ECU grounding creates ground bounce.
- Sensor air gap or mechanical trigger-wheel condition is poor.
- Cam edge is occurring near a problematic crank reference position.
- Wrong trigger edge is selected.
- Electrical noise is being interpreted as an extra tooth.
Common Wiring Fault: Sensor Readings Move When Fan or Injectors Operate
This usually indicates a grounding, power-distribution or harness-routing problem. Sensor reference voltage or sensor ground is moving when a high-current device switches.
Do not hide the symptom with heavy software filtering until the electrical cause has been understood.
Common Wiring Fault: Wideband Display and TunerStudio Disagree
- Wrong analogue voltage calibration selected in Speeduino.
- Wideband analogue ground and ECU sensor ground are at different potentials.
- Controller output is configured for a different voltage/lambda curve.
- Signal wire is connected to the wrong ECU input.
- Controller display is showing lambda while TunerStudio is showing AFR with a different fuel stoichiometric value.
Common Wiring Fault: Coil or Igniter Gets Hot with Engine Off
Stop immediately. This can indicate incorrect ignition polarity, an output being held active, wrong coil/driver type or wiring that is charging the coil continuously.
Do not continue testing until the ignition-output architecture and polarity are verified.
Common Wiring Fault: ECU Resets When Cranking
- Battery voltage collapses under starter load.
- ECU supply is taken from an unsuitable circuit.
- Main grounds have excessive voltage drop.
- Starter current is contaminating the ECU ground path.
- Power relay/contact/connector resistance is excessive.
- Board power protection/regulation is unsuitable or damaged.
Why a Multimeter Is Not Enough for Every Fault
A multimeter is excellent for voltage drop, continuity, resistance and steady sensor voltages. It cannot show a single false crank pulse or a fast ignition transient.
For difficult trigger problems, an oscilloscope and Speeduino tooth/composite logs can reveal information that a static meter cannot.
Do You Need an Oscilloscope?
You can complete many installations without one, but an oscilloscope becomes extremely valuable when diagnosing VR sensor polarity, Hall edges, noise pickup, conditioner outputs and unexplained sync loss.
Even a modest automotive/bench oscilloscope used correctly can answer the key question: what waveform is actually reaching the ECU?
Speeduino v0.4 and Other Boards: Why Exact Pin Numbers Are Separate
The official Speeduino hardware repository contains different v0.4 through-hole and SMD revisions plus older v0.3, DropBear, Miata PNP and VR-conditioner designs. Driver components and connector arrangements have also evolved.
Therefore, this guide intentionally avoids publishing one universal ‘pin 1 = injector 1’ table. Use the exact schematic/connector drawing for the hardware revision in your hands.
That also protects you from one of the most common DIY ECU mistakes: following a diagram for a board that merely looks similar.
A Practical Harness Planning Example
4-cylinder Speeduino harness concept
ECU CLEAN INPUTS
├─ TPS ───────── throttle sensor
├─ MAP ───────── manifold pressure sensor
├─ IAT ───────── intake air thermistor
├─ CLT ───────── coolant thermistor
├─ O2 ───────── wideband controller output
└─ BAT ───────── board-conditioned battery sense
TRIGGERS
├─ TRIG1 ──────── crank Hall/VR conditioner
└─ TRIG2 ──────── cam Hall/VR conditioner
OUTPUTS
├─ INJ1 ───────── injector 1 driver
├─ INJ2 ───────── injector 2 driver
├─ INJ3 ───────── injector 3 driver
├─ INJ4 ───────── injector 4 driver
├─ IGN1 ───────── coil/igniter 1
├─ IGN2 ───────── coil/igniter 2
├─ IGN3 ───────── coil/igniter 3
├─ IGN4 ───────── coil/igniter 4
├─ IDLE ───────── idle valve driver
└─ FP ───────── fuel pump relay control
POWER
├─ ECU fused switched supply
├─ injector switched +12 V
├─ coil switched +12 V
├─ ECU high-current ground(s)
└─ sensor ground network
What to Document While Building the Harness
- Connector cavity number.
- Wire colour.
- Wire gauge.
- ECU function.
- Engine-side device and pin number.
- Splice location.
- Fuse and relay supplying the circuit.
- Whether the circuit is shielded/twisted.
- Sensor calibration/model number.
- Any board jumper/solder-bridge setting associated with that input/output.
A spreadsheet or printed harness schedule saves hours later. The harness should be understandable even after you have forgotten which colour wire you happened to choose six months earlier.
Safety Notes for a DIY ECU Harness
- Fuse every power branch appropriately for the wiring and connected load.
- Keep fuel-system wiring and splices away from leak-prone/high-temperature locations.
- Do not bypass the vehicle’s essential safety interlocks without understanding the consequences.
- Secure the harness so vibration cannot pull directly on terminals.
- Protect wiring from exhaust heat, sharp edges and moving belts/pulleys.
- Use grommets where the harness passes through metal panels.
- Do not perform ignition testing around spilled fuel or an open fuel system.
- If the installation is road-going, consider legal, emissions and insurance implications of replacing the factory ECU.
Final Recommendation
A Speeduino engine will only be as reliable as the signals and power that reach the ECU. The best fuel table in the world cannot compensate for a crank sensor picking up coil noise, a TPS grounded to the wrong point or an ignition output connected to the wrong type of coil.
Build the harness in this order: power and grounds first, then crank/cam, then clean sensors, then injectors and ignition, then auxiliary loads. Validate each layer in TunerStudio before moving on.
Most importantly, separate the universal Speeduino concepts from your exact board’s connector pinout. Use the schematic/manual for the specific v0.3, v0.4, DropBear, PNP or third-party ECU to map the functions in this guide onto actual terminals.
When the ECU sees stable RPM, correct sensor values and verified engine position before fuel and spark are enabled, you have created the foundation for a tuneable engine rather than an electrical troubleshooting exercise.
Related Guides
- Speeduino Explained: How the DIY Arduino ECU Works
- Speeduino vs rusEFI vs MegaSquirt: Which DIY ECU Should You Choose?
- STM32F411 Black Pill Pinout, GPIOs, USB & Arduino Guide
Official Speeduino Resources
- Speeduino Manual — current project documentation and board-specific wiring information.
- Speeduino Manual Source — current documentation repository, including getting-started and hardware sections.
- Official Speeduino Hardware Repository — v0.3, v0.4, DropBear, PNP and VR-conditioner schematics/designs.
- Speeduino Firmware Repository — firmware source and current configuration definitions.
- Speeduino Ardu-Stim — crank/cam trigger simulator for bench ECU testing.
- TunerStudio — tuning, calibration, logging and trigger-diagnostics software used with Speeduino.