Installers V2.000
Installers V2.000
Installers V2.000
Web: www.adaptronic.com.au
Technical Enquiries: [email protected]
List of Figures
Figure 1: Wiring Diagram ..................................................................................... 8
Figure 2: Connectors on the Adaptronic ECU........................................................ 9
Figure 3: Reluctor Waveform (correct)................................................................ 11
Figure 4: Reluctor Waveform (inverted, incorrect) .............................................. 12
Figure 5: Stripped back sheath and cut braid ....................................................... 15
Figure 6: Stripped back sheath and insulated braid .............................................. 15
Figure 7: Stripped back sheath and twisted braid ................................................. 16
Figure 8: Heatshrink over braid........................................................................... 16
Figure 9: Heatshrink over join............................................................................. 16
Figure 10: Ignition Configuration Dialogue Box ............................................... 18
Figure 11: Configuration for checking the timing during cranking..................... 21
Figure 12: Timing Lock option box................................................................... 23
Figure 13: Stylised Nissan cam angle sensor waveform..................................... 24
Figure 14: Trigger Example for Nissan SR20DET engine ................................. 25
Figure 15: Nissan VQ30 Trigger Waveforms .................................................... 25
Figure 16: Triggering Settings for Nissan VQ30................................................ 26
Figure 17: Trigger Example for Mazda B5 DOHC engine ................................. 27
Figure 18: Trigger Example for Honda CBR600 Crank angle Sensor ................ 28
Figure 19: Trigger Example for Suzuki Swift GTi Sensor ................................. 29
Figure 20: MAP sensor calibration value in kPa ................................................ 30
Figure 21: Load Sensing Options ...................................................................... 33
Figure 22: Location TPS calibration.................................................................. 34
Figure 23: Water Injection Auxiliary Output Example....................................... 36
Figure 24: Shift Light Auxiliary Output Example.............................................. 37
Figure 25: Stall Saver Auxiliary Output Example.............................................. 38
Figure 26: Road Speed calibration panel ........................................................... 39
Figure 27: Rapid Learn Settings and Closed Loop Fuel Settings........................ 46
Figure 28: ECU Data Window .......................................................................... 55
Figure 29: Response of Knock Filter ................................................................. 67
Figure 30: Series Mode turbo timer configuration ............................................. 85
Figure 31: Ignition Waveforms in Different Modes ........................................... 95
Figure 32: Injector Firing Pattern Example........................................................ 95
This document, and any and all associated publications and designs are copyright
Adaptronic, 2003-2005. No reproduction or distribution whatsoever is permitted,
whether for profit or not for profit, except where prior written permission has been
granted by an Adaptronic representative with authority to do so.
WARNING
Furthermore, if the product is to be put on a controlled vehicle (eg, a road going car),
you should check with local authorities about the legal implications of this. For
example you may need to get an emissions test done after tuning the engine, and/or an
engineering certificate/report.
This document assumes that the reader has a basic understanding of:
There are six plugs on the Adaptronic, the first four of which must be wired in to the
vehicle harness. These are shown in Figure 2, and are as follows:
Each vehicle will be different, but what follows is a set of general guidelines that will
help with most vehicles and installations.
• Work out which loom you need to order in advance. There are two versions of
the loom available; a 0.5m long version and a 2m long version. The 0.5m
version is intended for installers connecting to the existing vehicle harness;
whereas the 2m version is intended for installers running a new harness. If in
doubt, it would be advisable to order the 2m version. The difference in price is
not four times because most of the cost is in the termination of the wires in the
plugs rather than the cable itself.
• If you are wiring into an existing harness, do your best to obtain a wiring
diagram of the existing wiring. This may include obtaining the wiring diagram
of the vehicle if it's a factory loom, or in the worst case, disconnecting the
wires and following them to find out which ones connect to which sensors and
actuators.
• Whether you intend running a new loom or adding to the existing loom, it will
help to draw a diagram of what you intend to do. For example, if you are
connecting to an existing harness, it may be sufficient to take the example
wiring diagram in Figure 1 and mark on it the factory loom colours. If you are
running your own loom, you may want to write down functions for the
auxiliary outputs.
• Do NOT connect one side of the thermistor to ground at the engine block - the
only connection to ground must be through the ECU. If poor grounding
conventions are followed, large amounts of noise will result, leading to
fluctuating temperature readings.
• It is most important to connect the water temperature sensor. Without it, there
will be no temperature-based enrichment, and the engine will be very difficult
to start when cold, or run very rich when hot.
• The air temperature sensor can be left disconnected if there is no sensor
available. It will however improve general drivability (idle quality, fuel
mixture consistency etc) if installed.
• The aux temperature sensor is not used by the ECU, except to send data to the
PC, and operate any auxiliary outputs configured to operate based on that
input.
When using a standard Delco MAP sensor, the two outside terminals are the ground
and +5V connections and the centre is the signal output. Again, it is convention to
wire the unit so that the maximum pressure (atmospheric on a naturally aspirated car)
gives the highest voltage, and that vacuum delivers the lowest voltage.
If you have a MAP sensor of unknown pin configuration, remember that there are
only 6 possible permutations of the pins. To simplify the task, it may help to measure
the resistance between all the pairs of pins. The lowest reading (normally around
1.5k ) will likely be the +5V and ground connections. If the resistance reads the
same with either polarity of the multimeter, you can probably pick a polarity at
random and wire it up using alligator leads, and verify the voltage at the remaining
pin, under atmospheric and vacuum. On the Delco/GM sensors, the A pin is the
ground, B is the signal and C is the supply (as shown on the wiring diagram).
Hall Effect and optical sensors give a digital pulse to ground. The following tips may
be useful:
• For optical and Hall Effect sensors, the sensor will usually require a supply
voltage. This may be anywhere between 5V and 12V, depending on the
particular sensor. There is no hard and fast rule for determining what it should
be for any given sensor; except by consulting the documentation for the donor
vehicle.
• The output will usually be an open collector (that is, an output that shorts to
ground), which is suitable for the Adaptronic. The ECU has an internal pull-up
resistor. Simply connect each output from the sensor to one of the three inputs
(red, black, yellow) on the digital crank angle sensor input cable (the one with
four cores, and a shield). If the sensor is isolated from the engine block, it may
Reluctor sensors generate a voltage spike. The voltage across the reluctor coil
normally sits a zero Volts. As the tooth approaches the pickup, the voltage increases.
The peak voltage will be somewhere between 0.5V and 50V, depending on engine
speed and the type of reluctor. When the tooth passes the middle of the pickup, the
voltage suddenly swings negative. As the tooth recedes from the pickup, the voltage
increases back to zero. See Figure 3.
• For reluctor sensors, the same cable (black shielded) is used. The white wire in
this cable must connect to the common ground of the reluctor, and the other
three internal wires (red, black and yellow) should connect to the positive side
of the reluctor coils.
• For reluctor type systems, option 2 should be used. That is, pins 11, 3 and 10
in the ECU connector.
• In many cases (eg B5 DOHC, 4AGE, 4EFTE), the reluctor will have three
pickups, whose grounds are already connected together. Therefore, the sensor
has a 4-wire connector. To determine which wire is which, one can use a
multimeter set to the resistance range (2k ). The resistance between any two
coil positive pins will be double that between a coil positive and the common
ground. For example if the following measurements are made:
o pin 1 to pin 2 is 170
o pin 1 to pin 3 is 170
o pin 1 to pin 4 is 170
o pin 2 to pin 3 is 340
o pin 2 to pin 4 is 340
o pin 3 to pin 4 is 340
then it would appear that pin 1 is the common ground, and pins 2, 3 and 4 are
the outputs.
• Make sure that the polarity is as shown in Figure 3. If the waveform is
inverted, the ECU will not trigger reliably from the pulse. If the reluctor has
all the wires coming out of it (eg 3 coils would require 6 wires), then it should
be possible to reconnect the common to the other side of the coils. Most
reluctors are not of this type, however Honda use inverted outputs (as shown
in Figure 4).
• These inputs have a passive pull-up, and therefore a sensor that shorts to
ground (for example, Hall Effect, optical or reed switch) will be suitable.
• These inputs have an internal pull-up, so are "high" if left not connected. In
the settings, you can select whether the inputs are "active low" (default - used
when an input is shorted to ground) or "active high" (used for an input that is
normally shorted to ground, and is raised when it is active).
• For example, to connect a clutch switch that shorts to ground, merely connect
the switch contact to the digital input.
• To connect a headlight (to increase the idle speed), find the side of the switch
that goes to +12V when the headlights are on, and wire this into the ECU
input. NOTE: you must also configure the settings for this input to be
"active high".
There are five ground wires; three on the 8-way plug and two on the 6-way plug.
For example:
Total 6.2A
• In this case, one ground wire would carry the current adequately. However, it
is good practice to run a few, as this will reduce the voltage drop, and will
allow for future expansion (eg, if one of the outputs changed to a 3A water
injection pump).
The outputs are current regulated, and the current is controlled by a setting. If you
intend connecting two injectors to a single output, you have two options:
The four wires, labelled Inj 1, Inj 2, Inj 3 and Inj 4, refer to the firing sequence, not
the cylinder numbers. Therefore, if your engine's firing order is 1-3-4-2, you will need
to connect the injectors as follows:
• The high current outputs have a maximum load of 7A resistive (simple loads
like globes) or 3A inductive (anything with coils in it, eg motors, solenoids).
• They may be connected to outputs that are switched with ignition or always
powered up.
• The first 3 auxiliary outputs have a PWM capability, and so should be left for
functions that may require variable control (eg idle solenoids, water injection
pumps etc).
• These are open-drain outputs, so they pull to ground when they are enabled.
The conventional method of connection would be to connect the negative side
of the solenoid to the ECU, and the positive side of the solenoid to ignition
positive (+12V when ignition is on).
• The low current outputs have a maximum current of 200mA, and so are
suitable for driving light loads such as relay coils and LED indicators. None
has PWM capability.
• They may be connected to outputs that are switched with ignition or always
powered up.
• These are open-collector outputs, so they also pull to ground when the output
is enabled. They are back-EMF suppressed, so are suitable for driving
inductive loads such as relays.
• The conventional method of wiring a relay output is to connect one side of the
coil to the ignition positive line, and the other side to the auxiliary output of
the ECU.
• Strip back the sheath on the EGO sensor cable from the ECU, and cut off the
braid, leaving just the centre conductor (see Figure 5).
• Insulate any loose strands of the braid, by shrinking a piece of heat-shrink over
the end of the sheath (see Figure 6)
• Connect the central conductor to the EGO sensor, either by crimping a spade
connector on the end or whatever is suitable for your particular sensor.
Figure 5: Stripped back sheath and Figure 6: Stripped back sheath and
cut braid insulated braid
• Perform the same steps as above to prepare the end of the EGO sensor cable.
• Find out which wires are the heater wires on the sensor. This can be performed
by measuring the resistance between the pins on the plug. Usually, the heater
resistance will be around 6 , and the sensor will read open circuit when cold.
• Connect the EGO sensor wire from the ECU to the pin that measures open
circuit on the sensor.
• Confirm that both the other two pins are isolated from the body of the sensor
(using the resistance range of a multimeter). If so, connect a 12V ignition line
and Ground to the other two pins. If not, find which of the two pins is
connected to the sensor body (0 ), and connect this pin to Ground and the
other pin to ignition switched 12V.
• This assumes the standard colour codes - two white wires, one grey wire and
one black wire.
• First determine whether or not the sensor output is isolated from ground.
Measure the resistance between the grey wire and the sensor body. If it is open
circuit, you have a proper 4-wire sensor. If it is short circuit, your sensor is a
• Into the normal oxygen sensor input. The voltage at this input must not exceed
3V, so is unsuitable for most types of linearised oxygen sensors.
• Into the "External" analogue input (grey wire). This input is 5V tolerant and is
suitable for most linearised oxygen sensors.
The secondary serial port is the DE9 male connector, next to the serial port that
connects to the PC. The following serial protocols are supported through this serial
port:
Once the correct mode is selected, the ECU will use the serial input from the
wideband sensor to override any value interpreted from the analogue input. This
allows a tuner to install an ECU with a normal narrowband oxygen sensor, but
connect a wideband sensor for tuning purposes.
The serial connection is preferable to an analogue connection because the ECU can
determine if the sensor output is valid by other information in the serial packet (for
example, sensor temperature), and default to the analogue input (or indicate an invalid
reading) if no information is available. With an analogue input, there is not usually a
way for the ECU to determine if the sensor is giving valid information or not.
There are off-the-shelf devices available which contain an ELM327 chip, which is
basically an ‘OBD to RS232 Interpreter’. This device is designed to allow
communications between an OBD connector and an RS232 connection.
If one of these devices is connected to the secondary serial port of the ECU, and set to
‘ELM327 @ 38400 baud’, the ECU will periodically send a command every 11
seconds to clear any fault codes stored in the factory ECU before they can cause the
fault light to illuminate on the dashboard. This is useful for ‘piggyback’ installations
whereby the factory ECU needs to be retained to control certain things on the vehicle,
such as an automatic transmission.
• Verify that WARI can see the ECU (a message such as "ECU connected
Adaptronic V1" should appear, rather than "No ECU connected")
• Make sure the settings are all ready from the ECU (when first connected, a
message such as "Reading Settings 0%" should appear, and when this reaches
100% and the message changes to "ECU connected", the settings have all been
read).
Once the ECU is online, you should then begin by configuring the basic setup.
There are three ignition outputs on the e420c. These should be set to be fired in one of
five different ways:
• Simultaneously, as on an engine with a distributor. The third ignition output
can then be configured as a tachometer function.
• Alternately, as on a 4 cylinder, wasted spark engine or a dual-distributor
engine (eg Toyota 1UZFE). The third ignition output can then be configured
as a tachometer function.
• In a cycle of three, as in a direct fire ignition on a three cylinder engine, or
wasted spark on a six cylinder engine. In this mode, the tachometer output, if
required, must be sourced from an auxiliary output, and the ign 3 output
function set to ign 3.
• Leading/Trailing, as in on a two rotor Wankel engine with an addressing mode
igniter. Currently in this mode the ECU can fire the leading/trailing spark
plugs (ign 1/ign 2) via addressing (ign 3 set to coil address) with the factory
addressing igniters or with a distributor.
• In a cycle of four, as in direct fire ignition on a four cylinder, or wasted spark
on an eight cylinder engine, (ign 3 set to ign 3) and aux 1 set to ign 4.
• Wasted Leading 2 rotor, which allows Ign 1 to fire the leading plugs of a two-
rotor Wankel engine in wasted spark mode, while Ign 2 and Ign 3 fire the
trailing plugs in direct fire mode.
• Direct Fire 2 rotor, where Ign 1 and Ign 4 are the front and rear leading plugs,
and Ign 2 and Ign 3 are the front and rear trailing plugs.
Ignition Output 1 will fire first after the reset pulse from the crank/cam trigger.
Each output will turn on a fixed amount of time (the "dwell time", configurable in the
Trigger/Output window) before the spark is to fire. The output will then turn off at the
angle at which the output is supposed to fire, discharging the coil and generating the
spark.
CAUTION: Many igniters are not very intelligent. If you apply a constant "on"
signal to them, the output transistor will often stay on, which can cause damage
to the igniter or the ignition coil. A warning message will be brought up if the
ECU’s current state would cause the ECU to apply a constant “on”.
The dwell time is the time for which the coil is charged before firing. Typically values
between 3000µs (3ms) and 3500µs (3.5ms) are used successfully. If the dwell time is
set to be longer than the minimum period (eg 5ms is one period at 6000 RPM), the
dwell will be shortened to the next available trigger pulse once the RPM becomes too
high. Some igniters (including all capacitor discharge ignition (CDI) systems)
generate their own dwell time, and so the dwell time asserted by the ECU is
unimportant.
In the case of alternating ignition outputs, the dwell time allowable is up to double the
period, as each output fires only once every two periods. This is one reason why a
wasted spark system (or coil-on-plug) is used on high revving engines rather than a
conventional single coil/distributor system. If you have not already set the dwell time
you should do so now.
There are three input channels on the ECU. Each of these can be configured as a
reluctor or a digital input. For digital inputs, each channel can be configured to fire on
the rising or falling edge. For reluctor inputs, they must be set to falling edge. The
Adaptronic can be programmed to detect missing teeth, and can also be configured as
a crankshaft or camshaft sensor (360° period or 720° period). Furthermore, the timing
mark angles from the sensor can be selected.
1. One sensor channel that gives a timing mark, for example, a multitooth wheel;
2. Another channel (or two) that give synchronisation information, for example,
a single pulse every 720°;
3. If the timing mark is too inaccurate, sometimes you may have another pulse
that occurs at the correct ignition timing during cranking.
1. Verify that the ECU is detecting the pulses from the sensor;
2. Find out at what angles the pulses occur;
3. Configure the ECU to suit.
Because the ECU can accept a channel specifically to fire the ignition during cranking
(by ticking ‘Ign Crank’), one can connect a timing light to the ignition output from the
coil, and select each input (which has been connected, see Figure 13) in turn, crank
the engine and determine the angle at which the pulse occurs. For each connected
channel in turn:
Some hints:
• Usually the crank pulley is marked with timing marks only from 20° BTDC to
TDC. However, often pulses occurring outside this range are subdivisions of
one revolution. For example, if there are 12 pulses during cranking, they
appear to be evenly spaced, and one of the pulses is at 10° BTDC, you can be
pretty sure that the others are at 160°, 130°, 100°, 70° and 40° (and these plus
180°).
• When you crank an engine with the spark plugs installed, the ring-gear makes
a sound like "nyeh-nyeh-nyeh-nyeh-nyeh-nyeh". Each "nyeh" is a single
cylinder, which corresponds to 180° on a 4-cylinder 4-stroke engine. The
significance of this is that if you have a sensor that only triggers once every 4
"nyeh"s, this occurs every 2 revolutions, or 720°. This will likely be a cylinder
reset marker.
NOTE: this requires that the ignition output has been set up and tested already.
Also recommended is that in a distributor system, the coil be connected directly
to a spark plug to avoid the angles where the distributor does not make a
connection. If you do not get regular pulses, you should check your wiring. If you
are using a reluctor input, you can look at the conditioned signals on the digital
CAS input wires using an oscilloscope; they should be high except for the
duration of the negative slope in the reluctor waveform, at which time the
appropriate channel should become low.
Once you have documented what the sensor outputs do, you can configure the ECU to
suit this sensor.
Each "nyeh" (the sound made during cranking) is called a "period". This period refers
to 180° on a 4-cylinder 4-stroke engine, 120° on a 6-cylinder and 90° on an 8-
cylinder. All the timing for the Adaptronic is calculated on a "per period" basis.
This is a throwback to the days of distributors, where a new ignition pattern would
occur every period. Each period, a new ignition pulse is generated, and a new
injection pulse is generated. The RPM is also measured between periods.
• The most highly accurate sensor (that is, the one with the most pulses per
revolution) should be used to measure the ignition timing and to fire the
injector. (Tick Inj and Ign) e.g. a multi tooth wheel (If it is has no missing
This is required because the timing sensor may generate several pulses per period, and
therefore the ECU needs a means of determining which pulse corresponds to which
angle measurement.
Unless a Nissan style optical sensor is used, the Trail and Divide check-boxes should
be deselected on all inputs. (refer to 2.0.2 if you have a Nissan sensor)
The ‘minimum pulses before generating any outputs’ should be set such that ECU
will know exactly where the engine is up to before any outputs occur.
Batch fire during cranking is recommended for easier starting. Some applications may
require this to be disabled, for example if it's necessary for precise fuel metering e.g.
when very large injectors are used.
The input divisor must be used if the trigger sensor generates more than 30 pulses per
period (there are a maximum of 30 entries in the timing mark table). The "Input
Divisor" field determines the division ratio. This is explained in greater detail in
section 2.0.2, Nissan Sensor.
The cylinder 1 pulses and cylinder n/2 pulses allow the ECU to detect cylinder 1 and
the opposing cylinder using the "Trail" option. The number of ignition trigger pulses
between the period reset and the trail event are counted for the purposes of generating
a "cam" or "crank" reset condition. Again, see 2.0.2 for more information.
The next step is to work out the angles of the trigger pulses, in the order that they are
received by the ECU, starting with the first one after the reset pulse (or the gap in the
teeth). These should then be calculated in terms of the angle BTDC of that period.
These should then be entered in the table, in order, with the value after the last pulse
being -1. The -1 is to indicate the end of the table, so any entry after the first -1
will be ignored.
If there are inputs that provide only synchronisation information, they should have all
boxes deselected, except for "Reset". If the setting is "Cam (720°)", then the ECU will
be reset to cylinder 1, and also reset to the start of the timing table, when the pulse
occurs. If the setting is "Crank (360°)", then the ECU will be reset to cylinder 1 or the
third cylinder in the cycle on a 4-cylinder (usually cylinder 4), or cylinder 1 or the
fourth cylinder in the cycle on a 6-cylinder (usually cylinder 6), or cylinder 1 or the
fifth cylinder in the cycle on an 8-cylinder. This is because a sensor on a crankshaft
Once you have set up the triggering, you should make sure all outputs are
disconnected, crank the engine, and verify that the RPM indicator in the gauge
window reads a steady value (usually around 200 - 300 RPM during cranking). If you
have set up the ignition outputs (see the appropriate section), you should set the
"Crank timing" (under ‘corrections’ tab) to a reasonable value (eg 10°), crank the
engine and with a timing light, verify that the ignition pulses occur at the appropriate
angle.
A diagnosis mode allows the ECU to fix the ignition timing at times other than
cranking. By selecting the "Timing lock on" box, and setting an angle (such as 15
degrees), the ECU will assert that ignition timing to the engine (except during
cranking). This will allow you to verify triggering at idle, or over a small engine
speed range. It has been suggested that engine damage can occur if you rev an engine
with no advance.
If you alter the Trigger offset, the angles in the timing mark table will all be adjusted
accordingly.
If you wish to use VVT, set the cam trigger/s as VVT1 and VVT2. For further
information, see the VVT section in the ECU Reference section.
In addition to the very high pulse rate from the Nissan sensor output, a separate output
gives cylinder phasing and reset information. The rising edge of the reset pulse occurs
at a constant angle before top dead centre (for example 70 degrees BTDC). The
The following is a stylised view of the waveforms from the 4-cylinder Nissan sensor,
as found on E15ET and SR20DET engines:
16 12 8 4
pulses pulses pulses pulses
Connect the 2 degree output from the sensor into a digital trigger input (eg Trigger 1)
Connect the variable width (cylinder phasing) signal into the two remaining digital
inputs (eg, Triggers 2 and 3)
On Trigger 1, select "Divide", "Ign", "Inj" and "Rising Edge" only. This allows the
ECU to use the main timer output from the sensor (ie, every 2 degrees) to do the
ignition timing and injection.
Set the "Input Divisor" to 15.
On Trigger 2, select "Rising Edge", "Reset", "Period (Cylinder)" only. This will cause
the ECU to go to the start of the angle table when the rising edge of the input,
which happens at a consistent angle.
On Trigger 3, select "Falling Edge", "Cam (720°)" and "Trail" only. This will cause
the ECU to monitor the width of the pulse between rising and falling edges and set
the cylinder count accordingly.
Set "Cylinder 1 pulses" to 16 and "Cylinder n/2 pulses" to 8.
The figure below shows the triggering setup as tested on an SR20DET sensor:
The 3 evenly spaced teeth on the crank are at 15 degrees BTDC on each stroke.
On the cam, there is a reluctor sensor with 6 'groups' of teeth. The first tooth in each
group is at TDC for a particular cylinder. In each group of teeth there are 1, 4, 5, 2, 3
and 6 teeth. The crank pulses occur in the gaps between each group of teeth on the
cam.
The Cam trigger (eg. Trigger 2) should have the following options selected:
-Falling edge
-Trail (to allow the cam pulses to be counted)
The ‘special mode’ should be set to ‘Nissan VQ30’, so that the cam sensor can be
used to determine cylinder phasing info by counting the number of cam pulses
between each crank pulse.
There should be a single entry at 15 degrees BTDC in the timing table, which
corresponds to the angle of the crank pulse that occurs each period.
For the Nissan VQ30 engine in particular, the injectors and ignition outputs should be
wired as follows:
Because the sync triggers occur at 20° BTDC, the first timing pulse after this occurs
at 10° BTDC. The next one occurs 30° later, which is at 20° ATDC. 20° ATDC is
160° BTDC of the next period (on a 4-cylinder, the period is 180°). The next is 130°,
and so on.
This means that the angles seen by the ECU, in order, starting with the first one after
the reset pulse, are 10, 160, 130, 100, 70, 40.
The third channel, which triggers when cylinder 4 is firing, will trigger when cylinder
1 is about to perform its induction stroke. Therefore, it will reset the cylinder count
back to 1, so that the next injector fired is 1, during its induction stroke. This will be
done by setting this channel to "Reset", "Cam (720°)".
The second channel, which generates a pulse when cylinder 1 is firing, will be used to
reset the cylinder count to 3. That is, it will jump to the third cylinder in the sequence
(which is cylinder number four on the engine, but will correspond to output number
three on the ECU). This will be done by setting the second channel to "Reset", "Crank
(360°)". If the third channel is not available (eg, during cranking, the engine has not
reached that position yet), it may reset the cylinder count to 1, however this will only
affect injection timing during cranking if "batch on crank" is not enabled, and leave
ignition timing unaffected.
The advantage of using this channel to reset to cylinder 1 or 3 is that during cranking,
the ECU needs only two periods to be guaranteed a synchronisation pulse. Only after
a synchronisation pulse has been received can the ECU generate accurate timing
pulses. Therefore, only 3 period pulses are required before generating outputs (5
would be required without this channel). Because the timing information is relatively
accurate and there is no separate output for timing during cranking, no channels
should have the "Ign crank" selected.
The angles as seen by the ECU, starting with the first tooth after the gap, are 60, 30, 0,
150, 120, 90. Selecting a gap size of two teeth provides a good compromise between
false detection of the gap and detecting a gap when it's not there, in the face of
changing engine speeds. Only a single channel is needed. Two periods are required
before generating any pulses, because the gap will occur within the first 360° of
cranking. The configuration is shown below:
Figure 18: Trigger Example for Honda CBR600 Crank angle Sensor
The gap between the 6° pulse and the following 91° pulse will be 186-91 = 95°. This
is larger than the other two gaps (30° and 55°), and hence the ECU will detect that as
a missing tooth. The first entry in the angle table should be the first tooth after the
tooth gap, which in this case is 91°.
The following shows the triggering configuration for the G13B engine:
NOTE: on the ‘Basic Setup’ tab, you can click ‘Change Engine’ and select a
particular engine, which will automatically fill in the correct triggering settings.
The injector output pattern can be changed. The pattern is flexible enough to cover a
myriad of different configurations. The table below shows which injectors are fired on
the different periods of the engine cycle (2 revolutions). The table will be truncated
depending on the number of cylinders selected.
The current for the injectors can be set. This would typically be set at 0.9A, although
higher currents can be used if more injectors are installed (for example, 1.9A if 2
injectors are wired to a single output). The outputs can be set to peak-hold type or
constant current. Peak-hold is preferred, as it decreases the injector dead time. Some
injectors (the standard Suzuki Swift GTi come to mind) require a higher current
(1.5A) to open properly.
Lastly, the ECU only "knows" when it is cranking by the engine speed. Once the
engine has reached a certain speed, the ECU should switch over to normal operation.
However when it goes below a certain speed, the ECU should switch back into
cranking mode to ensure that it recovers. These two RPM points should be set in the
Cranking RPM section on the basic setup tab.
Some typical values for standard MAP sensors are given below:
If you have a table or graph that gives the resistance values of the sensor at different
temperatures, the ADC value can be calculated from this resistance. The formula is
given below (for Resistance in Ohms):
Mode Application
1 = MAP Single throttle, plenum engines (ie, most street engines) - tuned by
2 = unused MAP sensor. Appropriate for 98% of street engines.
1 = MAP As above, but when two maps are required for alternate tunes
2 = MAP (digital input can select the alternate map)
Digital input
to select #2
1 = unused Tuning by TPS only. Used by some tuners on large cam engines.
2 = TPS Must only be used on NA engines. Generally gives poor idle
mixture control so really only suited to race engines.
1 = TPS As above, but when two maps are required for alternate tunes
2 = TPS (digital input can select the alternate map)
Digital input
to select #2
1 = MAP Tune by combination MAP and TPS. Use on multi-throttle body
2 = TPS engines (with a manifold to collect the port pressures for the MAP
MAP x TPS sensor) or engines with no plenum. When tuned correctly gives
excellent mixture consistency on individual throttle body engines.
For more information on the specific functions of each of the settings refer to the
section “Tuning modes”.
The maximum MAP and map RPM step size should also be set here to determine the
ranges for tuning, keeping in mind that the maximum RPM is the map RPM step size
multiplied by 31. The table below shows the mapping of RPM step to maximum
RPM:
RPM Step Max RPM
500 15500
300 9300
250 7750
200 6200
2.2. Corrections
The Corrections tabsheet controls all of the fuel and ignition control functions of the
ECU. These are all described in the behavioural section.
Any output can be set to either of these. If the output is set to a specific behaviour,
some specific behaviour, as configured in the Special Functions window (F11) will be
effected.
• PWM; and
• Digital.
Below 100kPa, the output will be off all the time, and above 150kPa, the output will
be on all the time. The PWM frequency will be 50Hz, and this can be changed as
well.
In digital modes, the two numbers represent hysteresis limits. Because all signals have
noise, the threshold at which the output should come on should differ from the turn-
off threshold. If you want a shift light, for example, you may want it to come on
above 5000 RPM, but if you turn it off below 5000 RPM, this means that the light
will flicker when the engine is around 5000 RPM due to the noise. Therefore, you
would configure it to turn off at a lower value, say 4900 RPM, as shown in Figure 22:
There is another flexibility, which is the logical inversion of the output. When the
"Invert" option is selected, the output will be on when it would otherwise be off, and
vice versa. If you wanted some kind of "stall saver", which comes on below 600
RPM, and turns off above 800 RPM, you would configure it as in Figure 23 (note that
in practice you would simply set up the idle speed control correctly, however this
serves as an example):
After wiring the outputs, the first stage is to go to the Aux Out tabsheet and set all the
outputs to "None", and deselect the "Invert" and "PWM". This ensures that all the
outputs are disabled.
The next step is to turn each output on in turn, and verify that it does what it is
supposed to do (start the fuel pump, activate the thermofan, open a purge valve etc).
This can be done by selecting the "Invert" option with the type still set to "None" (this
will activate the output).
Once this is done, the outputs should be configured as desired for the particular
installation. Some tips:
• One output should be configured as a fuel pump. This will normally be one of
the last four, and fed via a relay. The timing of the fuel pump (duration at start
and duration after receiving the last crank angle pulse) can be controlled in
Special Functions.
• One output would normally be configured as a purge valve for road going
cars. The behaviour of this can be controlled in Special Functions.
• If you are attempting adaptive fuel control, it may be beneficial to connect up
two or three LEDs to some of the outputs; the learning states (RPM OK, Load
OK and Wait) can be easily seen, which can help greatly in tuning quickly.
To calibrate the proportionality and achieve the VSS reading in km/h, either drive at
50km/hr and press the learn button, or enter an arbitrary number and adjust it until the
vehicle speed indicated at the ECU corresponds to the actual vehicle speed. Note that
the input must be enabled using the tickbox for the ECU to calculate the speed:
The “Rev limit” defines the RPM that the launch control rev-limiter aims for.
When the RPM is within 200 RPM of the rev-limit, half of the cylinders will be
killed. When the RPM exceeds the rev-limit, all of the cylinders will be killed. You
can choose to cut fuel and/or ignition to kill the cylinders.
You can specify a road speed above which the launch control rev-limit will be de-
activated.
If there is no slave-speed sensor installed, you can use a master-speed sensor to
determine an approximate road speed. It is also possible to use launch control with no
vehicle speed sensors fitted, but it would only work when the car is stationary (with
the disable speed set to zero).
NOTE: To avoid conflict between the launch control and flat shift rev-limits, it is
necessary to exceed a vehicle speed of 5 before any flat shifting can occur.
The purpose of traction control is to prevent excessive wheel slip during hard
acceleration, and when exiting corners. This requires master speed and slave speed
sensors to be installed. The wheel slip is controlled via ignition retardation and/or
killing of half the cylinders, with a PID controller algorithm (refer to the idle control
section for more information on PID control).
-“Change-over road speed” - when the vehicle speed is below or above this value,
different values can be applied for the “maximum retard”, “target slip”, “effort to cut
timing by max retard” and “effort to kill half cylinders”. This allows the harshness of
the system to be increased/decreased at higher speeds.
-“Effort to cut timing by max retard” - as the PID controller effort approaches this
value, the amount of ignition retard will be linearly increased up to the “maximum
retard” value, and then it will be clipped. If, for example, the “maximum retard” was
set to 20 degrees and the “effort to cut timing by max retard” was set to 100, a PID
control effort of 50 would generate 10 degrees of ignition retard.
-“Effort to kill half cylinders” - Once the PID controller effort reaches or exceeds this
value, fuel or ignition will be cut in half of the cylinders. NOTE: if you only wanted
to use ignition retard to control the slip, you would set the “effort to kill half
cylinders” to zero. Alternatively, if you only wanted to use cylinder-killing to control
the slip, you would set the “effort to cut timing by max retard” or the “maximum
retard” to zero.
-Typically, one would specify moderate settings when below the “change-over road
speed” (to control launching wheel-slip), and then have a higher “maximum retard”
and/or lower values for “Effort to cut timing by max retard” and “Effort to kill half
cylinders” when above the change-over speed (to control wheel-slip upon exiting
corners etc). You may want to set the “Effort to kill half cylinders” to zero when
below the change-over speed, so cylinders will only be cut when slip occurs at higher
speeds.
-If the “Slip adjustment via POT on external input” tick box is enabled, the target slip
will be taken from the External input (this only applies when above the “min road
speed”), otherwise the value in “target slip” will be used. Typical target slip values
would be between 10% and 20% in normal dry conditions, or between 5% and 10% in
wet conditions, or around 5% in icy conditions.
-“Slip tolerance” - if, for example, this was set to 2%, the slip would be considered to
be on target if it was anywhere between the target and the target + 2.
-“Min engine speed” -> this RPM must be exceeded before traction control starts to
do anything.
There is an optional digital input called “traction control enable” which gets logically
OR-ed with the “enabled” tick box. If you wanted to use the input, you would
normally disable the tick box so only the input will have an effect.
If multiple inputs are configured to the same function, either input will activate the
same function. By this logic, if no inputs are configured to a particular function, the
function will not be enabled. This allows a neutral switch and a clutch switch to be
connected to separate inputs, and both can be selected as "Clutch", effecting the same
behaviour. Similarly, many electrical loads can be connected to various inputs and
configured as electrical loads.
These are configured in the "Aux In" tabsheet.
The software will give a warning if the target AFR is set beyond the range of reading
of the selected oxygen sensor. In these conditions, the ECU will automatically go to
open loop mode.
The keys used to navigate the fuel and ignition maps are shown below:
Additionally, the graphic maps have a green line that represents the current load, and
a red line that represents the current engine speed. The intersection is the current point
in the map being used by the ECU.
Clicking on cell within the text map with the mouse will also move the cursor.
Dragging out an area with the mouse will select the bounding rectangle. Right-
clicking brings a submenu, which allows the following functions:
If you are unsure of the fuel map of your engine (this will generally be the case), the
fuel map should be set up initially in a planar fashion, with the pulsewidth dependent
only on the load. That is, all RPM points at the same load point should have the same
value. As a first approximation, it is best to start off the map between 0 and 2500
RPM as a linear relation with about 75% to 100% of the maximum pulsewidth at the
maximum load (15-20ms on a fully sequential engine that revs to 6000 RPM), and
tapering down to 2-4ms at idle condition (around 30 kPa, or 0% TPS).
Once you have the engine idling, you can get a feel for the other load points within
that rev range of up to 2500 RPM, and extrapolate these to higher RPMs. This will be
explained in greater detail in Section 4.
Assuming that is OK, you can try to start the engine. Switch both fuel and ignition
into open loop mode. Crank the engine with the throttle closed. Don't be disappointed
if it doesn't start first time; they rarely do.
If the timing is a normal amount (around 10°), and the engine never fires, chances are
you have far too much fuel, far too little fuel, or something trivial wrong (such as no
fuel pressure or stuck injectors).
If the engine fires occasionally but does not start, chances are that it's a fuel mixture
problem. Check that the ECU is still in cranking mode during cranking (check the
cranking heuristic RPM limits in the Trigger / Output window), and adjust the fuel
pulse width in the cranking table in the Control window. Try adjusting it upwards at
first. With too much fuel, the engine should start if the throttle is opened.
If the engine fires properly under cranking but stalls very soon (within a second or
two) after starting, chances are it's a fuel mixture problem in the map. Given that an
engine will still run with about double the "proper" amount of fuel, but will misfire if
it's only given 70% or so of its required amount of fuel, it's often safer to increase the
mixture in the fuel map. If you have trouble reading all the gauges at once during the
time it takes to start and subsequently stall, you can hold down the space bar in the
fuel map to see which points it visits, or alternatively log the event to a file and open
the log in a spreadsheet. The most expedient method to experiment with fuel amounts
is to adjust the master trim value until you have a setting that works, and then to apply
this trim to the fuel map.
If you have trouble getting the engine to idle, it may be beneficial to adjust the throttle
bypass (or throttle stop, though this may require you to recalibrate your TPS later) so
Make sure that you either set the deceleration fuel cut to a fairly high RPM so that it
doesn't cut in, or set the minimum coolant temperature for the overrun fuel cut to a
very high value (eg 120 degrees).
The idle is often best tuned by hand to minimise the hunting at idle. Unless it is tuned
properly at idle, the engine will hunt. This is due to mixture strength changing in
different parts of the map. Some experimentation with the four points closest the idle
condition will be necessary.
Remember that you can artificially load up the engine at idle by applying electrical
loads to bring the engine directly to a map point. This will enable you to set that value
precisely, and then adjust the load value on the other side of the idle condition.
After tuning the idle condition, the next logical step is to tune the no-load condition.
Gradually open the throttle to hold the engine at 1500 RPM, and tune this point. Then
do the same for 2000 RPM and so on up the rev range.
The next step is to tune the rest of the fuel map. With the engine still running, perform
the following steps:
1. Change the temperature range for the rapid learning mode so that the current
water temperature falls within the range
2. Set the minimum RPM required for learning to 1500 RPM
3. Set an AFR proportional constant of 0 and an integral constant of 4
4. Set the maximum integral correction to 8% (if you are using a tailpipe probe, a
maximum value of 4% may reduce wild hunting at idle)
5. Set the Rapid Learning RPM tolerance to 150 and the load tolerance to about
one third of your load step difference (for example, if your map has points
every 6 kPa, set the load tolerance to 2)
6. Set the Rapid Learning initial delay to 150ms, and the interval to 150ms.
7. Set the mode to Rapid Learning.
Figure 27: Rapid Learn Settings and Closed Loop Fuel Settings
Once you have enabled Rapid Learn mode, go back to the fuel map (press F5). You
can now attempt to drive the vehicle and see how much of the map has to be changed.
These constraints are fairly intuitive to the tuner as to whether they are met or not. In
addition, there are three other constraints which are not so obvious:
1. The current RPM must be "close enough" to the RPM point in the map;
2. The load value must be "close enough" to the load point in the map;
3. If the ECU has recently moved into a new cell in the map, a certain delay must
have expired.
The RPM and load tolerances are configurable in the Control Window. Rapid Learn
and Slow Converge have separate RPM and load tolerances. The tolerances range
from 0 to half the step size (250 for RPM, and the load step depends on the maximum
MAP value).
• Larger tolerances allow the ECU to learn more quickly, simply because the
engine spends a larger proportion of the time within the tolerance regions.
• Smaller tolerances allow the ECU to learn more accurately, because the
contribution from the adjacent cells is lower when the engine is closer to the
load point.
Thus, it is best to start off rough tuning with wide tolerances (say 150 - 200 RPM, and
1
/3 of the load step), but for normal driving, a lower values are recommended.
Once the engine reaches a new map point, the ECU delays a small amount of time to
wait for initial transients to settle before applying the adaptive fuel behaviour. This
delay is configurable. Similarly, you can set the interval between fuel map
corrections.
• Shorter time delays and intervals allow for more rapid tuning, because the
ECU can learn on transient conditions such as hunting at idle.
• Longer time delays allow the Adaptronic to learn more accurately, as any
contributions from transient conditions will be minimised.
It is best to start with very small time delays such as 150ms/150ms when initially
tuning. During normal driving, once tuned, a delay of 500ms and an interval of 200ms
are recommended.
Because it is very difficult to read the gauges on the window and tell at a glance
whether or not these tolerances are met, the Adaptronic has special outputs intended
to help with tuning. If you configure an auxiliary output as a "Learning - RPM OK"
type output, it will be activated when the RPM tolerance is met. Similarly, the
"Learning - Load OK" feature can be used to tell when the load tolerance is met. Any
output configured as a "Learning - Wait" output will be on during the initial delay
period after the ECU changes map cells. Connecting some high speed lights such as
LEDs (with series resistors) to these outputs can make tuning much easier.
• High proportional constants lead to fast reactions of the ECU to AFR error.
• High proportional constants lead to large fluctuations in mixture strength.
• High integral constants lead to faster convergence of the mixture strength,
both in adaptive modes and normal closed-loop modes.
• Low integral constants lead to less overshoot in mixture strength.
• The maximum integral value, along with the integral constant and proportional
constant, controls the maximum amount of trim that can be added by the fuel
feedback mechanism.
• Proportional constant: 2
• Integral constant: 4
• Maximum integral: 4% - 8%
For normal driving, with a tuned map, the recommended values are:
• Proportional constant: 2
• Integral constant: 1
• Maximum integral: 4% - 8%
These of course may require some experimentation. For example, you may want to
reduce the constants if your EGO sensor is mounted a large distance from the exhaust
ports (as on a system with extractors, rather than a normal exhaust manifold).
NOTE: If you are having trouble getting the fuel map to converge, here are a few
tips that may help:
• Try using different gain values; if the map is changing too fast and oscillating
back and forward, try smaller gain values and/or smaller maximum integral. If
the map is not changing at all, try using higher gain values.
• Try using different tolerances. If the map is oscillating (that is, the ECU
changes the values one way, then revisits the site and changes them back
again), it may help to reduce the tolerances. First try reducing the load
tolerance, then the RPM tolerance. If the map is not changing at all, try
increasing the tolerances. Try to avoid going above 96 for load or RPM; if the
Load OK or RPM OK LEDs are not coming on, you will need to artificially
Now that the no-load conditions are relatively tuned, once the engine is warmed up, it
should be running properly in closed loop mode. That is, the AFR should be
oscillating about 14.7, but the engine should be running steadily. Save this map on
your laptop/PC!
Now that you know better what the no-load values of the fuel map are, you may want
to readjust some adjacent values by hand before putting the engine on a load.
Assuming you have done this, and that you can blip the throttle to raise the revs (at
least up to 2500 RPM), the next stage is to do some tuning with a load on the engine.
This is best done by leaving the engine at a constant speed, for example 1500 or 2000
RPM, and methodically stepping through the load table, tuning each site at a time.
Once this is done, you have a better estimate of the fuel map values for the given load
points. Unless you have a good reason not to, it would be advised to copy these values
across to the other RPM points for the same load points.
NOTE: If you find it difficult to get the Load OK light to come on solidly, it is
possible that there is a wiring problem with the MAP sensor (such as a ground
loop), or that the MAP sensor pick-off point is in a bad location (such as right at
the throttle, instead of in the body of the plenum). There is a filter built into the
ECU to filter out the effects of pressure fluctuations caused by individual
cylinders'induction strokes.
• On a private road, start the vehicle and accelerate up to 2nd gear at 1500 or
2000 RPM.
• Perform the same steps as above, except that you have to perform the speed
regulation using some other means (eg finding hills in your private road, left
foot braking (NOTE: this will wear out the brakes) etc).
• On a private road, start the vehicle and accelerate up to the desired engine
speed in whichever gear is suitable for the terrain.
• Hold the speed steady by controlling the throttle, over a wide range of load
conditions (hills).
This last method is not as methodical as the previous ones because the load sites are
not visited in turn and there is no guarantee that any load site has actually been
finished, or even visited. If you log the procedure using WARI, you will be able to see
the AFR that was achieved, and the load and RPM (and injector pulse width) at the
same time.
Once you have a basis for the pulse width as a function of load only, you can copy
this to the other RPM points in the fuel map. Then you can continue tuning the other
points.
Alternatively, once the values have been copied, you can try driving the vehicle (on a
private road) normally and have it tune itself. To speed up the process, you can
monitor the three tuning LEDs during driving and try to keep both the OK LEDs on
solidly for as high a proportion of the time as possible.
• For any given load and speed combination, there is an ignition timing that will
provide the optimum torque.
• Firing the ignition after or before this angle will cause a torque reduction.
• Around this peak, the timing is often not very sensitive. For example, at 2000
RPM on one engine a change of 5 degrees around the optimum torque point
only corresponded to a torque reduction of 2%
• At higher loads, there will often be an angle at which any greater ignition
advance will cause knocking. This may be less advanced or more advanced
than the maximum torque point.
• Tuning to the optimum torque peak will often lead to very high NOx
emissions.
Often the best means of tuning the ignition timing is the old-fashioned way; adjusting
it by hand and observing which gives greatest torque. This is best performed on a
dynamometer so that the torque can be measured.
The closed loop and adaptive ignition timing controls are described in the ECU
reference section.
4.0. WARIVI
4.0.0. General
WARIVI is the software link between the ECU and your computer, to be able to setup
anything in the ECU you will need a straight through DE9 serial cable. If you do not
have a serial port on your computer, you can use a USB port with a USB to serial
adapter and the associated drivers.
Once WARI is installed it can be started, if the WARI window reads no ECU
connected then one of the following is happening:
- There is no ECU connected
- There is no power to the ECU
- The serial port selected is incorrect (select at first window)
If the ‘No port open’ warning is shown, it means that you may have selected a non-
existent port, or a port that is already being used by another application.
If everything is connected correctly WARI will begin reading the settings from the
ECU. The alternative is to load the settings from a file on the PC. NOTE: If you open
a settings file while an ECU is connected, those settings will be written to the ECU
straight away!
Under the "Port" menu, you can select the COM port to communicate with the ECU.
This should only be needed if you entered the program by loading a file. You will
know when if the correct COM port was selected as the main screen will show
"Status: ECU connected". Under this menu you can also designate the
communications protocol, unless you are having problems with communicating with
the ECU this should be left as MODbus mode (100ms).
Under the "Windows" menu you can view the current gauge information which is
important for engine tuning and general diagnosis (shortcut F2). This data can also be
displayed in the gauges if you have purchased a Vidigauge (refer to
www.vidigauge.com or contact us for more info).
Many of the values in the Gauges window are self explanatory. Those that aren't are
given below:
The actual value used by the ECU for the closed loop calculations is given by xx.x.
This is taken from the wideband serial input, if connected and operating. Otherwise,
the input from the analogue input is used by default. The first figure (characterised by
xx.x in the above format) is the value used by the ECU. The second figure (yy.y in the
above format) is the value from the analogue input, irrespective of any wideband
serial devices connected. The third figure (zz.z) is the target AFR, and it will be red if
the ECU is currently in open-loop mode, or black if the ECU is in closed loop mode.
In normal operation, the two values (xx.x and yy.y) will read the same value, which is
the ignition timing in degrees before top dead centre. In rotary mode, the first value
(xx.x) represents the timing of the leading plug and the second (yy.y) is the timing of
the trailing plug.
In normal operation, the two values (xx.x and yy.y) will read the same value, which is
the injection duration in milliseconds. In staged injection modes, the first value (xx.x)
is the primay injection duration and the second value (yy.y) is the secondary injection
duration.
The first value (xx.x) indicates the angle sensed from the engine offset from the
reference value. The second value (yy.y) indicates the angle setpoint interpolated
from the VVT target position table. The third value (zz) indicates the duty cycle
applied to the VVT solenoid.
To jump to the fuel/ignition maps you can use the fuel/ign option under this menu, or
simply press F5. It is also possible to view some of the current technical information
by selecting ECU data, (shortcut F11) this can be very useful in diagnosing
installation problems.
As a more rigorous method of using the adaptive tuning function of the ECU, open
the fast tuner under this menu (shortcut F12), make sure adaptive tuning mode is on
(check your settings), and follow the steps on the left. At the bottom left of the screen
you will be able to see the points you have already tuned as they turn bright yellow.
• Upon loading a file, all settings are marked as needing to be written to the
ECU
• At startup of the WARI software, the settings are marked as needing to be read
from the ECU (unless the first action is to load a file)
• When a setting is modified, that setting is marked as needing to be written to
the ECU
If any settings are marked as needing to be read from or written to the ECU, the status
line will indicate "Reading settings (xx%)" or "Updating settings (xx%)", where "xx"
is 100% minus the percentage that remains to be written or read (for example, if 99%
of the settings have been read and 1% remains, the status indicator will read "Reading
settings (99%)".
Any settings on the main form will change and be written automatically as they are
changed. Any settings in a dialogue box (a new window which is brought up in front
of the main form) will need to have "Apply" selected before the changes are sent to
the ECU.
If the ECU is disconnected when the settings are changed, the ECU settings will not
be updated until the ECU is reconnected and a connection is re-established.
Also there are a number of shortcuts incorporated into WARI to aid in tuning, refer to
section 2.9 fuel and ignition maps for details on these shortcuts.
The Calculation Trace Window can be reached using the menu “Help -> Calculation
Trace”. This is also a very useful diagnostic tool, which incorporates a flow diagram
to allow you to see where many different calculated values originate from. For
example, if you see an unexpected fuel trim value, you can use the calculation trace to
determine where it is coming from and what is contributing to it.
During the firmware upgrade process, the auxiliary outputs will be in the "off" state.
The ignition outputs will be "high impedance": under normal operation they are
electrically the same as an open collector output pulled to 12V via a 560 Ohm resistor,
and during flashing this open collector transistor is switched off and the 12V supply to
the resistor is disabled.
To upgrade the firmware of an Adaptronic ECU, you will need to run the Flashing
Utility (from the ‘Firmware’ menu). The utility will say "Reset ECU". The ECU
should then be powered up (or powered down then up again) while the Flashing
Utility is still running. The software should then display "ECU connected" and a
boot/hardware version string and ECU serial number. The Flashing Utility will not
be able to successfully flash any new firmware until you see the message saying
that the ECU is connected, followed by the serial number.
Next the firmware file should be loaded. The latest version can be downloaded from
the website. It will be in the form of an encrypted “adf” file. The “Load” button
should be clicked, and the firmware file should be loaded. Once the file has been
loaded, the ECU can be programmed by clicking the “Program” button. After this
completes, the programming should be verified by clicking the “Verify” button. If
there were no errors, the programming operation was successful. Click “Done” so the
ECU can resume normal operation. If the Flashing Utility window disappears before
you click “Done”, simply open the utility again from the main menu and then you will
be able to click the “Done” button.
Physical
Sensor Interfaces
Control Characteristics
The basis of the ECU operation can be summarised into three parts:
1. Reading inputs
2. Performing calculations, control policies and special behaviour
3. Driving outputs
The temperature is calculated by linearly interpolating the measured ADC value (from
0 to 4095, corresponding to 0V to 3V) between the temperature points specified in the
analogue sensor calibration table.
If the ADC value is less than 40 or greater than 4055, that temperature sensor input is
declared as invalid, and that input will have no reading.
If the measured voltage is outside the range in the table, but still within the acceptable
range of 40 - 4055, the reading is clipped rather than extrapolated. In the above
example, a reading between 40 and 100 will always read a temperature of 125°, and
between 3200 and 4055 will always read a temperature of -30°.
The Ext input is used as an alternative for analogue oxygen sensor inputs and as a
general purpose 0-5V input.
The TPS input is linearly interpolated in the same way as the temperature reading
above, however there are only two ADC values, fixed at 0% throttle and 100%
throttle.
As with the temperature sensor, an ADC reading less than 40 or greater than 4055 will
correspond to an invalid reading (or no TPS connected), and will mean that there is no
TPS reading by the ECU. In the above example, a reading between 40 and 327 will
always correspond to 0% throttle, and 2609 to 4055 will correspond to 100%.
Within the ECU, there are two flags indicating throttle position extremes (one for
closed throttle, one for full open throttle). The closed throttle flag is activated when
the TPS value is less than the closed throttle threshold. For example, if the closed
throttle threshold is set to 1%, the ECU will consider the throttle is closed when the
TPS is 0% only. If the closed throttle threshold is set to 0%, the TPS can not activate
the closed throttle flag. The same condition occurs with the full throttle threshold.
The closed and full throttle flags can also be set by digital inputs. If any digital input
is set to be a closed throttle input and that input is active (pulled to 0V if active low,
or greater than 3V if active high), the closed throttle flag will also be set, irrespective
of the TPS reading. The same applies for the full throttle condition. This allows the
user to use a 4-wire TPS with an inbuilt switch (often the switch is slightly more
sensitive than the pot) for closed throttle detection, or it allows use of a throttle switch
The MAP sensor input is electrically the same as the TPS input. The calculations
performed by the ECU are similar, except for two differences. The first is that the
MAP sensor input has a large amount of filtering performed in the firmware. This
helps maintain faithful fuel metering despite air pulsations within the inlet manifold.
This is often required if there is no physical damper on the pressure line for the MAP
sensor.
The second is that the minimum and maximum values can be set by the user over the
range from 0 kPa to 400 kPa. This allows up to a 4-bar MAP sensor to be installed
and read accurately. A higher pressure MAP sensor could be used however the ECU
would not sense any pressure above 400kPa.
Again, the interpolation is clipped once the bounds of the ADC calibration values are
exceeded, and the thresholds of the detection of sensor or wiring failure are the same
as the other analogue inputs.
In the above example, let us assume there is a 4V output from the MAP sensor. This
will correspond to an ADC count of 2860. This will then mean a pressure of
16+(2860-111)/(3450-111)*(200-16) kPa = 167 kPa.
The external input also has upper and lower bounds in a similar manner to the MAP
sensor however the range of the external input is much greater.
The analogue input looks like a 10 M resistor in parallel with a 100nF capacitor to
0V. It can accept an input in the 0V - 3V range.
The following sections show the calculations performed to obtain the AFR from the
oxygen sensor voltage, depending on the mode selected.
Note that if a serial-connected wideband oxygen sensor is selected and connected, the
AFR from it overrides the AFR calculated from the analogue input. This allows the
installer to configure the ECU with a standard oxygen sensor, tune it using his/her
wideband probe of choice and then disconnect the wideband probe without changing
any wiring.
Table 4: Calibration table used by the ECU in OEM Narrow Band mode
In practice, the actual AFR will vary by a much narrower range than this over this
voltage range, however for operating an engine at stoichiometry, the control algorithm
works effectively.
This mode can be used in conjunction with a 0-5V linearised wideband oxygen
sensor, provided a separate voltage divider is wired in (see the section on wiring the
oxygen sensor). Many aftermarket wideband sensors have a programmable output
which can be set up in this way. However with this mode there is no detection of a
sensor not being up to operating temperature.
This mode also has no detection of the state of the sensor, so may read lean for the
first minute or so as it heats up. Care should be taken when installing this sensor;
Below 0.4V, it is assumed that the sensor is disconnected or an invalid value, and so
the AFR reading is invalid.
This mode can be used in conjunction with a 0-5V linearised wideband oxygen
sensor, provided a separate voltage divider is wired in (see the section on wiring the
oxygen sensor). Many aftermarket wideband sensors have a programmable output
which can be set up in this way. However with this mode there is no detection of a
sensor not being up to operating temperature.
The output of this filter is then envelope detected and fed into the ADC input. This is
then sampled by the microcontroller to detect stationary signals (due to normal engine
noise and vibration) and genuine knock (which makes spurious signals above that
generated by normal engine vibration).
Each input also needs its function to be selected. If multiple inputs are selected as the
one function, they are logically OR-ed together.
If no input is configured for any given function, that input is considered to be false.
For example, if no input is configured as a clutch/neutral switch, the ECU will always
consider the vehicle to be in-gear with the clutch engaged.
The input configurations for closed and full throttle are discussed in the TPS section.
The ECU will consider the throttle closed if the TPS is below the "closed threshold"
(typically 1%), or if a digital input configured as "Closed throttle" is active. The same
goes for the full throttle condition, except that the TPS must be above the "full throttle
threshold" (typically 98%) or a digital input configured as "Full throttle" must be
active.
• Clutch : Used as a trigger to enable the idle control or for flat shifting.
The digital input is held high through an internal pull-up of 1 k , and is then filtered
by a 3.3 k in series with a 470 pF capacitor. When the Hall Effect or photodiode is
triggered, it pulls this input low. The input then returns to a high state at the end of the
trigger.
Because the reluctor input pulls the digital input low when triggered, the input must
be selected as a negative/falling digital/reluctor input to operate correctly with a
reluctor pickup.
Each trigger event is flexible in its function, as to whether it represents cylinder phase
information or triggers an ignition/injection event. This is explained in the ECU setup
section of this manual.
While trigger events still occur, the ECU will consider that the engine is still running.
This will be the case even if trigger events occur on an input which is not selected to
perform any function.
A trigger event resets the fuel pump timer to keep the fuel pump running. Once this
timer has elapsed, the fuel pump is stopped and the RPM is set to zero.
While the engine is running, the RPM is calculated by measuring the time difference
over a "period". This period is the angle between ignition and injection events, and for
The ECU has a flag for whether it considers the engine to be in a "cranking" mode or
not. This flag is set when the RPM falls below "Min Run RPM", and is cleared when
the RPM rises above "Max Crank RPM".
For information on the specific settings i.e. cam/crank/etc, divide, trail, VVT, special
system, and general timing settings refer to section 2.0 Basic setup.
The ECU measures the period between pulses, this is then divided into the number
given by the user to arrive at a number proportional to road speed.
If the ECU receives no pulses in a one second period, the speed for that input is set to
zero.
Under gear options, the user can set the ratio between rpm and road speed. To do this,
enter the road speed that correlates to 1000rpm in the appropriate gear.
Alternatively, you can click ‘learn’ for each gear (you do not have to be at 1000 RPM
to do this).
If while cranking, the engine does not start in a certain number of counts, or the
throttle is at WOT, the fuel pulse width is changed to the override value, specified on
the Power Cut tabsheet. This only occurs if the feature is enabled.
Otherwise, if the engine is not in cranking mode, the fuel pulse width (or %VE) is
looked up from the fuel map based on RPM and load. The method for the calculation
is dependent on the tuning mode selected. The options are explained in the upcoming
section "Tuning Modes".
With the VE tuning mode, you must also specify an engine capacity and injector size
(on the same tabsheet as the tickboxes for enabling VE tuning), and of course you
must tune the VE map itself.
In VE mode, the ECU performs further calculations to determine how many
milliseconds of injector pulse width are needed, based on MAP, engine capacity,
injector size, number of cylinders, target AFR, and of course the Volumetric
Efficiency.
In other words, in VE mode, the value obtained from the fuel map is just one part
of a theoretical calculation of injector pulse width, rather than being the pulse
width itself.
You basically need to tune the VE map instead of a milliseconds map, and when you
increase or decrease the VE values it will still have a direct effect on the injector pulse
width. The reason why VE tuning is so nice is because you can just enter something
like 80% VE in every cell initially, and usually the car will run fairly well straight
away!
In closed-loop fuel mode, the target AFR will still be used in the usual way (as well as
being part of the VE calculation). All trims, including the closed-loop correction, still
behave as normal (and are added after the theoretical milliseconds calculation in VE
mode).
You can get an equally good result with millisecond tuning compared to VE tuning,
but the difference is that it's usually quicker to tune VE because the theoretical
millisecond calculation in VE mode gives a better 'starting map'.
So, the fuel pulse width has now been obtained from the cranking fuel table or fuel
map, incorporating VE where applicable, what happens next?
The calculated “fuel trim” value (in %) is applied on top of the value obtained from
the fuel map (after the Volumetric Efficiency calculation where applicable), and this
final figure is what gets applied to the injectors.
When the engine is running, the ignition figure is taken from interpolation of the
ignition map, as the fuel is taken from the fuel map. The "ignition trim" is calculated
from the following inputs:
If the timing lock is enabled (see Basic Setup tabsheet), the calculated value is
replaced with the timing lock value.
NOTE: Being in Volumetric Efficiency mode will NOT have any affect on the
ignition angle calculation!
If the ignition output pattern is set to a rotary mode, the ignition timing value
calculated corresponds to the timing of the leading plug. The spark split, defined as a
function of load and RPM in the Basic Setup tabsheet, is subtracted from the leading
plug ignition angle to arrive at the trailing plug advance angle. This is clipped at TDC,
meaning that if the split would cause the trailing plug to be fired after TDC, it will
instead fire at TDC.
Note: The ignition may be cut at some stage (see Power Cut tabsheet), however this
value will still be calculated.
Table 10: Maximum tunable RPM using different RPM step sizes
Regarding load sensing, there are several different tuning modes that the ECU can
use. These are configured in the Analogue setup page. They are described below:
In MAP prediction mode, there is a table of predicted MAP values against RPM and
TPS. You will need to perform data-logs and/or monitor the values on the F2 Gauge
window to determine what MAP values occur at different RPM/TPS points, in steady-
state. During transient throttle events, the ECU will use the values in this table to
come up with a ‘predicted’ MAP value. The overall MAP value used by the ECU will
be obtained by transitioning between the predicted value and the value from the MAP
sensor (the maximum of the two will be used). The duration over which this transition
occurs is specified by the setting called ‘Transition Time (ms)’.
Note that the ‘MAP’ value on the F2 Gauge window will be the value obtained by
combining the Predicted and Sensed MAP values as described above, because this is
the MAP value that is actually used by the ECU.
See also the ‘Asynchronous Accelerator Pump’ section for more details.
There are two possible sources of acceleration enrichment. One is MAP, the other is
TPS. The time-derivative of each of these variables (how quickly each is increasing)
are multiplied by the appropriate numbers in the settings (‘TPS-based Enrich’ and
‘MAP-based Enrich’, again in the Corrections tabsheet). This is then fed into a peak-
hold algorithm, which allows the enrichment to occur once the throttle has reached its
final position. This enrichment also decays linearly over the prescribed time period
(‘Enrich Duration’), and can be seen by the trim value changing as the throttle is
quickly applied.
Once the TPS exceeds the TPS cutoff value, no additional enrichment is applied.
Similarly, once the MAP exceeds the MAP cutoff value, no additional enrichment is
applied.
The time-derivative of the TPS (how quickly the throttle is being opened) is
measured. The current RPM value is measured, and then the asynchronous accelerator
pump duration is interpolated from the table. This table has its own dialogue box, and
is accessed from the Corrections tabsheet. It gives the accelerator pump duration in
milliseconds as a function of the engine speed. This value is then corrected by the air
and water temperature trim percentages.
This is then scaled against the TPS rate. The effect of this is that the maximum fuel
pulse provided will be that in the table, but if the throttle is not being opened quickly
enough, this will be reduced (for example, it may only give half of this value).
The status of each injector is then checked. If the injector is currently "on", then the
duration of this pulse is added to the pulse that the injector is currently performing. If
the injector is "off", a new pulse is triggered. This is done on all injector outputs
simultaneously.
The cutoff of the asynchronous pump refers to the peak TPS percentage that will
allow the asynchronous pulse, i.e. any change starting above this point will not result
in an asynchronous pulse. If the cutoff value is set to 0, then any positive change in
the TPS value will result in an asynchronous pulse (provided the gain conditions are
also met)
The gain of the asynchronous pump refers to the change in TPS value that is required
to inject the squirt duration in the asynchronous table (so a larger gain in this case will
actually lead to shorter asynchronous pulses). If the gain is set to 0, then it is assumed
the gain has not been setup and is taken to be 30.
If all of the above conditions are met, the ECU will operate in closed loop fuel mode.
In closed loop mode, the target AFR is calculated from the target AFR lookup table as
a function of RPM and load (see Target AFR tabsheet). The actual AFR is measured,
and the difference between these two gives the AFR error.
The parameters for the control are given in the "Closed Loop Parameters" dialogue
box. The error is multiplied by the proportional gain, and integrated using the integral
gain. The maximum integral value is calculated so that the maximum trim addition (in
percent) is that given in the dialogue box. For normal operation, the proportional gain
would normally be about 2 - 10, the integral gain about 1, and the maximum trim
about 10%. For fast tuning, the proportional gain should be 0, the integral gain about
4, and the maximum trim about 4%.
The values in the advanced parameters section "Closed Loop Parameters" dialogue
box have the same effects as those listed above however they are four times as
sensitive, this is to allow greater control over large injectors at idle.
The delay before closed loop is the amount of time before the fuel control will go into
closed loop mode once all the conditions are met.
Injector dead is the amount of time it takes for the injector to start flowing after power
is applied, this is a function of the voltage applied to it and as such we can set the
dead time correction for both primary and secondary injectors as a function of battery
voltage under the corrections tab.
In adaptive mode, the ECU starts a timer every time the engine changes "cells" (ie,
the closest RPM and load point in the fuel and ignition maps). This timer allows the
engine to stabilise, so that the ECU is not performing corrections to transient events.
This timer elapses after the "Stabilise time" has occurred (this figure can be set
differently for Rapid Learning and Slow Converge modes). During this time, the
Learn Wait flag will be set, so one aid to tuning is to connect a light to an auxiliary
output, and configure it to be a "Learning wait" type output.
The ECU also checks the RPM and load values to check how close the engine is to
the actual map point. When they are within a certain tolerance (this tolerance is
specified in the Adaptive Mode Parameters dialogue box), the "Learning load OK"
and "Leaning RPM OK" outputs will be enabled.
If the stabilise timer has elapsed, and both RPM and load are within the specified
tolerance, the ECU will sample the correction made to the trim based on the closed
loop correction, and apply this to the fuel map. The ECU will then reset the timer,
however rather than setting it to elapse after the "Stabilise time", it will elapse after
"Update period". This figure then sets how often the ECU updates the fuel map with
corrections.
The selection “update other parts of map” is used for tuning, it will give a base point
equal to the current value, for all untuned points of the same load as the one being
tuned. “Ensure higher loads have more fuel” ensures the fuel curve vs load is
monotonic, by checking all values below the current point and trimming them if
necessary and all values above the current point and adding to them if necessary.
5.2.11.Adaptive Ignition
The adaptive ignition should be used as a tuning aid as in some cases left to its own
devices it can retard/advance ignition to non-optimum levels. It works by dithering
the calculated ignition timing by a fixed amount “angle”, and back to the calculated
value every set of ignition events ("no of engine periods"). Because the engine drives
a compliant load (through flexible engine mounts and tyres), a change in torque will
cause a phase shift in the engine's rotation. Over a small period of time this
corresponds to a small change in RPM. The RPM is sampled at the beginning, middle
and end of every ignition dither cycle. The difference is calculated; if the RPM is
greater when the ignition is more advanced, this corresponds to an increase in torque
during the advanced ignition period. If the RPM is the same, there is no torque
increase. This RPM shift is referred to as the "Advance Metric", and will have a
positive value if the torque will be increased by advancing the ignition.
Once the advance metric gets above the higher threshold, the advance metric is reset
and the current cell in the ignition map is advanced by 0.2 degrees (slow converge) or
1.0 degrees (rapid learning). The other adaptive parameters such as the RPM and load
tolerance are set as per adaptive fuel control parameters.
- The knock threshold determines the level of knock allowed before the ignition will
be retarded.
- The minimum and maximum rpm values set the conditions for entry into the
adaptive ignition loop.
- Always sense torque will dither the ignition regardless of the conditions, when it is
off dithering will only occur when in adaptive ignition mode.
- Update other parts of map will check that all loads and rpm’s higher are equal or
more advanced, all loads and rpm’s lower are equal or more retarded, if not they will
be changed.
The adaptive ignition system is noisy, to remove some of this noise, there is a filtering
option which uses the number set to determine the percentage that comes from the
sample taken, while the remaining percentage comes from the previous value. The
lower and higher thresholds set the minimum and maximum values that the adaptive
ignition can change the map, the stabilise time sets the time that the ecu needs to be
held at a set rpm and load for the adaptive ignition to occur.
1. Bringing the engine speed above the "Hard Rev Limit" (engine speed must be
brought below this figure minus the "Hard Hysteresis" to reinstate engine
power);
2. Bringing the engine speed above the "Soft Rev Limit" will cause a partial cut
(every second cylinder, and then engine speed must be brought below this
figure minus the "Soft Hysteresis" to reinstate engine power);
3. Bringing the engine speed above the "Cold Rev Limit" when the water
temperature is below the "Cold Temperature" (if there is no water temperature
input available, this test is skipped);
4. Bringing the engine speed above the "Turbo Timeout Rev Limit" when the
turbo timer is in operation;
The throttle-off power cut (also called overrun) requires that the following conditions
are met:
1. The engine speed must have gone above "RPM Higher" (power will be
reinstated when the engine speed falls below "RPM Lower");
2. The throttle must be closed (either by TPS being below "Closed Throttle", or a
digital input configured as a Closed Throttle input being active);
3. The water temperature must be above the "Minimum water temperature" (if
there is no water temperature available, this test is skipped);
4. The air conditioner output must be disabled, if the "Not when A/C is on"
option is selected;
5. There must be no input configured as a clutch/neutral input which is active, if
the "Only when in gear" option is selected;
6. These conditions must be met for the "Time Delay" before the fuel cut occurs.
A special power cut can also be added to cut fuel and ignition if the ignition switch is
off.
If this "trigger timeout" figure is set less than the duration between triggers at the
lowest operational speed (ie, during cranking), the engine will not be able to start. A
value of about 200ms is recommended.
1. The RPM must be above the "Minimum RPM" (in Special Outputs tabsheet);
2. The TPS must be above the "Minimum TPS" (in Special Outputs tabsheet - if
there is no available TPS value, this test is skipped);
3. The water temperature must be above the "Minimum water temp" (if there is
no available water temp value, the purge valve is disabled);
4. If any input is configured as a clutch/neutral input, none of them may be active
(ie, vehicle must be in gear if there is a clutch/neutral switch configured).
On the Special Outputs tabsheet, there is an option for the duration, in seconds, of the
PRCV. Any auxiliary output selected as a PRCV output will be activated while the
engine is stopped, and for that duration after the engine fires (that is, leaves the
"cranking" state).
The normal state of the blow-off valve state machine is "cruising". This happens at
light loads (including idle). When the MAP goes above the "MAP Prime" value, a
transition is made to the "boosting" state. During "cruising" state, the blow-off valve
output is off. The state will always be "cruising" if there is no valid MAP value.
In the "boosting" state, the blow-off valve output is also off. If the MAP falls below
the "MAP Prime" value, the TPS is checked. If there is no valid TPS reading, or the
TPS is below the "TPS threshold", a transition is made to the "venting" state.
Otherwise, if the MAP falls below the "MAP Prime" value and the TPS is above the
In the "venting" state, the blow-off valve output is as the mode is selected. This can be
on (for "Normal" mode), off (for "Off" mode) or changing between on and off (for
"Flutter" mode). Any of the following events will take the ECU back to the "cruising"
state:
1. The blow-off valve has been venting for the specified duration;
2. TPS goes above the "TPS threshold";
3. MAP goes above "MAP Prime".
Note that during turbo timeout operation, the ECU can no longer detect the state of
the ignition switch, as the switch is being short circuited by the relay. If the user
wishes to reapply the ignition, he or she can do so, however the ECU will remain in
turbo timeout mode until it is taken out of turbo timeout mode.
5.4.6.3. Behaviour
The turbo timeout period will be activated when the ignition switch is turned off, and
shall remain in place until one of the following occurs:
1. The water temperature falls below the specified "Minimum Water Temp" (if
there is no water temperature value available, this test is skipped);
2. The auxiliary temperature falls below the specified value "Minimum Aux
Temp" (if there is no auxiliary temperature value available, this test is
skipped);
3. The engine stalls;
4. The time period elapses;
Note that during a turbo timeout, an additional rev limit will apply. This is intended to
reduce risk of theft of the vehicle during turbo timeout, although this may have no real
benefit in practice.
Open loop VVT mode is selected by setting all P, I and D values equal to zero. The
VVT angles, as a function of RPM, then become the duty cycle that is output directly
to the VVT outputs.
All VVT outputs will be set to zero duty cycle when the engine is stationary.
There are four components of the closed loop VVT control algorithm in the
Adaptronic e420c ECU. These are as follows:
The setpoint is an angle, in degrees. This is a function of engine speed, and has set
points every 500 RPM. It is calculated in degrees before top dead centre; hence higher
values indicate a more advanced camshaft. A value of zero is supposed to indicate the
camshaft in its "neutral" position, with no control effort applied.
The controller is a PID controller, which allows for different gains at different RPM.
The points where the gains can be set are 1000, 3000, 5000 and 7000 RPM. Between
these points, the gain values are interpolated. Below 1000 RPM, the 1000 RPM values
are taken, and above 7000 RPM, the 7000 RPM values are used.
The reason for having multiple gains is because the oil pressure (and therefore the
responsiveness of the VVT solenoid) will change with RPM.
The angle is detected by calculating the time difference between the index pulse on
the camshaft with respect to the crankshaft position. The crankshaft position is
determined in the usual manner by use of a trigger event angle table and a crankshaft
position sensor. Usually the home position will be marked on the crank angle sensor
by means of a missing tooth.
The camshaft angle for VVT channel 1 or 2 is detected by selecting the "VVT1" or
"VVT2" option in the advanced trigger setup window for the input connected to the
camshaft sensor. Note that this angle must be in a constant position with respect to top
dead centre, for a given camshaft to crankshaft angle.
This is offset by the "reference" position for each channel. This reference position is
the nominal position of the timing pulse of the camshaft, with respect to the
crankshaft, in the camshaft's "home" position (that is, with no control effort applied to
the solenoid).
1. Disable the VVT outputs (set the Aux Output type for each output to "none")
2. Ensure that the timing table is correct and that the correct triggers for VVT1
and/or VVT2 are selected
3. Start the engine and allow it to idle with both camshafts in their "natural"
positions
4. Ensure that the base ignition timing is set correctly (by using the timing lock
feature or otherwise)
The control loop is a PID controller. This section will not explain how to set up the
gains of a PID controller.
The error term is calculated by taking the current VVT angle (which is offset from the
home position, as described above) and subtracting the angle setpoint (which is
interpolated from the table).
The PID gains are calculated by interpolating the PID gain table against the engine
speed, as described earlier.
From the error, the error history and the PID gains, a control effort output is
determined. This is a duty cycle.
The integrator within the PID controller will progress no further under the following
conditions:
1. The error is positive, and the output value for that channel is at the minimum
of its range
2. The error is negative, and the output value for that channel is at the maximum
of its range
The gain can be varied as a function of engine speed for the reason that as oil pressure
varies with engine speed and the dynamics of the system change, the gain that is
required to achieve acceptable response at low engine speeds causes instability at
higher engine speeds.
This control effort value is then added to the ‘default’ duty cycle to arrive at the
output duty cycle. This is clipped within the range of the minimum and maximum
duty cycle percentages before being applied to the desired output.
The base value should be determined experimentally by finding at what duty cycle the
valve starts to open. This offset allows the controller to respond quickly without
having to build up the integrator over a long period of time.
The maximum and minimum values should be kept within a range so that the time for
the integrator to come out of saturation is minimised. For example, if the valve at 60%
The gauge window allows the operator to see the current VVT parameters to gauge
the performance and optimise the control parameters.
In this example, the timing sensed by each camshaft is 24.70°, advanced from the
reference position. The setpoint of VVT1 is 10°. Hence the camshaft is further
advanced than it should be. The 52% figure indicates the duty cycle applied to the
VVT1 solenoid. As the "Reverse 1" option is not ticked, this figure is falling to
attempt to bring the VVT1 value closer to 10 degrees.
The setpoint of VVT2 is 0°, indicating again the that cam is too far advanced with
respect to the setpoint. The "Reverse 2" option is ticked, so the ECU will be
attempting to drive that output at a higher duty cycle. It is currently at 80%, which
would be the limit set in the parameters.
In PWM mode, the output will be at 0% duty cycle (ie, off) below the lower
threshold, and at 100% duty cycle (ie, on) above the upper threshold. Between these
two values, the duty cycle is linearly interpolated. This is shown graphically in the
software.
The ECU uses a combination of open loop forward compensation and closed loop
correction to control idle speed.
Because the idle may be controlled using a PWM solenoid valve (which has a duty
cycle) or a stepper motor (which has a number of steps), the generic term "effort" will
be used to refer to either duty cycle or step number.
1. Base idle effort these are the default values and should be the basic values that
the engine needs to idle at the correct RPM with no electrical loads, this is
shown graphically in the software if the graph selected is "Open loop idle
effort vs temperature". If the water temperature value is not available, this
extra effort will be added in full;
2. Extra effort after cranking - this allows the idle valve to open for a short
period of time after the engine is started. This figure will linearly decay to zero
over the set time period. During this time, closed loop idle speed control will
be disabled, as the engine will idle higher than the target idle speed. This is
shown graphically if the graph selected is "Open loop idle effort vs time",
where zero seconds is the point of engine fire;
3. Extra effort for A/C - this allows some extra air to be admitted when the air
conditioner output is on, and will be added to any other idle effort additions;
The easiest way to set these up is to disable closed loop control, warm up the engine
and set the base value. Then apply typical engine loads such as headlights and power
steering loads, and settle on an appropriate electrical load idle effort value. Then do
the same for air conditioning. After this has been sorted out and the engine has cooled
down, the extra effort when cold can be determined.
The ECU will only actively control idle speed under the following conditions:
Once these above conditions are met, the closed loop idle speed will be controlled in a
closed loop mode by the ECU.
1. Target idle speed when engine is hot and cold, as a function of water
temperature (if there is no valid water temperature value, the cold target idle
speed is assumed);
2. An extra speed can be added for the case of electrical loads (this would
normally be about 100 RPM);
3. An extra speed can be added for the case of A/C being on
4. An extra speed can be added for the case of a low battery supply.
One way to configure these values is to first increase the proportional gain until the
system becomes unstable (idle speed hunts), then increase the differential gain to
stabilise the system until it is sufficiently stable. The integral gain can then be
increased as far as possible while maintaining stability - if necessary the differential
gain can be increased.
The limiting factor will be the maximum amount of differential gain that can be
added. If too much is added, the system will become unstable again. This places the
maximum limit on the amount of proportional and integral gain that can be set, which
ultimately limits how quickly and accurately the idle speed can be controlled.
Note that idle speed control should only be performed once the engine is tuned
properly at the idle condition. If the engine is not tuned properly, it will hunt in any
case, which makes idle control extremely difficult.
There are also two "Recovery" conditions, which give an extra amount of air that will
be admitted when the engine speed is below a certain RPM. These should not be used
for idle control; they should really only be used to stop an engine from stalling. These
will react immediately, unlike the closed loop control algorithm
To drive a stepper motor, four auxiliary outputs will be required. There are currently
two output options in the ECU, whose step patterns are shown below. In the following
table, a "1" corresponds to an activated output (that is, an output held low):
The step pattern for a standard 6-wire stepper motor (as used on Mitsubishi) is the
"Hold" type output, which always energises two coils at a time. The "Pulse" type
output energises one coil at a time, however it does not keep the coil energised.
Each step will be at least the duration of the "Step Period" specified in the Idle
tabsheet. This is typically 11ms for a Mitsubishi type idle motor.
If the idle motor is at its end of travel, the ECU will deliver a pulse to it once every
few seconds, to ensure that the motor actually remains there. The purpose of this is
that if some poles are skipped during motor excursion, the position of the motor will
not be as the ECU thinks it is. The situation could occur that under closed loop
operation, the ECU may believe it has fully closed the idle valve, whereas the idle
valve is actually still slightly open (due to the skipped poles). Hence by continuing to
step in the "closed" direction, the motor's position will eventually match up with that
expected by the ECU. It is only an issue at the ends of travel, because otherwise the
closed loop control can be used to compensate for any skipped poles.
As with fuel control, ignition control and idle speed control, a combination of feed-
forward and feedback is used. Note that closed loop wastegate control is still
experimental, however open loop wastegate control has been verified on road
vehicles.
The wastegate output is configured as a PWM valve. Hence the solenoid valve must
be connected to a high current, PWM-capable auxiliary output.
To force only open-loop control, the P, I and D gains in the Control pane must be set
to zero.
If there is no valid MAP value, the closed loop operation is disabled and the open
loop mode only is used.
For a discussion on the operation of the PID controller, see the description for closed
loop idle control.
When using a two-rotor engine, with addressing igniters, the coil address sets the plug
to fire based on wether it is high or low, to offset this addressing so that it
encompasses when the plug should be fired, changing the offset address from 0 to 1, 1
to -3, -3 to -4, -4 to -5, -5 to -6 shifts the addressing right one trigger event, changing
the offset address from 0 to -1, 1 to -2, -3 to 2, -4 to 3, -5 to 4, -6 to 5 changes the
phase. The split between the leading and trailing sparks can be changed based on load
and rpm under the basic setup tab, the value entered will move the trailing plug back
the specified degrees.
Each output will turn on a fixed amount of time (the "dwell time", configurable in the
Trigger/Output window) before the spark is to fire. The output will then turn off at the
angle at which the output is supposed to fire, discharging the coil and generating the
spark.
Ign 1, "Alternate",
normal (falling edge)
Ign 2, "Alternate",
normal (falling edge)
Ign 1, "Sequential",
normal (falling edge)
The staged injector limit sets the limit of the primary injector in terms of ms of the
secondary injectors, the primary injector multiplier sets the percentage increase in size
of the injector, this is all used to calculate the actual injector on time for each injector
when using staged injection. Note also that when using injection in a staged situation
that only all, alternate full speed, or batch should be used.