This commit is contained in:
Josh Stewart 2020-01-17 21:55:14 +10:00
commit cb1a378eb4
37 changed files with 384 additions and 252 deletions

View File

@ -2,7 +2,7 @@
title: Configuring TunerStudio project options
description:
published: true
date: 2020-01-16T11:08:57.820Z
date: 2020-01-16T15:21:09.539Z
tags: TunerStudio
---
@ -52,3 +52,5 @@ An optional Speeduino specific boot loader is available that has different metho
CAN options are currently under development, but settings are available on this tab for testing if you have supported hardware.
![CAN Devices](/img/TunerStudio/TS_CAN_settings.png){.align-center width=400}
Configuration of CAN devices is currently unsupported

View File

@ -2,10 +2,12 @@
title: Setting up TunerStudio
description: How to create and connect to your ECU within TunerStudio
published: true
date: 2020-01-16T11:32:43.137Z
date: 2020-01-16T15:28:01.635Z
tags:
---
# Connecting to Tuner Studio
Tuner Studio is the tuning interface software used by Speeduino. It runs on Windows, Mac and linux and provides configuration, tuning and logging capabilities.
Once you have the firmware compiled and uploaded to your Arduino, you're ready to setup Tuner Studio in order to configure and monitor it. If you haven't yet compiled and uploaded the firmware, refer to the [Installing Firmware](/Installing_Firmware) page.
@ -59,8 +61,4 @@ In the Speeduino reference directory, you will find the base tune file to be ope
![TS_7.png](/img/TunerStudio/TS_7.png){.align-center width=400}
And that's it! Tuner Studio should now attempt to connect to the Arduino and show a realtime display of the ECU.
------------------------------------------------------------------------
------------------------------------------------------------------------
And that's it! Tuner Studio should now attempt to connect to the Arduino and show a realtime display of the ECU.

View File

