Hardware requirements

From Speeduino
Jump to: navigation, search


Speeduino uses the Arduino Mega 2560 R3 as the controller. All official and most clone boards appear to work fine. Note that there are minor differences with the Mega R2 board that can cause some small issues, however as it is nearly impossible to find an R2 board currently (R3 has been the available version for a long time) this should not be an issue for most people.

Update: While the connection issues with some clone boards appear to have been resolved, an alternative solution is to use Bluetooth for wireless tuning of any Mega version, as the Bluetooth option bypasses the on-board UART (serial) chip.


Crank sensor

This is arguably the most important sensor for Speeduino to function correctly. The signal going to the Arduino must be a 0v-5v square wave series of pulses representing teeth on a wheel running at crank (or cam) speed. Many Hall and 'opto' sensors meet this spec. If only a crankshaft trigger wheel is used (no cam signal), the crank wheel must have a 'missing' tooth in order to provide position information as well as the engine RPM. Tested missing-tooth wheels currently are 4-1, 12-1, 36-1 and 60-2.

Alternatively (and necessary for full-sequential injection) an added cam signal with or without crank wheel missing teeth. These setups are indicated by the added "/x", such as 60-2/1, for a 60-tooth crank wheel, with 2 missing teeth, and a 1-tooth cam signal per cycle.

VR (variable reluctance) sensors can also be used, however as the board does not contain any sort of signal conditioner, an additional module will be required. An 8-pin DIP socket is located on v0.3.x and v0.4.x series official boards for this purpose as IC3. The MAX9926 chip has been tested to work with virtually any type of input, and is available from the Speeduino Store, however any similar module that outputs a 0v-5v square wave (LM1815, LM358 modules, etc.) should also work fine with VR sensor signals.


TPS sensor must be of the 3 wire potentiometer type, rather than the 2 wire on/off switches found on some throttles. If your TPS is a 3 wire sensor then it will almost certainly work, but remember to calibrate it within Tuner Studio when you first plug it in.

MAP (Manifold Pressure)

Recommended MAP sensor is the MPX4250 from Freescale, however many MAP sensors are supported. If you want to use one that is not included in the list (Under Tools->Map Calibration in TunerStudio) then please make a new thread in the forum requesting this. Other sensors can and will work just fine, but you will need to calibrate these within TunerStudio against a different set of values.

Temperature Sensors (CLT and IAT)

Any standard 2-wire thermistor sensor can be used for these temperature functions. Calibration of these sensors can be performed through the Tools menu in TunerStudio. The default bias resistor value is 2940 Ohms.

Exhaust Gas Oxygen Sensors (O2 and WBO2)

The type of O2 sensor (narrow or wide-band) must be selected in TunerStudio under Tools > Calibrate AFR Table.


NBO2 sensor signals are read directly by Speeduino. TunerStudio applies the standard non-linear 0-volt to 1-volt values for all standard NBO2 sensors automatically under calibration. Once set in calibration, Speeduino will use the designated NBO2 to adjust fueling according to the entries you make in the AFR table (Tuning > AFR Table), and the sensor is selected for type and parameters (or disabled) under Tuning > AFR/O2. Note that narrow-band sensors were designed to target stoichiometric AFR (Lambda 1.0) for efficient catalytic emissions control, and are generally not sufficiently accurate or suitable for efficient economy or power fueling.


Speeduino cannot use WBO2 sensors directly, requiring an external controller to process the signal and to apply sensor heating control. Enter the controller brand and model from the list displayed. If the controller signal is generic linear or custom, select and enter the required information, or an option to install a custom INC file is available in the menu list.

Once set in calibration, Speeduino will use the designated WBO2 to adjust fueling according to the entries you make in the AFR table (Tuning > AFR Table), and the sensor is selected for type and parameters (or disabled) under Tuning > AFR/O2.

Application-Specific Inputs

Circuits and techniques Speeduino users have found useful for adapting or implementing certain inputs or functions.

Flex Fuel Sensor


