This is only a preview of the May 2007 issue of Silicon Chip. You can view 33 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Articles in this series:
Items relevant to "A 20W Class-A Amplifier Module":
Items relevant to "Adjustable 1.3-22V Regulated Power Supply":
Items relevant to "VU/Peak Meter With LCD Bargraphs":
Items relevant to "Programmable Ignition System For Cars; Pt.3":
Items relevant to "GPS-Based Frequency Reference: Circuit Modifications":
Purchase a printed copy of this issue for $10.00. |
By JOHN CLARKE
Programmable Ignition
System For Cars; Pt.3
In Pt.2, we described how to build all the
modules that comprise the Programmable
Ignition System. This month, we describe the
installation and setting up procedures and
show you how to plot the ignition timing.
A
S MENTIONED in Pt.1, the Programmable Ignition System can
either be used as a complete ignition
system or as an interceptor.
Whether it behaves as an interceptor or not depends on the input signal
that’s applied to the unit. In most
cars, the ignition system will already
provide ignition advance with respect
to RPM and engine load. This applies
not only to cars that have full or partial
engine management but also to older
cars that simply have mechanical RPM
and vacuum advance systems.
When used as an interceptor, the
Programmable Ignition simply modifies the existing ignition timing. By
contrast, when it’s used as a complete
ignition system, we dispense with any
existing timing system that may exist
and re-map the timing using the Programmable Ignition Timing Module.
If you intend using the unit as an
74 Silicon Chip
interceptor, then there’s no real need
to know what the engine’s existing
timing map is for RPM and engine
load. That’s because we are simply
using the unit to modify the existing
timing values at various engine RPM
and load sites.
Why would you want to do this?
Well, you may want to advance the
timing at some sites to gain power
and/or retard the timing to prevent
detonation (ping) at certain trouble
spots within the RPM and engine
load map.
Note that although the original timing curve does not have to be known
for interception, you do need to know
the RPM and engine load range. This
is necessary to ensure that the full
mapping range is utilised with the
Programmable Ignition System (more
on this later).
Conversely, if the unit is used as a re-
Warning!
Programming an incorrect timing
map into the Ignition Timing Module
could result in serious engine damage.
Do NOT modify your car by fitting this
device unless you know exactly what
you are doing.
Also, be sure to install this ignition
system in a manner that does not
compromise safety. It must be ruggedly built and correctly installed to
ensure that no leads or components
can come adrift.
Finally, make sure that the device
does not compromise the operation
of other systems controlled by an
existing engine management unit – eg,
ABS, traction control, stability control,
air-bag control, etc.
placement ignition, it will be easier to
program in a timing map if the original
engine timing is known. That way, the
Programmable Ignition can initially
duplicate the original timing which
can then be adjusted as necessary in a
similar manner to an interceptor – eg,
to extract better performance and/or to
prevent detonation.
siliconchip.com.au
In some cases, full timing information will be available from the car’s
manufacturer or from a workshop
manual. Usually, however, there will
be no information available.
The solution is to actually measure
the timing advance against changes in
RPM and engine load. This is easy to
do in cars with a mechanical vacuum
advance mechanism, as this operates
independently of engine RPM.
Plotting the timing values in cars
that use engine mapping and a MAP
sensor for vacuum measurement is
only slightly more difficult. It’s done
by externally altering the pressure sent
to the MAP sensor or actuator. The
exact procedure is described in the
panel headed “Plotting The Original
Ignition Timing Values”.
Cars that utilise Mass Air Flow
(MAF) sensing of engine load are much
more difficult when it comes to mapping ignition advance. That’s because
the engine will have to be run with
varying degrees of load throughout
the RPM range and this can only be
achieved on a dynamometer.
Interceptor or replacement?
Note that the Programmable Ignition System should be used only as
an interceptor on cars that already
have an engine management system.
That’s because the manufacturer’s timing map will have been carefully designed for your engine. Furthermore,
the timing would have been mapped
against air inlet temperature, engine
temperature and the air-fuel ratio to
provide the best performance in all
conditions.
By using the Programmable Ignition
System only as an interceptor in such
cars, the original timing variations according to fuel ratio, temperature, RPM
and load will be retained.
By contrast, we do advocate using
the Programmable Ignition System as
a complete replacement in older cars
and Go-carts and on engines that do
not currently include RPM or vacuum
advance.
Many old cars provide both RPM
and vacuum advance by mechanical means. Because of their age, the
RPM advance system is now likely to
be worn and sticky in its operation,
while the vacuum actuator will often
be leaky or may have failed altogether.
Most drivers do not notice if a vacuum
actuator has failed because when it
fails, it remains at the maximum ensiliconchip.com.au
Timing Problems With Reluctor Triggers
In some cars, when using the Programmable Ignition, you may find that
the ignition trigger exhibits a type of
stiction effect, with the timing initially
failing to advance from about 0-5°. This
effect is due to the coil firing just before
the trigger signal (due to the advance
setting) and the resulting high-tension
signal within the distributor then interfering with the normal operation of the
trigger sensor.
Reluctor triggers are the most likely
to be affected in this way. Hall Effect,
optical, engine management and points
triggers are unlikely to be affected.
In some cases the effect may be dialled out by careful adjustment of VR1.
Also, make sure the high-tension lead
and the reluctor leads are spaced well
apart and only intersect at right angles
if they do need to cross.
If this does not solve the problem then
gine load position. As a result, power
under load is retained.
Our experience
During our tests, we eliminated the
original mechanical RPM and vacuum
advance systems in a 1988 Ford Telstar
and used the Programmable Ignition
System to provide the timing advance
instead. As a result, the engine became far more responsive to throttle
changes and was more willing to rev
than before.
There are a couple of reasons for
this improved performance. First, the
flying weight system in the distributor
you can avoid programming low values
of advance into the Programmable
Ignition. This can be done in one of two
ways. First, the static timing can be set
to say 10° of retard (eg, –10°) so that
you need at least 10° of advance from
the Programmable Ignition to get 0°
timing. Of course, the entire timing map
would have to be changed to include this
extra 10° for all values.
An alternative method is to set
the static timing to greater than the
maximum amount of advance in the
timing map. This value would then be
subtracted from required timing value
for each map site in order to determine
the retard setting required for each site
in the Programmable Ignition.
For example, if the static timing is
+40° and the timing map value is 22°,
the programmable ignition map setting
would be -18° (22° - 40° = -18°).
that provides RPM advance is fairly
sluggish to respond to RPM changes.
By contrast, the Programmable Ignition System provides “instantaneous”
changes to the timing map.
Similarly, the vacuum actuator that
moves the distributor’s trigger firing
point is slow to respond compared to
using a pressure (or MAP) sensor with
the Programmable Ignition System.
Installation
Typically, the Ignition Timing Module is best mounted inside the cabin
of the car; eg, somewhere under the
dashboard. This allows the Hand Con-
An external MAP sensor can be mounted on the
firewall. It will require power connections plus
a vacuum hose connection to the inlet manifold.
May 2007 75
Plotting The Original Ignition Timing Values
I
T’S QUITE EASY to plot the timing
advance values for an existing ignition
system by using a timing light. In fact,
there are several ways to go about this.
Typically, most cars only provide timing
marks that show Top Dead Centre (TDC)
and up to about 10° or 12° before TDC
using a scale on the engine block. These
marks are ideal for setting up the ignition
timing at idle but are not sufficient to
measure advance at higher RPM values.
This is because the advance will go beyond
the 10° or 12° timing mark.
One way round this is to make up an
extended timing scale to directly indicate
the advance at higher RPM values. Another
option is to use a timing light that includes
advance adjustment.
Yet another option is to use the Programmable Ignition System and a spare
ignition coil and spark plug. This system
can shift the timing light’s stroboscopic
flashing so that it is delayed by as many
degrees as the advance. That way, you
can use the existing engine timing marks.
Fig.23 shows how to set this system
up. Note that the coil shown here is not
the ignition coil used in the car but a
separate one that independently fires the
timing light. If you do not have a spare coil,
they are readily available from automotive
wreckers or you could temporarily borrow
one from another car (just about any single
output ignition coil can be used).
The spark plug is necessary to provide
a spark gap for the coil to discharge. This
is important because if the coil’s high tension output is left open, there is the risk
that the coil will internally breakdown and
suffer permanent damage.
The Ignition Timing Module takes its
signal from the car’s trigger sensor or
existing ECU output but note that this
signal must include the timing advance
(not always the case with trigger sensor
information). If the trigger signal does not
include the timing advance, then be sure
to use the output from the ECU.
Before actually plotting out the timing
values, there are a number of adjustments
that must first be made to the Ignition
Timing Module, as follows:
the cabin. Make sure it is well away
from the exhaust manifold though, to
prevent excessive heat exposure. It can
be mounted using suitable brackets to
the chassis.
The big disadvantage of mounting
the unit in the engine bay is that it
is much harder to connect the Hand
Controller for driving. In some cases,
it may be possible to feed the connecting lead through a window and
under the rear of the (closed) bonnet.
Alternatively, it may be possible to
temporarily feed the connecting lead
through the firewall (not so easy) or
through an air vent (easier).
Note that the lid of the Ignition Timing Module must be left off when the
Hand Controller is connected. This
also allows jumper LK1 to be easily
changed, to select either the settings
or timing display modes. Note that
Reluctor adjustment
If your car uses a reluctor pick-up, then
VR1 (on the Ignition Timing Module) must
first be adjusted. Begin by setting VR1 fully
clockwise and measure the voltage at pin
6 of IC1. If the voltage is close to 0V, wind
VR1 anticlockwise several turns until the
voltage at pin 6 of IC1 goes to +5V. When
it does, wind VR1 anticlockwise about
two turns more and leave it at this setting.
If the voltage at pin 6 of IC1 is +5V
when VR1 is wound fully clockwise, then
rotate VR1 fully anticlockwise and wind it
clockwise until the voltage goes to +5V. As
before, wind VR1 on by an extra two turns
(clockwise this time).
Initial settings
Now for the programmed settings.
Fig.23: here’s how to set
the system up with a
timing light and a spare
ignition coil to map the
ignition timing.
troller to be easily attached and used
while someone else does the driving
(this should be done on a racetrack or
some other closed road).
It is also best to mount the Ignition
Timing Module in the cabin if the
Sensym pressure sensor is used. This
helps keep the sensor cool.
Alternatively, the Ignition Timing
Module can be mounted in the engine
bay if you cannot find room for it in
76 Silicon Chip
siliconchip.com.au
Here’s the step-by-step procedure:
(1) Install jumper LK1 in the settings
position.
(2) Set the number of cylinders for your
car, the edge sense to HIGH and the diagnostic setting to “No Interpolation”.
(3) Set the dwell to 0ms and set the oscillator to ON.
(4) Increase the dwell value until the timing
light fires reliably. Note that the dwell value
does not change until the Up switch on the
Hand Controller is released.
(5) Move LK1 to the timing position and
press the Reset switch on the Hand Controller so that all the timing values for the
selected map return to 0.
If you now start the engine and aim the
timing light at the flywheel timing marks
you should see the amount of advance. If
this does not seem correct, then change
the edge sense to low in the settings mode
(ie, temporarily move LK1 back to the settings position). If the strobing is erratic, try
selecting the 2ms debounce option (again
found in the settings mode).
Note that with this strobe set-up, the
timing light will fire for every spark firing
rather than just for cylinder 1. This will
make the visible contrast of the timing
mark a little less than it otherwise would be.
You can compensate for this by dabbing
some white paint on the flywheel marker.
RPM Site
Load Site
Min load LOAD1
LOAD2
LOAD3
LOAD4
LOAD5
LOAD6
LOAD7
LOAD8
LOAD9
LOAD10
Max load LOAD11
RPM0 Min RPM
RPM1
0
1000
6
6
RPM2
RPM3
RPM4
RPM5
RPM6
RPM7
RPM8
RPM9
RPM10
Max RPM
RPM11
8.5
11.5
13
15.5
19
22
26
28
32.5
34
1400
1800
2200
2600
3000
3400
3800
4200
4600
5000
Table 1: this table shows the interpolated advance values vs RPM for the high
load site (in this case, LOAD11). These values are measured with the vacuum
advance line disconnected and plugged – see text.
Having gone through all these initial
adjustments, the next step is to disable any
vacuum advance by removing and plugging the rubber hose that connects to the
vacuum advance pressure sensor (or MAP
sensor. The timing advance at idle should
be set according to the manufacturer’s
specifications.
For the Ford Telstar, the initial timing is
6° BTC (before top centre) and this should
be indicated by aiming the timing light at
the timing marks. In this case, the Ignition
Timing Module can now be programmed
(using the Hand Controller) for a timing
advance of -6.0° (retard). When this is
done, the timing light should now show
the timing to be at exactly TDC on the
flywheel marks.
Plotting the RPM advance values from
here is straightforward. It’s just a matter
of running the engine at specific RPM
values and adjusting the “retard” value
programmed into the Ignition Timing
Module until the timing light shows TDC
in each case. The programmed values then
represent the timing advance (in degrees)
for each selected RPM value.
For example, let’s say that the programmed value necessary for the timing
light to show TDC is -22° when the engine
is doing 3400 RPM. This simply means
that, in this particular case, the standard
ignition has a timing advance of 22° at that
engine speed.
OK, so how do we actually do this?
Simple – just select the timing display
mode (using LK1) and then select DIAG
so that the RPM is displayed. You can now
plot out the advance versus RPM values
by increasing the engine RPM in suitable
steps (eg, 1000 RPM) all the way to the red
line and adjusting the programmed retard
value so that the timing is shown at TDC.
Keep a record of these advance values as
you proceed.
This RPM versus timing advance is
generally the high-load map because the
vacuum advance line is disconnected
and plugged. However, it is not the high
load map for turbo-boosted engines (see
below).
The recorded timing information can
now be plotted out on a graph and the
interpolated values transferred to the individual RPM sites. This is done as follows:
(1) Decide whether you want the two 11x11
maps or the single 15x15 map and select
this in the settings mode.
(2) Select either 1° or 0.5° resolution.
(3) Set the Minimum RPM and Maximum
RPM values to suit the range of the engine.
The Minimum RPM value is simply the idle
speed, while the Maximum RPM value is
the engine red line. The idle speed can be
measured by setting the display to DIAG,
so that it shows RPM.
When setting the Maximum RPM, adjust
the RPM/SITE value so that the Maximum
RPM is at or just over the value required.
You can also adjust the Minimum RPM
setting if necessary (see Pt.1).
The Minimum RPM value becomes
the RPM1 site. The RPM step value for
each site is shown in the Maximum RPM
settings display. If this is 400 RPM, for
example, then the RPM2 site will be 400
RPM higher than the Minimum RPM
setting. Similarly, the next RPM site will
be 400 RPM higher again and so on up
to the final RPM site which will be equal
to (or slightly higher than) the Maximum
RPM value.
You should now have a timing table
. . . continued next page
LK1 should be placed in the settings
position when the Hand Controller is
subsequently disconnected.
By contrast, the Ignition Coil Driver
must be mounted in the engine bay.
It can be secured to the chassis using
suitable brackets and should be located close to the ignition coil. If you
are using a separate MAP sensor, then
this can be mounted on the firewall.
Make sure that there is a good con-
nection between the metal cases of
both units and chassis. If necessary,
you can run separate earth leads to
ground (bolt them to the chassis via
crimp eyelet connectors).
Once you’ve made the connections,
use your multimeter (set to its ohms
range) to confirm that the metal cases
are correctly grounded. You should get
a reading of zero ohms between each
metal case and ground.
Fig.15 in Pt.2 last month shows the
external wiring details. Note that all
wiring between the Ignition Timing
Module and the Ignition Coil Driver
should be run using automotive wire
and crimp automotive connectors.
Similarly, use automotive wire and
crimp connectors for the connections
to the ignition coil, the +12V supply
and to chassis.
The +12V supply should be taken
Checking the advance
siliconchip.com.au
May 2007 77
Plotting The Original Timing Values – Continued
Fig.24: here’s how to check the LOAD values in a car with a mechanical
vacuum actuator. The syringe is used to vary the pressure.
that is similar to the one shown in Table
1. Note that we have included RPM0 on
a different line because it is only there to
show that the advance setting remains the
same for RPM values below the Minimum
RPM site (RPM1).
Finally, you may wish to recheck the
advance values assigned to each RPM
site. For example, for the table shown, you
would recheck the advance at 1000, 1400,
1800, 2200, 2600, 3000, 3400, 3800,
4200, 4600 and 5000 RPM.
Having determined the RPM site advance values, you now need to plot the
LOAD values.
First, let’s assume that you have a car
with a mechanical vacuum actuator. In this
case, you will need a T-piece in order to
connect this existing vacuum actuator (via
a hose) to the MAP sensor used with the
Programmable Ignition System.
Note, however, that a T-piece is not
required if your car is fitted with an existing MAP sensor. In this case, the same
signal from the MAP sensor is used both
for the existing ignition and for the Ignition
Timing Module.
In either case, it will be necessary to
feed a MAP sensor signal to the Ignition
Timing Module. If you are using the Sensym sensor, then a vacuum hose has to
be connected to this.
The T-piece does not have to be anything too complex. You can buy these at
from the fusebox. Be sure to choose a
connection point that delivers +12V
only when the ignition on. In addition,
make sure that this +12V rail DOES
NOT drop to 0V when the ignition
is switched to START, otherwise the
engine will never start.
In our case, we used twin-core
shielded cable to connect between
the Ignition Timing Module and an
external MAP sensor mounted on the
firewall (see photo. Alternatively, you
can use automotive cable.
Note that the MAP sensor must be
wired with the correct polarity so
double-check the wiring and voltages
before making the final connection
to the this sensor. If you are using an
existing MAP sensor, then you won’t
need to make the supply connections,
since these will already be present (see
panel on page 73 last month).
Vacuum advance
78 Silicon Chip
an automotive shop or make your own.
As shown in Fig.24, a syringe is used
to vary the pressure. However, be careful
not introduce excessive pressure into the
MAP sensor as it may be damaged.
For 1-bar sensors, the syringe should
be pressed all the way in before connecting it to the vacuum hose. That way, you
can only “draw” a vacuum by pulling on
the syringe plunger (and not increase the
pressure). The maximum value is typically
around 200 but could be as high as 230
and is equivalent to a 4-4.5V output from
the sensor.
If you are using a 2-bar sensor, first
check the LOAD value at normal atmospheric air pressure. At 2-bar, this value
will be about 100 greater. Do not increase
pressure above this increased value (ie,
the atmospheric plus 100 value).
In this case (ie, for a 2-bar sensor), the
syringe should be inserted into the hose
with the plunger set half-way down. If you
cannot get a sufficient pressure range with
this, then you will have to do the pressure
changes in two steps: (1) for vacuum,
insert the syringe when the plunger is fully
in and draw out the plunger for vacuum;
and (2) for boost pressure measurements,
insert the syringe nozzle into the hose with
the plunger fully drawn and apply boost
pressure by pressing on the plunger.
During this process, be sure to always
monitor the sensor output level by setting
the Hand Controller to DIAG mode (the
second line shows the pressure sensor
LOAD value). If the value stops increasing as you apply more pressure, then
stop immediately. This indicates that you
have reached the maximum pressure that
the sensor can detect and any further
increases could damage it.
Plotting vacuum advance
Let’s assume that your car uses a
vacuum actuator and you have made the
necessary vacuum hose connections using
the T-piece. The vacuum advance plot can
A toggle switch will need to be
mounted on the dashboard if you want
to be able to select between two 11x11
maps. The wires for this are connected
to the S1 terminals on the Ignition Timing Module PC board. If you just want
one map (either an 11x11 or a 15x15),
then switch S1 is unnecessary.
Adjusting VR1
If you are using a reluctor pickup
siliconchip.com.au
to trigger the Ignition Timing Module,
the first thing to do is to adjust trimpot
VR1. That’s done as set out in the accompanying panel headed “Plotting
The Original Ignition Timing Values”
(see text immediately following “Reluctor adjustment”).
If you have plotted the RPM advance
curve (see panel), then most of the
parameters within the Ignition Timing Module will have already been
siliconchip.com.au
Value
151
155
159
163
167
171
175
179
183
187
191
RPM Site
Load Site
LOAD1
LOAD2
LOAD3
LOAD4
LOAD5
LOAD6
LOAD7
LOAD8
LOAD9
LOAD10
LOAD11
RPM0 Min RPM
RPM1
0
1000
6
6
RPM2
1400
18.5
17.5
16.5
15.5
14.5
13.5
12.5
11.5
10.5
9.5
8.5
RPM3
RPM4
RPM5
RPM6
RPM7
RPM8
RPM9
RPM10
Max RPM
RPM11
11.5
13
15.5
19
22
26
28
32.5
34
1800
2200
2600
3000
3400
3800
4200
4600
5000
Table 2: the LOAD site values are all made at a fixed RPM setting but do not
use the RPM1 value. Choose the RPM2 or RPM3 rev value instead.
RPM Site
Load Site
Min load LOAD1
LOAD2
LOAD3
LOAD4
LOAD5
LOAD6
LOAD7
LOAD8
LOAD9
LOAD10
Max load LOAD11
RPM0 Min RPM
RPM1
0
16
15
14
13
12
11
10
9
8
7
6
1000
16
15
14
13
12
11
10
9
8
7
6
RPM2
1400
18.5
17.5
16.5
15.5
14.5
13.5
12.5
11.5
10.5
9.5
8.5
RPM3
1800
21.5
20.5
19.5
18.5
17.5
16.5
15.5
14.5
13.5
12.5
11.5
RPM4
2200
23
22
21
20
19
18
17
16
15
14
13
RPM5
2600
25.5
24.5
23.5
22.5
21.5
20.5
19.5
18.5
17.5
16.5
15.5
RPM6
3000
29
28
27
26
25
24
23
22
21
20
19
RPM7
3400
32
31
30
29
28
27
26
25
24
23
22
RPM8
3800
36
35
34
33
32
31
30
29
28
27
26
RPM9
4200
38
37
36
35
34
33
32
31
30
29
28
RPM10
4600
42.5
41.5
40.5
39.5
38.5
37.5
36.5
35.5
34.5
33.5
32.5
Max RPM
RPM11
5000
44
43
42
41
40
39
38
37
36
35
34
Table 3: once you’ve completed Table 2, the rest of the table can be filled in by
adding or subtracting the RPM advance
steps to the RPM2 LOAD site values.
11 x 11
This is the result for a 1988 2-litre Ford Telstar.
Ignition Timing Map
45
Programming
RPM11
RPM9
RPM10
RPM8
RPM2
RPM1
LOAD11
If your car has an existing MAP sensor, then the load advance will have to be
plotted for each RPM
site. The table then
Engine Load
may not have a consistent change between
LOAD sites but its value will be dependent
on the ignition mapping.
RPM3
MAP sensor
RPM7
low if you know it should be this setting). The diagnostic setting should
then be checked to ensure it is set for
“interpolation on”.
Next, decide whether you want the
two 11x11 maps or the single 15x15
map and select this in the map setting.
Follow this step by selecting either
the 1° or 0.5° resolution and set the
debounce to 0.4ms.
Note that the latter may need to be
Because the vacuum actuator advance
system provides the same advance curve
at all RPM values, it’s quite easy to complete the table. In our example, the advance
increases by 1° for each decreasing LOAD
site. Table 3 shows the result.
RPM6
set. You will, however, need to set the
dwell for the ignition coil.
Conversely, if none of the parameters have been set, then you will have
to start from scratch. The various settings were detailed in the first article
in March 2007.
The first step is to place jumper LK1
in the settings position. That done, set
the number of cylinders for your car,
then set the edge sense to high (or to
Completing the table
RPM5
The Ignition Timing Module can now be
programmed with the timing map. This is
done using the VIEW setting, to enable
40
Advance
stepping through all
the
map sites.
(Degrees)
35
Normally, the distributor
would be ad40-45
justed so that the trigger
sensor
delivers
30
35-40
a firing signal at TDC
and
the
timing
map
30-35
25
25-30
entered on this basis. Alternatively,
you can
20-25
20
set the distributor to deliver
15-20 a firing signal
15
10-15
at a preset advance
or retard
value. The
5-10
10
entered advance values
would
need
to be
0-5
adjusted to account5 for this initial advance
or retard setting of0 the distributor.
Make sure that the distributor’s rotor
is still within its range for firing with the
values set in the programmable ignition.
If you do not change the settings much
RPM
beyond the original ignition timing curve,
then the rotor will remain within range to
allow the spark to bridge the gap within
the distributor cap to fire the spark plugs.
Finally, don’t forget to set the interpolation back to “on” after plotting the ignition
timing.
RPM4
This is because the lowest value must be
entered as the minimum load site.
LOAD1
LOAD2
LOAD3
LOAD4
LOAD5
LOAD6
LOAD7
LOAD8
LOAD9
LOAD10
now be made at a fixed RPM setting that
coincides with an RPM load site value.
However, do not to choose the idle load
point because the engine RPM will alter
as vacuum advance is applied and you
need to be able to adjust the throttle to
maintain the fixed RPM setting. Choose
the RPM2 site value instead (1400 RPM
in our example).
It’s now just a matter of plotting the RPM
advance against the pressure sensor LOAD
reading, as shown on the Hand Controller’s
display. To vary the LOAD reading, just
vary the position of the syringe plunger. Be
sure to adjust the throttle to compensate
for pressure changes, to maintain engine
RPM at the RPM2 site value.
In practice, the vacuum advance value
will stop increasing beyond a certain min
imum pressure value. This value should be
recorded as the minimum load. Similarly,
it will also cease changing at a certain
maximum pressure value and this should
be recorded as the maximum load value.
Enter these two values into the Minimum
LOAD and Maximum LOAD settings.
Remember that the maximum load
value can only be changed by increasing
the LOADS/SITE value. In our example
below, the LOADS/SITE value is 40 and
it ranges from a minimum of 151 (which
becomes LOAD1) through to a maximum
of 191 (LOAD11).
You can now insert the load timing
values into a table as shown in Table 2.
Note that the voltage output from electronic pressure sensors (including MAP
sensors) usually decreases with increasing
vacuum (lower pressure). This means that
the minimum load (maximum vacuum)
gives the lowest value on the DIAG display
and so this becomes the minimum load
site (LOAD1).
If, for some reason, the pressure readings are reversed (ie, the value increases
with decreasing vacuum), then the load
site numbering will have to be reversed so
that the maximum load becomes LOAD1.
May 2007 79
Using An Existing Coil Driver Module
I
N SOME CASES, it may be possible for
the output from the Ignition Timing Module to drive an existing ignition module (or
coil driver) instead of using the SILICON
CHIP Ignition Coil Driver.
There are a few things to sort out before
doing this, however. First, you must find
out the voltage sense used for the trigger
signal. This can easily be determined if the
trigger signal is produced by the ECU. For
other triggers, the sense may need to be
determined by trial and error.
Initially, you should set the Ignition
Timing Module’s EDGE setting set to
LOW. If it doesn’t work, try reducing the
470W output resistor in the Ignition Timing Module to 220W in order to drive the
original coil driver module.
If it still doesn’t work, try changing the
EDGE setting to HIGH. In addition, the
Ignition Timing Module output must be
inverted for positive edge firing by taking
the drive from transistor Q4 – see Fig.14
in last month’s article.
ECU trigger signal
What if you are using the trigger signal
from an existing ECU (or engine management unit)?
In this case, the output may normally
be at +5V, with a low signal then applied
to the ignition module to “charge” the
coil and a high-going signal subsequently
used to fire a plug. Alternatively, the signal
sense could be completely reverse to this.
Generally, it’s easy to determine the
voltage sense by measuring the voltage
from the ECU when the engine is idling,
using a multimeter set to read DC. The
meter will show the average voltage of
the trigger signal and so a normally low
output will give a voltage below 2.5V and
a normally high output will give a voltage
above 2.5V.
If the measured voltage is less than
+2.5V, then the plugs fire on the low-going
signal edges (ie, the ECU’s output goes
to +5V to “charge” the coil). In this case,
the EDGE setting in the Ignition Timing
Module should be set to LOW.
Conversely, if the voltage is greater than
+2.5V, it means that the coil charges when
the ECU output goes to 0V and the plugs
fire on the high-going signal edges. In
this case, the EDGE setting in the Ignition
Timing Module should be set to HIGH. In
addition, the signal output from the Ignition Timing Module must be inverted (by
taking the output from transistor Q4), as
shown last month in Fig.14.
set to 2ms if there are problems. This
higher debounce period is usually
required only for points triggers.
internal oscillator will automatically
be off when power is re-applied.
Dwell setting
If you intend using the unit as an
interceptor (ie, to modify the timing
output from an existing system), then
you will need to know both the existing pressure (MAP) sensor and RPM
ranges. This means that the Ignition
Timing Module should be set up so
that it initially makes no changes made
to the timing.
The range over which the existing
MAP sensor works can be found by
monitoring the LOAD value in the
DIAG display mode. First, record the
maximum load value by checking the
LOAD reading with the ignition on
but without the engine started. This
should be done only for normally
aspirated engines when the barometer
shows 1013hPa of atmospheric pressure (ie, the standard pressure at sea
level).
If you are at a higher altitude, then
add another 3% to the reading for
Now for the dwell setting. First,
attach an external spark plug to the
HT lead from the coil and connect the
plug’s metal thread to chassis (ground).
You can use a heavy-duty lead with
alligator clips at either end to make
this connection.
Now set the dwell to 0ms and set the
internal oscillator in the Ignition Timing Module to on. That done, increase
the dwell until the spark plug appears
to give its best spark.
Note that the dwell value will not
change until the Up switch on the
Hand Controller is released, so be
sure to release the switch each time
you make a change. Stop increasing
the dwell when the spark appears to
have reached its maximum intensity.
Once you’ve finished, switch off the
ignition and reconnect the HT lead
correctly so that the car will run. The
80 Silicon Chip
MAP sensor & RPM ranges
Small Engine Use
For some motorcycles, go-carts and
other engines, the ignition can be operated without using a MAP sensor. In this
case, the MAP sensor input on the PC
board should be connected to the 0V
(ground) supply pin provided for the
external MAP sensor. This will set the
programmable ignition at a single fixed
load setting.
In the settings, set the minimum load
to about 20 and the maximum load to
around 200. The ignition will then be
programmed for RPM load sites only
and at the fixed load setting. RPM
mapping would be over 11 RPM sites
(or 15 RPM sites if the single 15 x 15
map is selected).
every 300m above sea level to compensate for the loss in air pressure.
Alternatively, vary the reading by the
percentage that your local air pressure differs from 1013hPa. Increase
the reading for lower air pressure and
decrease it for higher air pressure.
For turbo engines, the maximum
reading from the pressure sensor is
found at maximum boost.
The minimum load value can be
found by driving the car downhill,
with the engine being overrun (eg, by
shifting to a lower gear than normal).
Note, however, that some cars tap the
vacuum line for the vacuum measurement before the butterfly valve that’s
located within the air inlet throat. In
this case, vacuum measurement is not
available on a fully-closed throttle
because the butterfly valve is also clos
ed. What’s more, just slightly opening
the throttle in this case will cause the
vacuum to reappear.
Once you’ve measured the minimum load value, enter it into the
settings as the Minimum LOAD. That
done, enter the Maximum LOAD by
altering the loads/site value so that
it is equal to or a little over the value
previously measured.
You now need to set the minimum
and maximum RPM values to suit
the range of the engine. Just set the
Minimum RPM value to the idle speed
and the Maximum RPM value to the
engine red line.
Note that the idle speed can be measured using the Programmable Ignition
System, with the display set to DIAG
to show the RPM.
siliconchip.com.au
Disabling Original Ignition Systems
I
F YOUR CAR already has a fully electronic ignition, it can be disabled
quite easily. Just disconnect the trigger sensor from the existing
ignition and connect it to the Ignition Timing Module instead.
Note that with some ignition systems, you will not be able to find a
suitable trigger signal that does not also include timing information.
In this case, you can only use the Programmable Ignition System
as an interceptor.
To disable a mechanical advance system, you first need to remove
and disassemble part of the distributor. Make sure you turn the
engine to TDC for cylinder 1 before removing the distributor.
The distributor must be stripped down to give access to the
mechanical weights, so they can be locked in place. We used an
aluminium plate to lock the weights to the minimum advance position. The
vacuum actuator hose is disconnected (to set the advance to the maximum
load setting) and the inlet to the actuator is plugged.
The vacuum hose is then connected to the manifold pressure
sensor that’s used with the Programmable Ignition System (eg, to
an external MAP sensor or the on-board Sensym sensor). Be sure
to reinstall the distributor with its rotor pointing towards the cylinder
1 high-tension terminal on the distributor cap.
The inlet to the vacuum
actuator is disconnected
and plugged.
Left: you can use a
simple aluminium
plate like this to
lock the mechanical
timing weights
inside a distributor.
It simply slides over
the distributor cam
and the timing weight
posts, as shown in the
photos.
Inside a stripped-down distributor,
showing the timing weight posts.
The aluminium plate prevents the posts attached to
the weights from sliding in their slots as the RPM
increases, thus locking them in position.
siliconchip.com.au
The partially reassembled distributor with the
advance plate back in position. Because the weights
are locked, the advance plate is now also locked.
May 2007 81
Programmable Ignition Software: How It Works
T
HE CIRCUIT DESCRIPTION in Pt.1
details many of the functions of microcontroller IC1 and explains its pin assignments. However, it doesn’t explain what
goes on inside the microcontroller, so let’s
take a closer look at this.
As we’ve already seen, the trigger signal
is applied to IC1’s RB0 input and the RB3
output subsequently switches off the ignition coil via the driver circuit to fire a spark
plug. We’ll assume here that a positive
signal edge at the RB0 input is the trigger
point for turning off the ignition coil.
Alternatively, this could be set for negative edge triggering instead by selecting
the EDGE LOW setting via the LCD Hand
Controller.
If the Programmable Ignition is set
for no advance or retard, the RB3 output
will go low and turn off the ignition coil
(to fire a plug) at the instant the RB0
input goes high. However, we also need
to “charge” the coil so that there is sufficient energy stored in it at the point of
“firing” so as to provide a spark. The
duration required to fully charge the coil
(to provide maximum spark energy) is
called the “dwell” period.
In order to provide this dwell period,
we need to predict when the coil is going to “fire” the next plug. Based on this
prediction, we can then determine when
to start “charging” the coil (ie, the start of
the dwell period).
Fig.25 shows the waveforms associated
with this. The top waveform is the trigger
signal applied to RB0 and the positivegoing edges are the firing points. The RB3
output on the waveform below this initiates
When setting the Maximum RPM,
adjust the RPM/SITE value so that the
maximum RPM is at or just over the
value required. You can also adjust the
minimum RPM setting to achieve the
best compromise for the adjustment.
Testing
The Programmable Ignition System
should now be ready for it first real
test. If you are using it as an interceptor, make sure that all the initial timing
map values are zero. You can ensure
this by pressing the Reset button on
the Hand Controller and waiting one
second so that RESET is shown on the
display. This will clear all the timing
82 Silicon Chip
Fig.25: the top waveform in red represents the trigger signal applied to the
RB0 input of the microcontroller in the Ignition Timing Module. The green
waveforms show the three possible RB3 output signal conditions.
the dwell period before firing occurs at the
positive edge of RB0.
To predict the next firing point, we use
a timer (Timer2) that counts up by one for
each 800ns between the positive edges
of RB0. This count value then becomes
the predicted count for Timer2 to indicate
when the next firing will occur. This is
true when the engine is running at a con-
stant RPM. However, when the engine is
increasing in speed, the firing point will
occur somewhat earlier than the previous
Timer2 count value.
Conversely, the firing point will lag
behind the previous Timer2 count value
when the engine is slowing down. These
changes are not significant since the
engine RPM value cannot quickly change
values to zero but only for the map
selected.
If you want to clear both the alpha
and beta maps, then you will need to
use switch S1 to select the alternative
map and press the Reset button again.
Of course, this only applies if the two
11x11 maps have been selected. The
15x15 map is fully reset to zero using
just the Reset switch, regardless of
switch S1’s position.
Now try to start the engine. If it
refuses to start, then the edge setting
(for the input trigger signal) may need
to be set to low rather than high.
Assuming that it does start, check
that it runs properly when the throttle
is quickly pressed to increase the revs.
If it falters, then the dwell period may
need increasing a little. Additionally,
the response to the low-speed RPM
setting may need to be increased by a
few hundred RPM above the idle speed
for best “take-off” acceleration.
Altering the timing a little from
its standard setting can sometimes
smooth out the idle speed if it tends to
be rough. It needs to be tested by both
advancing and retarding the existing
value to find the optimum setting. This
setting becomes the cranking advance
as well.
These two settings (for cranking and
idle) may not be compatible because
siliconchip.com.au
to any extent between successive input
trigger signals.
The dwell period can be initiated before
the next firing by doing some calculations using the Timer2 count value. If, for
example, the required dwell for the coil is
4ms, we can calculate that this period is
equal to a count of 5000. This is because
4ms requires counting 5000 of the 800ns
count periods. We can then start the dwell
at a count of 5000 before the next expected
firing point.
Initiating the dwell start and switching
off the coil to fire a plug requires another
counter. At every positive signal edge on
RB0, this second counter (Timer0) is set at
a value so that it will reach a count of zero at
the next expected firing position. Before it
reaches zero, the counter is checked every
204.8ms to see if it has reached the value
to start the dwell period. If this value has
been reached, RB3 goes high and remains
high until the counter reaches zero, at
which point RB3 goes low to fire the plug.
In order to advance or retard the firing
point, instead of setting Timer0 to fire at
the next expected RB0 positive edge we
either fire before this for advance or later
than this for retard. The dwell is also shifted
to start earlier as the timing advances or
later as the timing retards.
We need to make some calculations in
order to set Timer0 to a value that will give
the correct amount of advance or retard
in degrees. As we know, the Timer2 value
provides us with the count between firing pulses. Firing pulses occur twice per
engine revolution for a 4-cylinder 4-stroke
engine and three times per engine revolution for a 6-cylinder 4-stroke. So for a
4-cylinder 4-stroke engine, we divide the
Timer2 count by 180 because plug firings
are 180° apart, with two pulses per 360°
engine revolution. This gives us the count
per degree.
For the 0.5° resolution setting, we divide
by 360 instead of 180 to get the number of
counts per 0.5°. Similarly, for a 6-cylinder
engine, we divide by 120 for the 1° resolution setting because there are three firing
pulses per 360° engine revolution. The
number of degrees of advance or retard
required is then multiplied by the count
per degree value. This is then either added
to the Timer2 value to retard the timing
or subtracted from the Timer2 value to
advance the timing.
Timer0 is then set so that it reaches a
count of zero at this altered Timer2 value.
In this way, RB3 is controlled by Timer0
to set the dwell and fire a plug (when
Timer0 is zero) at the required advance
or retard setting.
Well, that’s basically how the system
works but in practice it’s a bit more complicated that that. In reality, there are two
timers: Timer0 and Timer1. Timer0 is used
to decide when to drive RB3 high (for the
dwell) and low (to fire the plug) between
each of the even-numbered positive edges
from RB0.
By contrast, Timer1 is used to drive
RB3 high and low between each of the
odd-numbered RB0 positive edges.
The reason we need two timers is because one of them might still be in use,
determining when to drive RB3, when the
next positive edge from RB0 occurs. If only
one timer was used, it could not be made
ready for the next firing sequence, as this
would affect the current firing position.
The only alternative is to use two timers,
as described.
Note that the firing point is calculated
from the previous RB0 positive edge and
may not exactly match the current RB0
edge when there is no advance or retard
adjustment. This can happen when the
engine revs are changing.
In this case, we fire the coil when the
RB0 output goes high. In addition, when
the timing is set to retard, the firing point
is recalculated when the next RB0 positive
edge occurs. If the timing is set to advance,
the plug will also be fired at the positive
RB0 edge if it has not already fired.
Another calculation made within the
microcontroller is for the engine RPM
value. This calculation first divides the
Timer2 count value by 16 and the result
is then divided into 93,750/cylinder for a
4-stroke engine. The result is a value for
the number of “100 RPM” increments.
For example, lets assume that Timer2
has a count of 37,500 and we are running
a 4-cylinder engine. The 37,500 is then
divided by 16 to give a result of 2343.
Dividing this value into 93,750/4 gives a
value of 10. This is the number of “100
RPM” increments which in this case is
equivalent to 1000 RPM.
This calculation is correct because
with a Timer2 count of 37,500, the period
between pulses is 30ms because each
count represents 800ns (800ns x 37,500
= 30ms). A 30ms period is 33.333Hz or
2000 pulses per minute. Since the engine
is a 4-cylinder 4-stroke, there are two
pulses per revolution and so the engine
speed is 1000 RPM.
Calculations are also required to convert
the RPM and pressure sensor values to
site values. These calculations are based
on the size of the map selected (11x11 or
15x15) and the minimum and maximum
RPM and load values. Further calculations
perform the interpolations for the advance
and retard values between both the RPM
and load sites.
the idle advance setting may make
the engine hard to start. If necessary,
the cranking timing can be made
independent of the idle timing by
lowering the minimum RPM setting
to below idle but above the cranking
speed. This will set the RPM1 sites
for cranking only. Cranking RPM can
be measured on the DIAG display
during starting.
Both the off-throttle and cruising
settings can generally be advanced
further to improve fuel economy. However, too much off-throttle and cruising advance can produce poor engine
response if extra throttle is suddenly
applied for acceleration.
Any pinging (detonation) problems
at high loads can be solved by reducing the advance. Note that with the
11x11 map, there are 121 individual
adjustments that can be made at the
various RPM and engine LOAD sites.
You will probably not need to alter too
many of these. Just adjust those sites
that need to be changed to eliminate
pinging (reduce the timing value) or
to provide more power under load
(increase the timing value).
In practice, the vehicle can be driven
with the Hand Controller connected if
you wish to fine-tune the adjustments
(get someone else to do the driving).
However, it’s important to note that
the Programmable Ignition will work
best when the Hand Controller is in the
settings mode, as selected using link
LK1 on the Ignition Timing Module.
The microcontroller then does not
spend time updating the LCD module
and this allows its program to be solely
devoted to updating the timing. As a result, any responses to manifold pressure
changes and RPM changes will not be
hampered by display updates.
The Hand Controller can be disconnected when all the settings have been
entered. Note that it should only be
connected or disconnected with the
power to the Ignition Timing Module
SC
switched off.
siliconchip.com.au
May 2007 83
|