@ -2,10 +2,11 @@
title: Speeduino Firmware setup
description: Setting up the Speeduino firmware on your board
published: true
date: 2020-01-14T14:06:47.340Z
date: 2020-01-16T15:46:57.263Z
tags:
---
# Loading the Speeduino firmware
## Overview
The Speeduino firmware is the code that powers the hardware and must be installed onto your board prior to using the ECU. New firmware releases are made regularly (Approximately every 2 months) that bring new features, bug fixes and performance improvements so staying up to date is highly recommended.
@ -52,7 +53,7 @@ There are two methods for obtaining the Speeduino firmware:
- Start the IDE, select *File > Open*, navigate to the location you downloaded Speeduino to and open the **speeduino.ino** file.
- Set the board type: *Tools > Board > Arduino Mega 2560* or Mega ADK (This is the only board currently supported)
- Click the **Verify** icon in the top left corner (Looks like a tick) <img src="http://i.imgur.com/FKMDHoC.png?1" width="30" height="30" />
- Click the **Verify** icon in the top left corner (Looks like a tick)
At this point you should have a compiled firmware! If you experienced a problem during the compile, see the [Troubleshooting](http://speeduino.com/wiki/index.php?title=Compiling_and_Installing_Firmware&action=edit&section=4#Troubleshooting) section below.
@ -86,29 +87,15 @@ Once you've successfully compiled the firmware, installation on the board is tri
- Plug in your Mega 2560 to a free USB port
- If you're running an older version of **Windows** and this is the first time you've used an Arduino, you may need to install drivers for the Arduino serial chip (USB-UART or "USB adapter chip").
<img src="http://i.imgur.com/CkVOai2.png" width="400" />
Most official boards and many non-official versions use the ATMega16U2 or 8U2, whereas many of the Mega2560 clone boards utilize the CH340G IC. Both types work well. The serial chips can generally be identified by appearance:
ATMega16U (square IC) - drivers included in Windows, MacOS and Linux:
<img src="http://i.imgur.com/epoIiIm.png" width="200" />
or
WCH CH340G (Rectangular IC) - uses "CH341" drivers from [WCH](http://www.wch.cn/downloads/file/65.html) for Windows:
<img src="http://i.imgur.com/bB2DqNW.png" width="200" />
WCH-original CH340/CH341 drivers for other systems (Mac, Linux, Android, etc) may be found [here](http://www.wch.cn/downloads/CH341SER_ZIP.html).
* **ATMega16U** - This has a square IC near the USB connector - drivers are included in Windows 7+, MacOS and Linux.
* **WCH CH340G** - This has a rectangular IC near the USB connector- uses "CH341" drivers from [WCH](http://www.wch.cn/downloads/file/65.html) for Windows
* WCH-original CH340/CH341 drivers for other systems (Mac, Linux, Android, etc) may be found [here](http://www.wch.cn/downloads/CH341SER_ZIP.html).
- In Arduino IDE; select the Mega2560: *Tools &gt; Board*
- Select your system's serial port to upload: *Tools &gt; Serial Port*
- Hit the *Upload* button from the top left corner (Looks like an arrow point to the right) <img src="http://i.imgur.com/NgSMarQ.png" width="30" height="30" />
Assuming all goes well, you should see the IDE message that avrdude is done, similar to this:
<img src="http://i.imgur.com/iBRSq5t.png" />
- Hit the *Upload* button from the top left corner
### Older firmware releases
@ -148,4 +135,6 @@ The following can occur if you have only opened the speeduino.ino file rather th
Make sure all the files are contained within the same directory, then select File-&gt;Open and find the speeduino.ino file. If you have opened the project correctly, you should have multiple tabs along the top:
<img src="https://raw.githubusercontent.com/speeduino/wiki/master/speeduinoIDE.png" width="60%" />
![speeduinoIDE.png](/img/TunerStudio/speeduinoIDE.png){.align-center width=500}
If you see only a single file or a small number of files then you haven't opened the entire project.

View File

@ -2,7 +2,7 @@
title: Miata/MX5 89-95 NA6 PNP
description: Plug and Play board for the NA Miata/MX5 model years '89 through to early '95
published: true
date: 2020-01-08T01:53:01.609Z
date: 2020-01-16T11:54:38.899Z
tags: boards, PNP
---
@ -13,7 +13,7 @@ The Speeduino Miata / MX5 Plug N Play (PNP) box is designed for easy installatio
The stock ECU for these vehicles have a 2 plug loom connection and look like the below:
![OEM_ECU.png](/img/MX5/OEM_ECU.png =600x){.align-center}
![OEM_ECU.png](/img/MX5/OEM_ECU.png){.align-center width=500}
> **WARNING:** Note that some changes to the stock hardware configuration are required with this unit. In particular, please see below in the fuel pump section for details that must be understood prior to starting
{.is-danger}
@ -33,7 +33,7 @@ For a load reference, it is strongly recommended to run a manifold pressure line
The 1.6L cars typically come with a suitable MAP port near the throttle body that is capped off in stock form and is generally the easiest place to take the manifold pressure reference.
![MAP_orig.png](/img/MX5/MAP_orig.png =600x){.align-center}
![MAP_orig.png](/img/MX5/MAP_orig.png){.align-center width=500}
5mm or 6mm vacuum hose should be used and there are multiple original holes in the firewall where this can be run.
@ -41,7 +41,7 @@ The 1.6L cars typically come with a suitable MAP port near the throttle body tha
Manual NA6s come with a switch only TPS that provides limited feedback to the ECU. It is highly recommended to replace this with a Variable TPS (VTPS) that provides a signal indicating the current throttle position. The original wiring can be used with any 3 wire VTPS
![TPS_wiring.png](/img/MX5/TPS_wiring.png =600x){.align-center}
![TPS_wiring.png](/img/MX5/TPS_wiring.png){.align-center width=500}
> **Note:** If a VTPS is **NOT** being fitted, the stock TPS should be disconnected and a 1k resistor placed between the signal line and ground to prevent erratic acceleration enrichment at full throttle.
{.is-warning}
@ -53,7 +53,7 @@ In the stock configuration, inlet air temperature is provided by a sensor in the
The 2 wires from this sensor can be pinned directly into the AFM connector on pins 1 and 6 (It does not matter which wire goes to which pin):
![IAT_connector.png](/img/MX5/IAT_connector.png =600x){.align-center}
![IAT_connector.png](/img/MX5/IAT_connector.png){.align-center width=500}
### Wideband O2 Sensor
@ -67,7 +67,7 @@ The stock ECU does not perform any fuel pump control as this is taken care of by
The fuse to be removed is found in the engine bay fuse block:
![ST_SIG_fuse.png](/img/MX5/ST_SIG_fuse.png =600x){.align-center}
![ST_SIG_fuse.png](/img/MX5/ST_SIG_fuse.png){.align-center width=500}
#### Alternative control methods
@ -75,7 +75,7 @@ If the above method of fuel pump control is either not desirable or not availabl
To do this, a jumper wire is required on the AFM connector per the below:
![AFM_fuel_pump.png](/img/MX5/AFM_fuel_pump.png =600x){.align-center}
![AFM_fuel_pump.png](/img/MX5/AFM_fuel_pump.png){.align-center width=500}
Once the above jumper is in place, the fuel pump pin in TunerStudio should be set to A9.
@ -97,4 +97,4 @@ The stock sensors can use preset calibrations within TunerStudio. The following
**Stock Coolant Sensor (CLT)** - RX-7_CLT(S4 & S5)
**Stock inlet air sensor (IAT)** - RX-7_AFM(S5 in AFM)
![sensor_calibrations.PNG](/img/MX5/sensor_calibrations.PNG =500x){.align-center}
![sensor_calibrations.PNG](/img/MX5/sensor_calibrations.PNG){.align-center width=420}

View File

@ -2,7 +2,7 @@
title: V0.3 Board
description: Usage and details of the v0.3 series of boards
published: true
date: 2020-01-14T07:02:06.686Z
date: 2020-01-16T11:53:24.022Z
tags:
---
@ -27,7 +27,7 @@ The v0.3 boards includes the following features:
## Physical Layout
![v0_3_2_board_annotated.jpg](/img/boards/v0_3_2_board_annotated.jpg =60%x){.align-center}
![v0_3_2_board_annotated.jpg](/img/boards/v0_3_2_board_annotated.jpg){.align-center width=450}
## Proto area
@ -38,7 +38,7 @@ The proto area can be used for adding your own circuits on to Speeduino if requi
- SPI pins (MOSI, MISO, SCK and SS). Alternatively these can be used as generic digital IO (Arduino pins 50-53)
- 3 generic analog inputs (13-15)
![v0_3_2_proto_annotated.jpg](/img/boards/v0_3_2_proto_annotated.jpg =60%x){.align-center}
![v0_3_2_proto_annotated.jpg](/img/boards/v0_3_2_proto_annotated.jpg){.align-center width=460}
## Board Assembly
@ -50,7 +50,7 @@ Assembly of a complete board is relatively straightforward with all components b
2. All diodes (Including LEDS)
3. All capacitors
* Take note that C14 and C16 are polarised capacitors, meaning that they must be put in the correct way around. The capacitors should be marked with a + sign on one side. On the PCB, the positive side is indicated by a line on the capacitor symbol.
* ![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center}
* ![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center width=180}
Correct capacitor orientation
4. All jumper headers (JP\*)

View File

@ -2,7 +2,7 @@
title: V04
description:
published: true
date: 2020-01-14T14:47:05.616Z
date: 2020-01-16T11:52:16.617Z
tags:
---
@ -40,7 +40,7 @@ Physical Layout
Note that there are some differences between the various versions of the board, however the pinouts on the main IDC40 connector remain the same.
![v0_4_board_annotated_1.jpg](/img/boards/v0_4_board_annotated_1.jpg =50%x){.align-left}
![v0_4_board_annotated_1.jpg](/img/boards/v0_4_board_annotated_1.jpg){.align-left width=50%}
| Pin \# | Function |
@ -97,7 +97,7 @@ Assembly of a complete board is virtually identical to the v0.3 and remains rela
> Take note that C14 and C16 are polarised capacitors, meaning that they must be put in the correct way around. The capacitors should be marked with a + sign on one side. On the PCB, the positive side is indicated by a line on the capacitor symbol.
{.is-warning}
![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center}
![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center width=180}
1. All jumper headers (JP\*)
2. Arduino pins:
@ -147,7 +147,7 @@ If using a VR crank sensor, the board will require the addition of a VR conditio
#### SP721 Over-voltage Protection
For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate) page.
For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate) page
### Jumper Configs

View File

@ -2,12 +2,11 @@
title: Acceleration Wizard
description: Tuning the acceleration enrichment
published: true
date: 2020-01-16T11:33:20.998Z
date: 2020-01-16T13:15:47.463Z
tags: TunerStudio
---
Overview
--------
# Acceleration Enrichment
Acceleration Enrichment (AE) is used to add extra fuel during the short transient period following a rapid increase in throttle. It performs much the same function as an accelerator pump on a carbureted engine, increasing the amount of fuel delivered until the manifold pressure reading adjusts based on the new load.
@ -19,8 +18,8 @@ Acceleration Enrichment (AE) is used to add extra fuel during the short transien
Tuning of acceleration enrichment is based on the rate of change of the throttle position, a variable known as TPSdot (TPS delta over time). This is measured in %/second, with higher values representing faster presses of the throttle and values in the range 50%/s to 1000%/s are normal. Eg:
- 100%/s = pressing the throttle from 0% to 100% in 1 second
- 1000%/s = pressing the throttle from 0% to 100% in 0.1s
- 100%/s = pressing the throttle from 0% to 100% in 1 second
- 1000%/s = pressing the throttle from 0% to 100% in 0.1s
TPSdot forms the X axis of the acceleration curve, with the Y axis value representing the % increase in fuel.

View File

@ -2,7 +2,7 @@
title: Boost Control
description: Open and closed loop boost control settings
published: true
date: 2020-01-07T03:05:38.368Z
date: 2020-01-16T11:43:18.702Z
tags:
---
@ -17,11 +17,11 @@ Settings
--------
Speeduino's boost control uses a PID algorithm with 2 modes of operation, Simple and Full. Each has their own advantages and disadvantages, as outlined below
![boost_settings.png](/img/accessories/boost_settings.png =80%x){.align-center}
![boost_settings.png](/img/accessories/boost_settings.png){.align-center width=400}
In Simple mode, the PID values themselves are controlled by the ECU itself and a sensitivity slider is used to adjust how aggressive the output duty cycle will be set. The simple mode can be easy and fast to setup, however has the downside that to avoid overboost, the sensitivity may need to be set low, which can increase lag.
### Target table
![boost_map.png](/img/accessories/boost_map.png){.align-center}
![boost_map.png](/img/accessories/boost_map.png){.align-center width=450}
The boost map function varies depending on whether open or closed loop boost control has been selected.

View File

@ -2,7 +2,7 @@
title: Cranking
description:
published: true
date: 2020-01-07T01:57:30.177Z
date: 2020-01-16T11:40:55.664Z
tags:
---
@ -15,7 +15,7 @@ Settings
--------
![cranking.png](/img/warmup/cranking.png =70%x){.align-center}
![cranking.png](/img/warmup/cranking.png){.align-center width=450}
- **Cranking RPM** - This sets the threshold for whether Speeduino will set its status to be cranking or running. Any RPM above 0 and below this value will be considered cranking and all cranking related adjustments will be applied. It's generally best to set this to be around 100rpm higher than your typical cranking speed to account for spikes and to provide a smoother transition to normal idle
- **Flood Clear level** - Flood clear is used to assist in removing excess fuel that has entered the cylinder/s. Whilst flood clear is active, all fuel and ignition events will be stopped and the engine can be cranked for a few seconds without risk of starting or further flooding. To trigger flood clear, the RPM must be **below** the above Cranking RPM setting and the TPS must be **above** the threshold of this setting.

View File

@ -2,33 +2,29 @@
title: Dwell
description:
published: true
date: 2020-01-07T01:48:38.837Z
date: 2020-01-16T12:14:06.860Z
tags:
---
Overview
========
# Dwell Control
## Overview
The dwell control dialog alters the coil charging time (dwell) for Speeduino's ignition outputs. Care should be taken with these settings as igniters and coils can be permanently damaged if dwelled for excessive periods of time.
From the April 2017 firmware onwards, dwell will automatically reduce when the configured duration is longer than the available time at the current RPM. This is common in single channel ignition configurations (Eg 1 coil with a distributor) and in particular on higher cylinder count engines.
Settings
========
## Settings
![dwell.png](/img/ignition/dwell.png){.align-center width=400}
![dwell.png](/img/ignition/dwell.png =60%x){.align-center}
**Note:** Both the running and cranking dwell times are nominal values, assumed to be at a constant voltage (Usually 12v). Actual dwell time used will depend on the current system voltage with higher voltages having lower dwell times and vice versa. See section below on voltage correction
- Cranking dwell - The nominal dwell time that will be used during cranking. Cranking is defined as being whenever the RPM is above 0, but below the 'Cranking RPM' values in the [Cranking](Cranking "wikilink") dialog
- Running dwell - The nominal dwell that will be used when the engine is running normally.
- Spark duration - The approximate time the coil takes to fully discharge. This time is used in calculating a reduced dwell when in time limited conditions, such as mentioned above on single coil, high cylinder count engines. The limited dwell time is calculated by taking the maximum revolution time at the given RPM, dividing by the number of spark outputs required per revolution and subtracting the spark duration. Outside of those conditions, this setting is not used.
- Over dwell protection - The over dwell protection system runs independently of the standard ignition schedules and monitors the time that each ignition output has been active. If the active time exceeds this amount, the output will be ended to prevent damage to coils. This value should typically be at least 3ms higher than the nominal dwell times configured above in order to allow overhead for voltage correction.
Voltage correction
------------------
- Cranking dwell - The nominal dwell time that will be used during cranking. Cranking is defined as being whenever the RPM is above 0, but below the 'Cranking RPM' values in the [Cranking](Cranking "wikilink") dialog
- Running dwell - The nominal dwell that will be used when the engine is running normally.
- Spark duration - The approximate time the coil takes to fully discharge. This time is used in calculating a reduced dwell when in time limited conditions, such as mentioned above on single coil, high cylinder count engines. The limited dwell time is calculated by taking the maximum revolution time at the given RPM, dividing by the number of spark outputs required per revolution and subtracting the spark duration. Outside of those conditions, this setting is not used.
- Over dwell protection - The over dwell protection system runs independently of the standard ignition schedules and monitors the time that each ignition output has been active. If the active time exceeds this amount, the output will be ended to prevent damage to coils. This value should typically be at least 3ms higher than the nominal dwell times configured above in order to allow overhead for voltage correction.
## Voltage correction
As the system voltage rises and falls, the dwell time needs to reduce and increase respectively. This allows for a consistent spark strength without damaging the coil/s during high system voltage conditions. It is recommended that 12v be used as the 'nominal' voltage, meaning that the Dwell % figure at 12v should be 100%.
The correction curve in the base tune file should be suitable for most coils / igniters, but can be altered if required.
![dwell_correction.png](/img/ignition/dwell_correction.png =60%x){.align-center}
![dwell_correction.png](/img/ignition/dwell_correction.png){.align-center width=450}

View File

@ -2,39 +2,43 @@
title: Engine Constants
description:
published: true
date: 2020-01-16T11:22:51.218Z
date: 2020-01-16T16:09:59.854Z
tags: TunerStudio
---
# Engine Constants
## Overview
From the Settings menu, select Constants
![TS_8.png](/img/TS_8.png){.align-center width=300}
![TS_8.png](/img/TunerStudio/TS_8.png){.align-center width=300}
Here you need to setup the engine constants. Fill out the fields in the bottom section before calculating the Required Fuel.
## Settings Description
![engine.png](/img/constants/engine.png){.align-center width=400}
- **Control Algorithm:** The load source that will be used for the fuel table
- **Squirts per Engine Cycle:** How many squirts will be performed over the duration of the engine cycle (Eg 720 degrees for a 4 stroke). most engines will not require values greater than 4. For sequential installations, this should be set to 2 with the injector staging set to 'Alternating'(Internally Speeduino will adjust the squirts to 1)
- Note that for 3 and 5 squirts, you must have a cam signal in addition to the crank.
- **Injector Staging:** This configures the timing strategy used for the injectors
- Alternating (Recommended for most installs) - Injectors are timed around each cylinders TDC. The exact closing angle can be specific in the Injector Characteristics dialog.
- Simultaneous - All injectors are fired together, based on the TDC of cylinder 1.
- **Engine stroke:** Whether the engine is 2 stroke or 4 stroke
- **Number of cylinders:** Number of cylinders in the engine. For rotary engines, select 4.
- **Injector Port Type:** Option isn't used by firmware. Selection currently does not matter
- **Number of injectors:** Usually the same as number of cylinders (For port injection)
- **Engine Type:** Whether the crank angle between firings is the same for all cylinders. If using an Odd fire engine (Eg Some V-Twins and Buick V6s), the angle for each output channel must be specific.
- **Injector Layout:** Specifies how the injectors are wired in
- **Paired:** 2 injectors are wired to each channel. The number of channels used is therefore equal to half the number of cylinders.
- **Semi-Sequential:** Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less.
- **Sequential**: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. Only available for engines with 4 or fewer cylinders.
- **Board Layout:** Specifies the input/output pin layout based on which Speeduino board you're using. For specific details of these pin mappings, see the utils.ino file
- **MAP Sample Method:** How the MAP sensor readings will be processed:
- **Instantaneous:** Every reading is used as it is taken. Makes for a highly fluctuating signal, but can be useful for testing
- **Cycle Average:** The average sensor reading across 720 crank degrees is used. This is of Event average are the recommended options for 4 of more cylinders
- **Cycle Minimum:** The lowest value detected across 720 degrees is used. This is the recommended method for less than 4 cylinders or ITBs
- **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy.
- **Control Algorithm:** The load source that will be used for the fuel table
- **Squirts per Engine Cycle:** How many squirts will be performed over the duration of the engine cycle (Eg 720 degrees for a 4 stroke). most engines will not require values greater than 4. For sequential installations, this should be set to 2 with the injector staging set to 'Alternating'(Internally Speeduino will adjust the squirts to 1)
- Note that for 3 and 5 squirts, you must have a cam signal in addition to the crank.
- **Injector Staging:** This configures the timing strategy used for the injectors
- **Alternating** (Recommended for most installs) - Injectors are timed around each cylinders TDC. The exact closing angle can be specific in the Injector Characteristics dialog.
- **Simultaneous** - All injectors are fired together, based on the TDC of cylinder 1.
- **Engine stroke:** Whether the engine is 2 stroke or 4 stroke
- **Number of cylinders:** Number of cylinders in the engine. For rotary engines, select 4.
- **Injector Port Type:** Option isn't used by firmware. Selection currently does not matter
- **Number of injectors:** Usually the same as number of cylinders (For port injection)
- **Engine Type:** Whether the crank angle between firings is the same for all cylinders. If using an Odd fire engine (Eg Some V-Twins and Buick V6s), the angle for each output channel must be specific.
- **Injector Layout:** Specifies how the injectors are wired in
- **Paired:** 2 injectors are wired to each channel. The number of channels used is therefore equal to half the number of cylinders.
- **Semi-Sequential:** Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less.
- **Sequential**: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. Only available for engines with 4 or fewer cylinders.
- **Board Layout:** Specifies the input/output pin layout based on which Speeduino board you're using. For specific details of these pin mappings, see the utils.ino file
- **MAP Sample Method:** How the MAP sensor readings will be processed:
- **Instantaneous:** Every reading is used as it is taken. Makes for a highly fluctuating signal, but can be useful for testing
- **Cycle Average:** The average sensor reading across 720 crank degrees is used. This is of Event average are the recommended options for 4 of more cylinders
- **Cycle Minimum:** The lowest value detected across 720 degrees is used. This is the recommended method for less than 4 cylinders or ITBs
- **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy.
The Oddfire angles should only be used on oddfire engines (Primarily some specifica V6s)

View File

@ -2,19 +2,19 @@
title: Flex Fuel
description: Setting up the flex fuel / ethanol content sensor
published: true
date: 2020-01-07T01:46:18.138Z
date: 2020-01-16T12:09:30.179Z
tags:
---
Overview
--------
# Flex Fuel
## Overview
Speeduino has the ability to modify fuel and ignition settings based on the ethanol content of the fuel being used, a practice typically known as flex fuelling. A flex fuel sensor is installed in the feed or return fuel lines and a signal wire is used as an input on the Speeduino board.
As ethanol is less energy dense, but also has a higher equivalent octane rating, adjustments to the fuel load and ignition timing are required.
Hardware
--------
## Hardware
Speeduino uses any of the standard GM/Continental Flex fuel sensors that are widely available and were used across a wide range of vehicles. These were available in 3 different units, all of which are functionally identical, with the main difference being only the physical size and connector. The part numbers for these are:
@ -38,9 +38,8 @@ All units are wired identically and have markings on the housing indicating what
On boards earlier to these, you will need to add a pullup resistor of between 2k and 3.5k Ohm. Recommended value is 3.3k, however any resistor in this range will work. Note that this is a relatively strict range, more generic values such as 1k or 10k DO NOT WORK with these sensors.
Tuning
------
![flex_settings.png](/img/flex/flex_settings.png =80%x){.align-center}
## Tuning
![flex_settings.png](/img/flex/flex_settings.png){.align-center width=450}
- **Sensor frequency -** The minimum and maximum frequency of the sensor that represent 0% and 100% ethanol respectively. For standard GM/Continental flex sensors, these values are 50 and 150
- **Fuel multiplier% -** This is the additional fuel that should be added as ethanol content increases. The Low value on the left represents the adjustment to the fuel map at 0% ethanol and will typically be 100% if the base tune was performed with E0 fuel. If the base tune was made with E10 or E15 however, this value can be adjusted below 100%. The high value represents the fuel multiplier at 100% ethanol (E100) and the default value of 163% is based on the theoretical difference in energy density between E0 and E100. Tuning of this value may be required

View File

@ -2,15 +2,15 @@
title: Fuel pump
description: Setting the on/off conditions of the fuel pump
published: true
date: 2020-01-14T06:24:04.641Z
date: 2020-01-16T14:17:07.764Z
tags: aux outputs, tuning
---
# Header
Fuel pump ontrol is a simple but important function performed by the ECU. Currently Speeduino does not perform variable (PWM) pump control, but
# Fuel pump
Fuel pump control is a simple but important function performed by the ECU. Currently Speeduino does not perform variable (PWM) pump control, but
## Settings
![fuel_pump.png](/img/accessories/fuel_pump.png =500x){.align-center}
![fuel_pump.png](/img/accessories/fuel_pump.png){.align-center width=480}
* **Fuel pump pin** - The Arduino pin that the fuel pump output is on. In most cases this should be left to `Board Default` unless you have a specific reason to change this.
* **Prime duration** - How long (In seconds) the fuel pump should run when the system is first powered up. Note that this is triggered **when the ECU is powered on**, which will not always be the same as when the ignition is turned out. If you have a USB cable connected then the ECU is already powered up.

View File

@ -2,14 +2,16 @@
title: IAT Density
description:
published: true
date: 2020-01-16T11:26:59.803Z
date: 2020-01-16T16:05:09.541Z
tags:
---
Overview
--------
# IAT Density
## Overview
The IAT density curve represents the change in oxygen density of the inlet charge as temperature rises. The default curve approximately follows the ideal gas law and is suitable for most installations, however if you are seeing very high inlet temperatures (Either due to heat soak in the engine bay or from turbocharging) the you may need to adjust the hot end of this curve.
The IAT density curve represents the change in oxygen density of the inlet charge as temperature rises.
## Curve
## Example Curve
![iatDensity.png](/img/constants/iatDensity.png){.align-center width=400}
This default curve approximately follows the ideal gas law and is suitable for most installations, however if you are seeing very high inlet temperatures (Either due to heat soak in the engine bay or from turbocharging) the you may need to adjust the hot end of this curve.

View File

@ -2,7 +2,7 @@
title: Temperature based timing changes
description:
published: true
date: 2020-01-14T00:30:56.331Z
date: 2020-01-16T11:40:27.486Z
tags: tuning
---
@ -11,4 +11,4 @@ Changes in Inlet Air Temperature (IAT), in particular significant increases whil
## Example
Exact settings will be engine dependant, but pulling of ignition timing beyond 100\*C is a common scenario.
![iat_retard.png](/img/ignition/iat_retard.png =500x){.align-center}
![iat_retard.png](/img/ignition/iat_retard.png){.align-center width=500}

View File

@ -2,12 +2,13 @@
title: Idle
description:
published: true
date: 2020-01-07T02:56:36.908Z
date: 2020-01-16T13:18:37.502Z
tags:
---
Overview
--------
# Idle Control
## Overview
The idle control outputs are used to alter the state of an idle control valve to increase the amount of air entering the engine at idle. These come in multiple types (Described below) and each is configured and tuned differently.
### Compatible Idle Valve Types

View File

@ -2,12 +2,11 @@
title: O2
description:
published: true
date: 2020-01-07T01:37:08.065Z
date: 2020-01-16T16:03:52.330Z
tags:
---
AFR/O2
------
# AFR/O2 (Closed loop fuel)
AFR/O2 (for **A**ir:**F**uel **R**atio), dialog controls the closed loop fuel control, used for adjusting injector load based on input from an exhaust oxygen sensor (O2 sensor). In conjunction with the AFR Table, the closed loop AFR system will compare the actual O2 reading with the current target fuel ratio and make adjustments accordingly.
@ -15,28 +14,30 @@ Use of a wideband sensor and controller is **strongly** recommended, however bas
Note that closed loop fuel control is not a replacement for a poor tune. Many good configurations do not used closed loop control at all or only allow it very small adjustment authority.
Settings
--------
## Settings
Speeduino supports 2 closed loop algorithms, each intended for different configurations:
1. Simple - A time based 'target chasing' algorithm where the amount of fuel adjustment is dependant on how long the reading has been lean or rich compared to the current target. This algorithm is best suited to narrowband sensors where only basic rich/lean information is available. In particular, this algorithm performs poorly if you have a fuel map that is not close to complete. If you have this enabled and are seeing oscillations in the pulse width and/or AFRs, even when cruising, then you should disabled closed loop control until the base fuel MAP is better tuned.
2. PID - This is the preferred closed loop algorithm and will provide better results when combined with a wideband sensor and tuned correctly.
1. **Simple** - A time based 'target chasing' algorithm where the amount of fuel adjustment is dependant on how long the reading has been lean or rich compared to the current target. This algorithm is best suited to narrowband sensors where only basic rich/lean information is available. In particular, this algorithm performs poorly if you have a fuel map that is not close to complete. If you have this enabled and are seeing oscillations in the pulse width and/or AFRs, even when cruising, then you should disabled closed loop control until the base fuel MAP is better tuned.
2. **PID** - This is the preferred closed loop algorithm and will provide better results when combined with a wideband sensor and tuned correctly.
### Common variables
![o2_simple.png](/img/tuning/o2_simple.png){.align-center}
- **Sensor type** - Narrowband or wideband, depending on hardware configuration. Narrowband sensor should be of the 0-1v type, wideband sensors should have a 0-5v signal. Wideband sensors need to be calibrated in the Tools-&gt;Calibrate AFR Table dialog
- **Algorithm** - See above for description of each algorithm available
- **Ignition events per step** - The AFR adjustment calculation will be performed every this many ignition cycles. Changes to closed loop adjustment typically have some lag before their impact is registered by the O2 sensor and increasing this value can take this lag into account. Typical values are 2-5.
- **Controller step size** -
- **Controller Auth** - The maximum % that the pulse width can be changed through this closed loop adjustment. Recommended value is no more than 20%.
- **Correct above/below AFR** - The AFR range that closed loop adjustments will be applied within. This range is typically limited by the sensor and controller in use.
- **Active above Coolant** - Closed loop should only operate once engine is up to operating temperature. This value should be set to match the engines standard operating temp.
- **Active above RPM** - Closed loop adjustments should genrally not be made at idle. Use this value to specify when adjustment should begin being made.
- **Active below TPS** - Above this TPS value, closed loops adjustments will be disabled
- **EGO delay after start** - All O2 sensors require a warmup period before their readings are valid. This varies based on the sensor in use, but 15s is a safe value in most cases.
* **Sensor type** - Narrowband or wideband, depending on hardware configuration. Narrowband sensor should be of the 0-1v type, wideband sensors should have a 0-5v signal. Wideband sensors need to be calibrated in the Tools-&gt;Calibrate AFR Table dialog
* **Algorithm** - See above for description of each algorithm available
* **Ignition events per step** - The AFR adjustment calculation will be performed every this many ignition cycles. Changes to closed loop adjustment typically have some lag before their impact is registered by the O2 sensor and increasing this value can take this lag into account. Typical values are 2-5.
* **Controller step size** -
* **Controller Auth** - The maximum % that the pulse width can be changed through this closed loop adjustment. Recommended value is no more than 20%.
* **Correct above/below AFR** - The AFR range that closed loop adjustments will be applied within. This range is typically limited by the sensor and controller in use.
* **Active above Coolant** - Closed loop should only operate once engine is up to operating temperature. This value should be set to match the engines standard operating temp.
* **Active above RPM** - Closed loop adjustments should genrally not be made at idle. Use this value to specify when adjustment should begin being made.
* **Active below TPS** - Above this TPS value, closed loops adjustments will be disabled
* **EGO delay after start** - All O2 sensors require a warmup period before their readings are valid. This varies based on the sensor in use, but 15s is a safe value in most cases.
### PID only variables
![o2_pid.png](/img/tuning/o2_pid.png){.align-center}
- **P/I/D** - PID Proportional Gain, Integral and Derivative percentages.
* **P/I/D** - PID Proportional Gain, Integral and Derivative percentages.
These options are in addition to the Simple conditions and specify the parameters of the closed loop operation

View File

@ -2,7 +2,7 @@
title: Sensor Calibration
description: Steps for calibrating all analog sensor inputs
published: true
date: 2020-01-07T03:13:01.249Z
date: 2020-01-16T11:45:03.850Z
tags:
---
@ -16,11 +16,11 @@ This should be completed after completing the Settings for your engine. Your com
Open the **Tools** menu: tools_menu
![tools_menu.png](/img/tuning/tools_menu.png =50%x){.align-center}
![tools_menu.png](/img/tuning/tools_menu.png){.align-center width=400}
Select **Calibrate Pressure Sensors**, the window below will open:
![MAP_calibration.png](/img/tuning/MAP_calibration.png =60%x){.align-center}
![MAP_calibration.png](/img/tuning/MAP_calibration.png){.align-center width=400}
Select your MAP Sensor from the drop down list. If you used the MAP sensor in the bill of materials, this will be the MPX4250A. If you are using another MAP or one from the engine manufacturer, select it from the list. Click **Burn** to send the information to your Speeduino.
@ -35,11 +35,11 @@ The sensor selected will be the **Coolant Temperature Sensor**. Select your sens
Note that the standard Speeduino build is to have a 2490 ohm bias resistor, which is standard for sensors used by most manufacturers. If your sensor requires another value, you may need to change resistor R3 to the correct value for your sensor. You can try overriding the Bias Resistor Value with 2490 ohms, but check to be sure your sensor reads correctly in TS.
![CLT_calibration.png](/img/tuning/CLT_calibration.png =70%x){.align-center}
![CLT_calibration.png](/img/tuning/CLT_calibration.png){.align-center width=450}
The same calibration can then be performed for the Inlet Air Temperature (IAT) sensor by changing the **Sensor Table** to **Air Temperature Sensor**:
![IAT_calibration.png](/img/tuning/IAT_calibration.png =70%x){.align-center}
![IAT_calibration.png](/img/tuning/IAT_calibration.png){.align-center width=450}
Select your sensor from the **Common Sensor Values** drop-down list. This will place the correct values into the temperature and resistance charts and the Bias resistor value. Click **Write to Controller** to send this information to your Speeduino. If your sensor is not listed, see [Entering Custom Values](#Entering_Custom_Values "wikilink") below.
@ -59,7 +59,7 @@ Note that his procedure can also be used to enter the values of resistance on si
Open the **Tools** menu again and select **Calibrate AFR Table**:
![O2_calibration.png](/img/tuning/O2_calibration.png =60%x){.align-center}
![O2_calibration.png](/img/tuning/O2_calibration.png){.align-center width=400}
Select your **Oxygen Sensor sensor** from the **Common Sensor Values** drop-down list. If you are using a custom Oxygen Sensor controller, select **Custom Linear WB** and then you can enter the values for **Volts** and **AFR** at two points (should be published in the controller manual).
@ -73,7 +73,7 @@ This will set up your Speeduino so that you can also run simulations to check yo
Before Speeduino can work correctly with your engine, you will also need to Calibrate the Throttle Position Sensor. This must be done using the throttle body and TPS used on the engine. It is best to do this while the throttle body is installed on the engine.
Open the **Tools** menu and select **Calibrate TPS**:
![TPS_calibration.png](/img/tuning/TPS_calibration.png =50%x){.align-center}
![TPS_calibration.png](/img/tuning/TPS_calibration.png){.align-center width=480}
With the throttle closed, click the **Get Current** button beside the Closed Throttle ADC count field. Then move the throttle to full open and hold it there. Then click the **Get Current** button beside the Full Throttle ADC count field.
Click **Accept** to save the information to Speeduino.

View File

@ -2,34 +2,32 @@
title: Spark Settings
description: Configuration options for the ignition outputs
published: true
date: 2020-01-07T00:24:16.790Z
date: 2020-01-16T12:12:49.688Z
tags:
---
Overview
--------
# Spark Settings
## Overview
The Spark settings dialog contains the options for how the ignition outputs will function, including which of the 4 IGN outputs are used and how. They are critical and incorrect values will result in an engine not starting and in some cases damage to hardware is possible. This dialog also contains a number of options for fixing the ignition timing for testing and diagnosis.
Please ensure you have reviewed these settings prior to attempting to start your engine.
Settings
--------
## Settings
![spark_settings.png](/img/ignition/spark_settings.png){.align-center width=500}
![spark_settings.png](/img/ignition/spark_settings.png){.align-center}
- **Spark Output mode** - Determines how the ignition pulses will be outputted and is very specific to your ignition wiring. **Note that no matter which option is selected here, ignition signals ALWAYS fire in numerical order (ie 1-&gt;2-&gt;3-&gt;4) up to the maximum number of outputs**. The firing order of the engine is accounted for in the wiring order.
- **Wasted Spark** - Number of ignition outputs is equal to half the number of cylinders and each output will fire once every crank revolution. One spark will therefore take place during the compression stroke and the other on the exhaust stroke (aka the 'wasted' spark). This method is common on many 80s and 90s vehicles that came with specific wasted spark coils, but can also be used with individual coils that are wired in pairs. Wasted spark will function with only a crank angle reference (Eg a missing tooth crank wheel with no cam signal)
- **Single Channel** - This mode sends all ignition pulses to IGN1 output and is used when the engine contains a distributor (Typically with a single coil). The number of output pulses per (crank) revolution is equal to half the number of cylinders.
- **Wasted COP** - This is a convenience mode that uses the same timing as the 'Wasted Spark' option, however each pulse is sent to 2 ignition outputs rather than one. These are paired IGN1/IGN3 and IGN2/IGN4 (ie When IGN1 is high, IGN3 will also be high). As this is still a wasted spark timing mode, only crank position is required and there will be 1 pulse per pair, per crank revolution. This mode can be useful in cases where there are 4 individual coils, but running full sequential is either not desired or not possible (Eg when no cam reference is available).
- **Sequential** - This mode is only functional on engines with 4 or fewer cylinders.
- **Rotary** - See below for full detail
- **Cranking advance** - The number of absolute degrees (BTDC) that the timing will be set to when cranking. This overrides all other timing advance modifiers during cranking.
- **Spark Output mode** - Determines how the ignition pulses will be outputted and is very specific to your ignition wiring. **Note that no matter which option is selected here, ignition signals ALWAYS fire in numerical order (ie 1-&gt;2-&gt;3-&gt;4) up to the maximum number of outputs**. The firing order of the engine is accounted for in the wiring order.
- **Wasted Spark** - Number of ignition outputs is equal to half the number of cylinders and each output will fire once every crank revolution. One spark will therefore take place during the compression stroke and the other on the exhaust stroke (aka the 'wasted' spark). This method is common on many 80s and 90s vehicles that came with specific wasted spark coils, but can also be used with individual coils that are wired in pairs. Wasted spark will function with only a crank angle reference (Eg a missing tooth crank wheel with no cam signal)
- **Single Channel** - This mode sends all ignition pulses to IGN1 output and is used when the engine contains a distributor (Typically with a single coil). The number of output pulses per (crank) revolution is equal to half the number of cylinders.
- **Wasted COP** - This is a convenience mode that uses the same timing as the 'Wasted Spark' option, however each pulse is sent to 2 ignition outputs rather than one. These are paired IGN1/IGN3 and IGN2/IGN4 (ie When IGN1 is high, IGN3 will also be high). As this is still a wasted spark timing mode, only crank position is required and there will be 1 pulse per pair, per crank revolution. This mode can be useful in cases where there are 4 individual coils, but running full sequential is either not desired or not possible (Eg when no cam reference is available).
- **Sequential** - This mode is only functional on engines with 4 or fewer cylinders.
- **Rotary** - See below for full detail
- **Cranking advance** - The number of absolute degrees (BTDC) that the timing will be set to when cranking. This overrides all other timing advance modifiers during cranking.
- **Spark output triggers** - <font color='red'>**THIS IS A CRITICAL SETTING!**</font>. Selecting the incorrect option here can cause damage to your igniters or coils. Specifies whether the coil will fire when the ignition output from Speeduino goes HIGH or goes LOW. The VAST majority of ignition setups will require this to be set **GOING LOW** (ie the coil charges/dwells when the signal is high and will **fire** when that signal goes low). Whilst GOING LOW is required for most ignition setups, there are some configurations that perform the dwell timing on the ignition module and fire the coil only when they receive a HIGH signal from the ECU.
- **Fixed Angle** - This is used to lock the ignition timing to a specific angle for testing. Setting this to any value other than 0 will result in that exact angle being used (ie overriding any other settings) at all RPMs/load points, except during cranking (Cranking always uses the above Cranking Advance setting). This setting should be set to 0 for normal operation.
### Rotary modes
![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center width=450}
![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center}
Speeduino currently only supports the ignition configuration used on FC RX7 engines. Support for FD and RX8 ignition setups is in development. The leading / trailing split angle can be set as a function of the current engine load.
- **FC** - Outputs are configured for the Leading/Trailing setup that was used on FC RX7s. Wiring is:

View File

@ -2,38 +2,33 @@
title: Staged Injection
description: Configuring multi-stage fuel injection
published: true
date: 2020-01-07T01:47:42.658Z
date: 2020-01-16T12:36:25.977Z
tags:
---
Staged Injection
----------------
# Staged Injection
## Overview
Speeduino has the ability to control a secondary fuel stage for engines that have 2 sets of injectors, typically of different capacities. There are few stock engines that come with secondary injectors, the notable exception being many Mazda rotaries. Secondary staged injection is also a common modification, used whenever large injectors are required, but where it is desirable to keep smaller injectors for smoother low RPM performance.
### Configuration
No matter which control strategy is chosen, you must enter the sizing of the primary and secondary injectors in order to allow Speeduino to know the split in the overall fuelling.
> **CRITICAL** - The req-Fuel value in the [Engine Constants](Engine_Constants "wikilink") MUST be updated when staged injection is turned on. **When staging is in use, the value entered in the req_fuel calculator MUST be equal to the sum of both the primary and secondary injector sizes**
> Failure to set these values correctly will result in excessive rich or lean conditions.
{.is-danger}
**Eg:**
**Primary Injectors :** 300cc
**Secondary Injectors :** 700cc
**Value entered into the req_fuel calculator :** 1000cc
* **Primary Injectors :** 300cc
* **Secondary Injectors :** 700cc
* **Value entered into the req_fuel calculator :** 1000cc
![staging_settings.PNG](/img/staging/staging_settings.PNG =60%x){.align-center}
![staging_settings.PNG](/img/staging/staged_reqfuel.PNG =60%x){.align-center}
![staging_settings.PNG](/img/staging/staging_settings.PNG){.align-center width=400}
![staging_settings.PNG](/img/staging/staged_reqfuel.PNG){.align-center width=400}
### Control methods
Speeduino provides 2 staging control modes, each with their own strengths and weaknesses. In most cases it is recommended to start with the Automatic mode, which only requires tuning of the standard VE table, and reviewing to see if you get the desired outcome. Only if this can't be tuned to give a satisfactory fuel split would changing to the manual table tuning be recommended.
#### Table control
Table control allows the use of a manual 8x8 map that indicates what percentage of the fuel load will be performed by the **secondary** injectors
- 0% = Secondary injectors disabled
- 100% = Primary injectors disabled
@ -43,9 +38,8 @@ It is important to note that the values in this table do NOT correspond directly
One disadvantage of the table tuning method is that it does not allow for the full fuel load of the primary and secondary injectors to be used simultaneously. As the table is a split of the total fuel load, as one set of injectors performs more, the other will perform less.
#### Automatic staging
Speeduino has an automatic staging method that takes into account the full capacity of the injectors (ie the sum of the 2 injector stages) and will perform a split of these itself. With this method, the user can simply tune the VE table in the same manner as if only a single set of injectors were used and the system takes care of the rest.
In this mode, Speeduino will attempt to use the primary injectors up to their 'Injector Duty Limit' (As configured in the [Injector Characteristics](Injector_Characteristics "wikilink") dialog. When staging is being used, it is recommend that this limit should be no higher than 85%. Once the primary injectors reach this duty limit, Speeduino will begin to perform any further fueling from the secondary injectors. In this way, the VE table is all that is required for tuning as the system will take care of allocating the current fuel load to the best injectors.
In this mode, Speeduino will attempt to use the primary injectors up to their 'Injector Duty Limit' (As configured in the [Injector Characteristics](Injector_Characteristics) dialog. When staging is being used, it is recommend that this limit should be no higher than 85%. Once the primary injectors reach this duty limit, Speeduino will begin to perform any further fueling from the secondary injectors. In this way, the VE table is all that is required for tuning as the system will take care of allocating the current fuel load to the best injectors.
Note that the dead time of the 2 sets of injectors is currently assumed to be the same. This may be altered in future firmwares if required (Post a feature request if needed).

View File

@ -2,8 +2,8 @@
title: Thermo fan
description: Control of a cooling fan relay
published: true
date: 2020-01-14T02:17:03.743Z
tags: tuning, aux outputs
date: 2020-01-16T11:42:04.261Z
tags: aux outputs, tuning
---
# Thermo fan
@ -13,7 +13,7 @@ Control of a cooling (thermo) fan is available through the Thermo fan dialog.
{.is-info}
## Settings
![fan.png](/img/accessories/fan.png =500x){.align-center}
![fan.png](/img/accessories/fan.png){.align-center width=450}
* **Fan mode** - Currently only `On/Off` mode is supported
* **Output pin** - The arduino pin that the fan control will use. In most cases this should be left as `Board Default`

View File

@ -2,16 +2,17 @@
title: Warmup
description:
published: true
date: 2020-01-07T01:58:36.229Z
date: 2020-01-16T13:16:44.197Z
tags:
---
# Warmup Enrichment
## Overview
The Warm Up Enrichment (WUE) dialog contains settings related to the period after start (ie not cranking) but before the engine has reached normal operating temperature. It allows for modifications to fueling during this time to
## Settings
![warmup.PNG](/img/warmup/warmup.PNG =80%x){.align-center}
![warmup.PNG](/img/warmup/warmup.PNG){.align-center width=450}
### Warmup curve
This curve represents the additional fuel amount to be added whilst the engine is coming up to temperature (Based on the coolant sensor). The final value in this curve should represent the normal running temperature of the engine and have a value of 100% (Representing no modification of the fuel from that point onwards).

View File

@ -2,7 +2,7 @@
title: Daihatsu +1 trigger
description:
published: true
date: 2020-01-07T03:54:13.568Z
date: 2020-01-16T11:48:01.703Z
tags:
---
@ -29,4 +29,4 @@ In 3 cylinder engines, there are 3 evenly spaced teeth at 0, 240 and 480 crank d
The 4 cylinder is the same, except with 4 evenly spaced teeth. The 5 teeth are therefore located at 0, 30, 180, 360 & 540 (Crank degrees, ATDC)
![daihatsu_3_1.png](/img/decoders/daihatsu_3_1.png =75%x){.align-center}
![daihatsu_3_1.png](/img/decoders/daihatsu_3_1.png){.align-center width=80%}

View File

@ -1,5 +1,12 @@
Overview
--------
---
title: Dual Wheel
description:
published: true
date: 2020-01-17T00:44:09.513Z
tags: trigger
---
## Dual Wheel
A dual wheel trigger is one where there is a primary multi-tooth wheel combined with a secondary single pulse to provide location information. The primary input should contain no missing teeth. Both pulses can run at either cam or crank speed, but sequential operations requires that the secondary pulse is located on the cam. The design of the secondary trigger can vary (Eg a single short tooth, half-moon wheel etc), provided it only provides a single pulse per revolution.
@ -7,13 +14,12 @@ As with other arbitrary tooth count wheels, the number of teeth must evenly divi
Tooth \#1 is defined to be the first tooth on the primary wheel AFTER the pulse on the secondary wheel.
Applications
------------
### Applications
Dual wheel triggers are standard fitment on a number of Euro make cars, particularly those from VW and Audi. They are also a popular aftermarket fitment due to their simplicity and ease of fitment.
Tuner Studio Configuration
--------------------------
### Tuner Studio Configuration
<center>
<img src="https://raw.githubusercontent.com/speeduino/wiki/master/decoders/dualwheel_triggerconfig.png" />
@ -31,7 +37,7 @@ Fields:
The trigger angle can be found by placing the engine at TDC, then calculating how far it must be rotated until the first primary tooth after the secondary pulse.
### Sequential operation
#### Sequential operation
The missing tooth decoder supports sequential operation if the secondary input is running at cam speed. If Sequential mode is selected for either the fuel timing or spark timing, the system will expect that the secondary input is running at cam speed and will only provide half the output pulses if this is not the case.

View File

@ -2,12 +2,13 @@
title: Missing Tooth
description: Information about the missing tooth decoder pattern
published: true
date: 2020-01-07T04:53:01.240Z
date: 2020-01-17T00:41:27.503Z
tags:
---
# Missing Tooth Pattern
## Overview
# Supported trigger patterns
## Missing Tooth Pattern
### Overview
A missing tooth crank trigger is used as standard equipment by a number of OEMs, most notably Ford, but is also very popular as an aftermarket fitment.
@ -17,11 +18,11 @@ It is comprised of crank wheel with a given number of evenly spaced teeth, and o
{.is-warning}
## Applications
### Applications
Missing tooth crank wheels can be used on virtually any engine and is one of the more popular aftermarket options. It provides very good resolution in the higher tooth count versions (Eg 36-1 and 60-2) without being CPU intensive to decode.
## Tuner Studio Configuration
### Tuner Studio Configuration
![missingtooth_triggerconfig.png](/img/decoders/missingtooth_triggerconfig.png){.align-center}
**Fields:**
@ -40,5 +41,5 @@ The missing tooth decoder supports sequential operation if an additional cam inp
This cam signal should take the form of a single pulse every complete cycle. This can be a short tooth or a half moon type arrangement, provided that electrically there is only a single rising (or falling) pulse per cycle.
## Trigger Pattern
### Trigger Diagram
![missingtooth_trace1.png](/img/decoders/missingtooth_trace1.png){.align-center}

View File

@ -2,23 +2,23 @@
title: Missing Tooth (Cam speed)
description:
published: true
date: 2020-01-07T05:01:47.638Z
date: 2020-01-17T00:42:59.489Z
tags: decoder
---
## Overview
## Missing tooth (Cam speed)
The missing tooth cam-speed trigger is a Speeduino innovation, that permits function similar to a dual-wheel setup, thereby allowing sequential or wasted spark operation from cam-mounted or distributor wheels. The operation is based on both [Missing Tooth](Missing_Tooth "wikilink") and [Dual Wheel](Dual_Wheel "wikilink"). It is suggested to read those sections first for familiarization as this section will only highlight the fundamental differences to those common decoders.
This decoder is comprised of a single cam-speed wheel in the same configuration as a crank-mounted missing-tooth wheel. The number of teeth ***must*** be evenly divisible into 720°. As it rotates at half crank speed, the sensor reads half the wheel teeth on each 360° crank revolution, and the remaining teeth on the next crank rotation. A single missing tooth will appear on only one of the two crank rotations, and is then used as a phase indicator, much as the dual-wheel system uses the cam signal.
## Applications
### Applications
Missing tooth cam or distributor wheels can be used with cam or distributor wheel modification or fabrication as no OEM systems use it originally. The wheel ***must*** have at least as many teeth as cylinders, ***not*** including the missing tooth. This generally requires double the number of teeth as cylinders or more. As many teeth, slots, or other readable features (sensor targets) as possible in the limited space is recommended in order to satisfy this requirement, and to maximize resolution. The sensor must be capable of reliably reading smaller or closely-spaced teeth.
Due to typically limited teeth, only half the teeth being read on each revolution, and the potential for reduced accuracy due to timing drive wear; the timing accuracy may be reduced in comparison to crank wheel systems. A figure of error cannot be predicted here as the wear or 'slop' of a given engine will be unique. However, it should be reasonable to assume the timing error will not exceed the accuracy of an OEM-equivalent cam-driven system such as typical distributor systems, or possibly better due to more sensor targets.
## Tuner Studio Configuration
![missingtooth_cam_triggerconfig.png](/img/decoders/missingtooth_cam_triggerconfig.png =80%x){.align-center}
### Tuner Studio Configuration
![missingtooth_cam_triggerconfig.png](/img/decoders/missingtooth_cam_triggerconfig.png){.align-center width=450}
**Fields:**
- Primary base teeth: This is the number of teeth the wheel would have if there were none missing, e.g. a 36-1 wheel has only 35 actual teeth, but you would enter 36 into this field.
@ -30,6 +30,6 @@ Due to typically limited teeth, only half the teeth being read on each revolutio
The trigger angle is set in CRANK degrees, not cam.
## Trigger Pattern
### Trigger Pattern
![missingtooth_cam_trace.jpg](/img/decoders/missingtooth_cam_trace.jpg =75%x){.align-center}
![missingtooth_cam_trace.jpg](/img/decoders/missingtooth_cam_trace.jpg){.align-center width75%}

View File

@ -2,7 +2,7 @@
title: Subaru 36-2-2-2
description:
published: true
date: 2020-01-07T03:52:13.677Z
date: 2020-01-16T11:48:52.741Z
tags:
---
@ -17,6 +17,6 @@ The 3 sets of 2 missing teeth are located such that one group is on its own and
Cylinder 1 TDC compression happens on the fourth tooth after the single gap. Speeduino watches for any missing tooth period, then waits to confirm whether it is followed by another. Sync can therefore be determined in this manner at 2 points in a single crank revolution.
![36-2-2-2.png](/img/decoders/36-2-2-2.png =90%x){.align-center}
![36-2-2-2.png](/img/decoders/36-2-2-2.png){.align-center width=90%}
**Note:** Many diagrams and trigger wheel images available online show the wheel from the backside, making it show as rotating counter clockwise. For the correct orientation, when looking at the front of the engine, the wheel spins clockwise.

23
home.md
View File

@ -1,12 +1,18 @@
---
title: Speeduino wiki
description: The Speeduino documentation wiki
title: Speeduino Manual
description: The Speeduino documentation manual
published: true
date: 2020-01-10T06:08:13.463Z
tags:
tags: home
titlepage: true
titlepage-rule-height: 2
titlepage-rule-color: "360049"
titlepage-background: "offline/background1.pdf"
logo: "offline/logo.png"
logo-width: 350
---
# Speeduino Manual
# Introduction
This manual covers the hardware (sensors, wiring etc), software configuration and tuning elements related to running a Speeduino unit. When beginning with Speeduino, particularly if it is your first time installing and configuring an engine management system, this manual will assist in understanding Speeduino's capabilities and how it should be installed, both in terms of hardware and software/firmware.
Whilst this document will assist in providing information related to Speeduino's configuration, it does not cover advanced engine tuning, fuel / ignition strategies etc. As with any changes to engine management, the possibility of damage to hardware is very real should a system be configured incorrectly.
@ -14,9 +20,10 @@ Whilst this document will assist in providing information related to Speeduino's
### Getting Started
In terms of starting out with Speeduino, it can help to understand the various compnents that make up the system:
1. **A Speeduino board** - This is the muscle of the Speeduino ECU and contains all the drivers and IO circuits. This maybe one of the generic boards (Such as the v0.4) or a PNP board for a specific model car
2. **An Arduino** - This is the brains of Speeduino and contains the processor, memory and storage. It plugs into the Speeduino board in order to interface with the vehicle wiring
3. **Firmware** - This is the system software that runs on the Arduino board and powers its operation. New firmware is released regularly with updates, performance improvements and bug fixes.
1. **A Speeduino board** - This is the muscle of the Speeduino ECU and contains all the drivers and IO circuits. This maybe one of the generic boards (Such as the v0.4) or a PNP board for a specific model car
2. **An Arduino** - This is the brains of Speeduino and contains the processor, memory and storage. It plugs into the Speeduino board in order to interface with the vehicle wiring
3. **Firmware** - This is the system software that runs on the Arduino board and powers its operation. New firmware is released regularly with updates, performance improvements and bug fixes.
As a starting point, it is generally recommended to first upload the firmware to your Arduino and get it connecting to the tuning software (Tuner Studio) before moving on to hardware assembly or wiring etc. Software setup and configuration on Speeduino can be completed without the need for any additional hardware to be present (Beyond the arduino itself) and this allows exploration of the software and options available before either an outlay of significant funds or a significant investment of time.
@ -24,4 +31,4 @@ As a starting point, it is generally recommended to first upload the firmware to
As an open source project, this documentation is growing continually and this means that you may come across gaps in the documentation where little information is currently provided. Please do not hesitate to post on the forum if there is something missing that you need critically (or even not so critically).
Additionally, if you would like to contribute to the Speeduino documentation, we would love to hear from you! The preferred method to request wiki access is either via Slack (https://speeduino.com/forum/app.php/page/slack)
Additionally, if you would like to contribute to the Speeduino documentation, we would love to hear from you! The preferred method to request wiki access is either via Slack (https://speeduino.com/forum/app.php/page/slack)

View File

@ -1,25 +1,47 @@
#!/bin/bash
BUILD=build
PANDOC_PATH=/home/pi/pandoc_src/bin/
MAKEFILE=Makefile
OUTPUT_FILENAME='offline/Speeduino_manual.pdf'
METADATA=metadata.yml
METADATA='offline/metadata.yaml'
DEFINITION='offline/std_manual.md'
CHAPTERS=`cat ${DEFINITION}`
BUILD='/home/pi/book/tmp'
CHAPTERS=`tail -n +8 ${DEFINITION}`
IMAGES_FOLDER="img"
IMAGES=${IMAGES_FOLDER}/*
COVER_IMAGE=${IMAGES_FOLDER}/Speeduino\ logo.png
TEMPLATE=offline/eisvogel.tex
TEMPLATE_OPTIONS='--top-level-division=chapter --listings --toc'
#METADATA_ARG=--metadata-file=${METADATA}
ARGS="${TEMPLATE_OPTIONS} --template=${TEMPLATE} ${METADATA_ARG}"
PDF_ARGS="-V book --pdf-engine=xelatex"
TEMPLATE_OPTIONS='--listings --toc --toc-depth=2'
METADATA_ARG=--metadata-file=${METADATA}
ARGS="${TEMPLATE_OPTIONS} --template=${TEMPLATE}"
#ARGS="${TEMPLATE_OPTIONS}"
#PDF_ARGS="--pdf-engine=xelatex"
PDF_ARGS="-f markdown-markdown_in_html_blocks --pdf-engine=xelatex --metadata date=`date +%D`"
#This contains all the fonts that might be needed
#sudo apt-get install texlive-fonts-extra
mkdir -p ${BUILD}/pdf
echo pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS}
pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS}
CUR_PATH=`pwd`
mkdir -p ${BUILD}
cd ${BUILD}
git clone --depth=1 https://github.com/speeduino/wiki.js.git
cd wiki.js
#Add a blank line on the top of each file to prevent issues with pandoc concatenation
for f in ${CHAPTERS}
do
sed -s -i '1i\\' $f
done
echo ${PANDOC_PATH}pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS}
${PANDOC_PATH}pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS}
#Copy the produced PDF back to the main directory
cp ${OUTPUT_FILENAME} ${CUR_PATH}/offline
# @echo "$@ was built"
#Cleanup
cd ${BUILD}/..
#rm -rf ./tmp
cd ${CUR_PATH}

70
offline/background1.pdf Normal file
View File

@ -0,0 +1,70 @@
%PDF-1.5
%µí®û
3 0 obj
<< /Length 4 0 R
/Filter /FlateDecode
>>
stream
xœeŽAÂ@E÷s
. Ã#¸°í¢.¬÷OœÑ¤©iØ<69>Ïÿïó* ®wù]B#XŠ;\~‚Ãö€©JMá„îbš}‰j: {¦1<wEÃ1½Á
´_WXÊ91:"¤ZíVªFN ˜ªÝ¤,È\¨ìÑû}šÙ›}<7D><06>=°ËÀ¤HœÝz„œ+rNLåV>±mB
endstream
endobj
4 0 obj
162
endobj
2 0 obj
<<
/ExtGState <<
/a0 << /CA 1 /ca 1 >>
>>
>>
endobj
5 0 obj
<< /Type /Page
/Parent 1 0 R
/MediaBox [ 0 0 595.275574 841.889771 ]
/Contents 3 0 R
/Group <<
/Type /Group
/S /Transparency
/I true
/CS /DeviceRGB
>>
/Resources 2 0 R
>>
endobj
1 0 obj
<< /Type /Pages
/Kids [ 5 0 R ]
/Count 1
>>
endobj
6 0 obj
<< /Creator (cairo 1.14.8 (http://cairographics.org))
/Producer (cairo 1.14.8 (http://cairographics.org))
>>
endobj
7 0 obj
<< /Type /Catalog
/Pages 1 0 R
>>
endobj
xref
0 8
0000000000 65535 f
0000000576 00000 n
0000000276 00000 n
0000000015 00000 n
0000000254 00000 n
0000000348 00000 n
0000000641 00000 n
0000000768 00000 n
trailer
<< /Size 8
/Root 7 0 R
/Info 6 0 R
>>
startxref
820
%%EOF

View File

@ -871,6 +871,12 @@ $if(titlepage-background)$
\setstretch{2}
\vfill
\vskip -8em
$if(logo)$
\noindent
\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
$endif$
\vskip 2em
\noindent {\huge \textbf{\textsf{$title$}}}
$if(subtitle)$
\vskip 1em
@ -892,14 +898,13 @@ $else$
\vskip 2em
\noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}}
\vfill
$if(logo)$
\noindent
\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
$endif$
}
$endif$
$if(logo)$
\noindent
\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
$endif$
$if(titlepage-background)$
$else$
\textsf{$date$}

BIN
offline/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

View File

@ -2,11 +2,11 @@
title: std_manual
description:
published: true
date: 2020-01-16T06:28:52.838Z
date: 2020-01-17T01:03:46.600Z
tags:
---
./Overview.md
./home.md
./Installing_Firmware.md
./Connecting_to_TunerStudio.md
./Configuring_TunerStudio.md

51
offline/wiki.js.css Normal file
View File

@ -0,0 +1,51 @@
.v-content .contents blockquote.is-info {
background-color:#e3f2fd;
border-color:#64b5f6;
color:#0d47a1
}
.v-content .contents blockquote.is-info code {
background-color:#e3f2fd;
color:#1565c0
}
.theme--dark .v-content .contents blockquote.is-info {
background-color:#0d47a1;
color:#e3f2fd;
border-color:#2196f3
}
.is-warning {
background-color:#fff3e0;
border-color:#ffb74d;
color:#b33f00
}
.v-content .contents blockquote.is-warning code {
background-color:#fff3e0;
color:#ef6c00
}
.v-content .contents blockquote.is-danger {
background-color:#ffebee;
border-color:#e57373;
color:#b71c1c
}
.v-content .contents blockquote.is-danger code {
background-color:#ffebee;
color:#c62828
}
.theme--dark .v-content .contents blockquote.is-danger {
background-color:#b71c1c;
color:#ffcdd2;
border-color:#f44336
}
.v-content .contents blockquote.is-success {
background-color:#e8f5e9;
border-color:#81c784;
color:#1b5e20
}
.v-content .contents blockquote.is-success code {
background-color:#e8f5e9;
color:#2e7d32
}
.theme--dark .v-content .contents blockquote.is-success {
background-color:#1b5e20;
color:#e8f5e9;
border-color:#4caf50
}

View File

@ -2,11 +2,11 @@
title: Ignition Wiring
description:
published: true
date: 2020-01-16T11:21:51.013Z
date: 2020-01-16T12:42:32.994Z
tags: ignition, wiring
---
# Header
# Ignition Wiring
## Overview
Ignition output configuration can be one of the most difficult areas of ECU wiring and one that often causes the most confusion. A large part of this complexity comes from the huge number of different ignition types that are available, with there being significant changes in the hardware used in the late 80s and throughout the 90s compared to newer designs.
@ -31,8 +31,8 @@ There are many dual pole, wasted spark coil packs available both with and withou
### Coil on Plug
As an alternative to a dual pole wasted spark coil, individual coil on plug units can be used in a wasted spark configuration.
![ign_4Cyl_COP_wasted-spark.png](/img/wiring/ign_4Cyl_COP_wasted-COP.png){.align-center width=500}
![ign_4Cyl_COP_wasted-spark.png](/img/wiring/ign_4Cyl_COP_wasted-COP.png){.align-center width=500}
> Note: The above examples use 'smart' coils with built in igniters. Do NOT attach dumb COPs (2 pins) without adding an igniter
{.is-warning}

View File

@ -2,25 +2,20 @@
title: Injector wiring
description: Wiring description and diagrams for fuel injectors
published: true
date: 2020-01-16T07:24:23.488Z
date: 2020-01-16T12:41:06.829Z
tags: wiring
---
Introduction
------------
# Injector wiring
## Overview
Speeduino contains 4 injector control circuits and is capable of supporting up to 8 injectors (and cylinders) with these.
Supported Injectors
-------------------
## Supported Injectors
Speeduino supports High-Z (aka 'high-impedance' or 'saturated') injectors natively. Low-Z injectors are supported with the addition of resistors wired in series with the signal wires. High-Z injectors are typically those with a resistance greater than 8 Ohms.
If "Low-Z" ("peak and hold" or PWM-controlled) injectors that are lower impedance are used, the wiring will require series resistors on each injector 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](http://efistuff.orgfree.com/InjectorResistorCalculator.html).
Layout
------
## Layouts
There are a number of ways that the injectors can be wired depending on your configuration and preference.
### 1, 2 and 3 injectors
@ -53,13 +48,10 @@ This method is only available on 4 cylinder / 4 injector applications and allows
For setups with more than 4 injectors, the number of outputs used will be equal to half the number of injectors.
**Examples:**
**6 Cylinder**
#### 6 Cylinder
![inj_6Cyl_semi-seq.png](/img/wiring/inj_6Cyl_semi-seq.png){.align-center width=75%}
**8 Cylinder**
#### 8 Cylinder
![inj_8Cyl_semi-seq.png](/img/wiring/inj_8Cyl_semi-seq.png){.align-center width=75%}
Inline with the above, this configuration requires each injector output to be connected to 2 injectors.

View File

@ -2,18 +2,12 @@
title: System Wiring Diagram
description: A high level master system wiring diagram
published: true
date: 2020-01-16T06:11:54.153Z
date: 2020-01-16T12:45:31.555Z
tags:
---
# High level wiring guide
Speeduino can be configured in many ways depending on the engine, sensors, ignition and fuel hardware being used. For this reason it is impossible to provide 1 single diagram that will cover all scenarios, however the below is provided as a high level guide that can be used as a starting point.
![wiring_overview.png](/img/wiring/wiring_overview.png){.align-center}
# Function specific diagrams
More detailed wiring guides for specific areas can be found below
- [Injector Wiring](/wiring/Injector_wiring)
- [Ignition Wiring](/wiring/Ignition_wiring)
- [Sensor Wiring](/wiring/Sensor_wiring)
![wiring_overview.png](/img/wiring/wiring_overview.png){.align-center}