Oil Pressure


12V Input Signal


GM 7/8-pin Distributor Module




Speeduino injector drivers use on/off (not PWM) control and are designed to work with "High-Z" injectors. This type of injectors are also known as "saturated" or "high-impedance" that use full battery voltage to control the injector open cycle, and generally the impedance is greater than about 8 Ohms. If you are running "Low-Z" ("peak and hold" or PWM-controlled) injectors that are lower impedance, you will need to install series resistors on these to avoid damaging the board with excessive current. The resistor ohms and watt rating can be calculated by Ohm's Law, or use an Internet calculator page such as the Speeduino Injector Resistor Calculator.

Speeduino can drive up to 2 High-Z injectors per output channel.


Current versions of the Speeduino use low-power output signals, designed to work with external small-signal ignition coil drivers, whether a separate type (module or ICM, igniter, IGBT, etc.), or built into the coil assembly ('smart' coils). This method permits Speeduino to have great flexibility to control most types of ignition systems. Attaching the Speeduino outputs directly to a traditional high current ("dumb" or 2-pin) ignition coil without an ignition coil driver WILL cause damage to your Arduino.

How Speeduino controls ignition circuit power In prior history, the coil driver was a set of mechanical contact points ("points"), simply replaced today by an electronic version. The added coil driver can be anywhere from inside the Speeduino to inside the coil assembly; though near or in the coil reduces electrical noise:

The wasted-spark version is below to show how it is identical in operation, but with the high-voltage spark returning through the second spark plug to complete the circuit:

A good run down of 'smart' coil types can be found at: http://www.megamanual.com/seq/coils.htm. There are many ignition modules available that Speeduino can use to control standard coils, or for smart coils you can generally use 4 or 5-pin types as these will always be logic level, although some 3-pin coils are also of this variety. GM LS1/2 coils are an example of powerful smart coils that are commonly used and can usually be obtained easily and cheaply.

(Note: In the past, some ignition control modules with current limiting or dwell control features (e.g., 1970s GM HEI, Bosch '024' types, and Ford DS1) were referred-to as "smart" modules. While still true, common terminology of individual ignition coils with at least a driver integrated, or newer technology with greater controls (e.g., controlled spark duration or multi-spark) are all considered "smart" coils. You must know the control requirements of the specific drivers, control modules, or coils you intend to use in order to operate them properly with Speeduino.)

Aux Outputs

Low Current

Some Speeduino versions include an 8-channel ULN2803A Darlington transistor array IC that is capable of switching up to 1/2 amp per channel. These auxiliary outputs are sufficient to switch small devices directly, or to switch power-handling devices, such as power MOSFETs and solid-state or electro-mechanical automotive relays. Configuration and settings of these outputs is described in the Configuration / Tuning section.

Medium Current

v0.3x and later boards include medium-power MOSFET auxiliary outputs to switch up to 3 amps directly. These outputs are commonly used to operate idle valves, boost-control valves, VVT solenoids, etc., or to control relays for handling much larger loads, such as electric radiator fans. Configuration and settings of these outputs is described in the Configuration / Tuning section.

Auxilary IO

On Arduino Mega2560 based Speeduino boards (official or just running current firmware) git commit 13f80e7 support is available for the external connection of 8 16bit analog inputs via Serial3


As the Arduino mega2560 has no CanBus interface a seperate "co-processor" interface has been designed. More information about this unit can be found here https://github.com/Autohome2/Speeduino-can-interface. This uses the functionality provided by the Serial3 port and connects via that port.

On the upcoming Teensy3.5 variant of Speeduino the CanBus code will be incorporated into the main system firmware as the Teensy3.5 has integrated CanBus and only requires a transceiver module added.

Third Party Addon's

In This section you will find information about third party designed hardware designed to be used in conjunction with the Speeduino ECU

GPIO for Speeduino

There are several variants of the GPIO , The firmware can be downloaded here https://github.com/Autohome2/Speeduino-GPIO

More information GPIO_for_Speeduino