This is only a preview of the December 2016 issue of Silicon Chip. You can view 45 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. Items relevant to "Automotive Sensor Modifier":
Items relevant to "Arduino-Based Digital Theremin":
Items relevant to "Voltage/Current Reference With Touchscreen, Pt.2":
Articles in this series:
Articles in this series:
Purchase a printed copy of this issue for $10.00. |
Trick your car’s ECU with this . . .
By John Clarke
Automotive
Sensor Modifier
With this Automotive Sensor Modifier you can change the signal
response of many of the sensors to improve your car’s driveability,
throttle response, handling and so on. It allows you to modify and
program the response of any voltage sensor in your car, without
prejudicing reliability or affecting the ECU in any way.
M
ODERN CARS have lots of sensors to closely monitor the engine and other systems and they provide information to the ECU (Engine
Control Unit) which controls the fuel
injectors and ignition timing, based on
this information.
Some of the sensor outputs you can
modify include the air flow meter,
oxygen sensor, accelerometers (or G
force sensors) used in stability control
and traction control, and the throttle
position sensor (TPS). For cars with
an electronic (drive-by-wire) throttle
rather than a throttle cable, modification of the TPS signal can literally
transform the way the car drives.
For example, you can alter the TPS
signal so that there is less pedal travel required to provide more throttle.
This will make the car feel as though
it has more power. And you can use
this Modifier to restore correct air/fuel
24 Silicon Chip
ratios after engine modifications, for
preventing turbo boost cuts or to alter other sensor signals for improved
driveability.
The Automotive Sensor Modifier is
especially useful for adjusting a sensor output after engine modifications.
The Modifier is then used to dial out
the change in a sensor output due to
the modification, to enable the engine
to run correctly. In particular, various
engine modifications or add-ons can
cause a sensor output to go beyond
the range normally expected by the
ECU. This could cause it to issue an
engine fault code that may result in
the engine being set to run in limphome mode. That means the engine
and automatic transmission (if fitted)
will be severely constrained until the
fault code is cleared.
The Automotive Sensor Modifier
takes a voltage signal and it can be pro-
grammed to produce a similar voltage
at the output but which is shifted up
or down in voltage level or changed in
some other way. The programming is
done using four pushbuttons in conjunction with a small LCD panel. Once
the programming is done, the Modifier
will do its job and the car will drive
as you want it to.
In a little more detail, the input voltage from the sensor is divided into
256 different levels called load sites.
Each load site can be independently
programmed to alter the output by a
set amount. The overall programming
of all load sites is called a map. So as
the sensor output changes in value,
the output voltage from the Automotive Sensor Modifier will produce a
modified voltage that follows the map.
Mapping is only one-dimensional,
altering the output voltage according to a single input. This does have
siliconchip.com.au
limitations compared to having two
inputs, where for example, mapping
can be for voltage from a sensor against
engine RPM. But a single dimension
interceptor is effective in many cases
when altering the response from a sensor such as an engine MAP (Manifold
Absolute Pressure) or MAF (Mass Air
Flow) sensor.
This Automotive Sensor Modifier
is the third in a series of our popular
voltage modifiers. The original Digital
Fuel Adjuster (DFA) was featured in
a 2004 SILICON CHIP publication titled
“Performance Electronics for Cars”.
The second modifier was the Voltage
Interceptor for Cars (described in SILICON CHIP, December 2009 and January
2010) which had a world-wide following by vehicle owners.
Specifically, the Voltage Interceptor
for Cars has been successfully used to
modify the MAF sensor output of the
3-litre Nissan Direct Injection diesel
engine. When these engines have modifications and operate under certain
driving situations, the MAF will produce out-of-range values. In response
to these out-of-range values, the ECU
sets the engine to run in limp-home
mode. The Voltage Interceptor tricks
the ECU into avoiding this.
However, all good things must come
to an end (or be superseded) and since
the kit for the Voltage Interceptor has
now been discontinued, it was time for
a new approach. This completely new
Automotive Sensor Modifier is much
simpler to build and does not require
Features & Specifications
•
•
•
•
•
•
•
•
•
•
•
Voltage input range: 0-5V
Voltage output range: 0-5V
Output adjustment: ±127 steps
Output adjustment range: ±0.53V to ±5V (see Table 2)
Adjustment resolution: 4.17mV to 39mV (see Table 2)
Input adjustment points: 0-255 between the upper and lower input setting
Upper input voltage limit: adjustable between 2.5V and 5V
Lower input voltage limit: adjustable from 0V to the upper adjustment minus 2V
Output adjustment response: typically 10ms to within 10% of the desired value
Bypass relay: signal bypassed until the supply voltage rises by 0.5V from when
power is first applied or the supply voltage exceeds 13.5V. Also switched by
pressing the View/Run switch.
Power Supply: 10-15V, 100mA
a separate hand controller. In addition, we have reduced the chip count
to just two (compared to eight in the
superseded design). And all controls
and the LCD panel are on a single PCB.
Setting up is simple and it is also
easy to transfer the adjustments of
one Automotive Sensor Modifier to a
second unit. This is most useful when
building a second unit for an identical vehicle.
Features
An important feature of the Automotive Sensor Modifier is that when
the map is set so that it produces no
changes to the output, then the output
exactly follows the input. That way,
when you first connect the Modifier
and before it is programmed, it will
not affect the running of the vehicle
in any way. Any subsequent changes
introduced by programming the map
values will smoothly alter the output.
Programming of the output mapping needs to be done with care and
often in conjunction with equipment
such as an air/fuel ratio meter to measure the effect of any changes. Adding in wildly varying values could
cause error codes issued by the ECU
or worse, engine damage.
The input to the Automotive Sensor
Modifier can range from 0-5V but most
sensors do not fully cover this voltage range. For example, a typical sen-
The PCB assembly is mounted inside a standard
plastic case which can either be installed under
the dashboard or in the engine bay.
siliconchip.com.au
December 2016 25
Parts List
1 double sided, plated through
PCB, code 05111161, 122 x
58.5mm
1 plastic case, 130 x 68 x 44mm
1 LCD module (Altronics Z7013,
Jaycar QP5512)
4 pushbutton momentary contact
switches (S1-S4) (Altronics
S1099, Jaycar SP0723)
2 tactile switches (S5,S6)
(Altronics S1120, Jaycar SP0602)
1 DPDT 1-5A 12V relay, RLY1
(Jaycar SY-4059, Altronics
S4150)
1 18-pin DIL IC socket
1 16-pin DIL IC socket (cut to
form a 16-pin SIL socket for the
LCD)
1 14-pin DIL IC socket (optional)
1 16-way SIL pin header
2 2-way pin headers, 2.54mm
spacing (JP1 & JP2)
2 jumper shunts
1 cable gland for 3-6.5mm
diameter cable
2 2-way screw terminal
blocks, 5.08mm spacing
(CON1,CON2)
4 M3 x 15mm tapped Nylon
spacers
9 M3 x 6mm pan head screws
4 M3 x 6mm countersink head
screws
2 M3 x 9mm tapped spacers (to
mount LCD)
2 M3 Nylon washers (to mount
LCD)
1 M3 nut
5 PC stakes (TP1-TP3, TP GND
& TP5V)
Semiconductors
1 LMC6484AIN quad op amp (IC1)
1 PIC16F88-E/P microcontroller
programmed with 0511116A.hex
(IC2)
1 LM317T adjustable regulator
(REG1)
1 BC337 NPN transistor (Q1)
1 16V 1W zener diode (ZD1)
2 1N0004 diodes (D1,D2)
sor output may only vary from 1.96V
(minimum) to 4.65V (maximum). With
the Modifier, you can set the input voltage range to be between the minimum
and maximum sensor values. In doing
this, a full 256 input load points are
available for mapping.
The LCD shows both the current input load site number and the adjustment value that’s set in the map. If
there’s no change, then the adjustment
value for that load site is shown as 0.
Changes to increase the output voltage
are positive and changes to decrease
the output voltage are negative.
Changes are made using the Up and
Down switches, in one of two modes:
(1) either in the Run mode (while the
engine is running) as each load site is
accessed in real time; or (2) in the View
mode where the load sites are accessed
using the Left and Right switches.
26 Silicon Chip
Capacitors
5 100µF 16V electrolytic
3 10µF 16V electrolytic
4 100nF 63V MKT
2 10nF 63V MKT
1 1nF 63V MKT
Resistors (0.25W, 1%)
2 100kΩ 2% 10-pin SIL 5-resistor
arrays (4610X-102-104LF)
(RA1,RA2)
1 20kΩ
1 300Ω
1 10kΩ
1 150Ω
5 1kΩ
1 120Ω
1 390Ω 1W 1 10Ω
R1 – see Table 2
Trimpots
2 10kΩ multi-turn top-adjust
trimpots (VR5,VR6)
2 1kΩ multi-turn top-adjust
trimpots (VR2,VR3)
2 100Ω multi-turn top-adjust
trimpots (VR1,VR4)
Where to buy parts
The PCB and programmed microcontroller for this design are available from
the SILICON CHIP Online Shop: www.
siliconchip.com.au
Circuit description
Fig.1 shows the circuit details. The
two ICs used in the Automotive Sensor
Modifier are a PIC16F88 microcontroller (IC2) and a quad op amp (IC1). The
microcontroller monitors the sensor
voltage and then produces a modified
output according to the programmed
map, in conjunction with quad op amp
IC1. IC2 also monitors the switches
and drives the LCD panel.
The sensor voltage is applied to the
INPUT terminal of CON1 and then
either directly through the normally
closed relay contacts of RLY1a and
RLY1b (when the relay is off) or in
modified form via op amps IC1d-IC1a
when the relay is switched on by the
microcontroller.
The relay is included so that when
the Automotive Sensor Modifier is
first powered up (and when it’s off),
the input signal is bypassed around
the Modifier circuit to the output. This
is done so that the engine ECU will
initially be directly connected to the
sensor so as not to issue a fault code.
This bypass mode allows the Modifier
circuitry to start up and then produce
the required output voltage.
IC2 monitors the battery voltage using a resistive divider at its AN4 input,
pin 3. When power is first applied, it
measures the voltage and stores the
value. IC2 then continues to measure
the voltage and when the supply reaches 0.5V above the stored value, the relay is switched on by IC2’s RA6 output
via transistor Q1 (the relay will also
be switched on if the battery is above
13.5V). When the relay is on, the sensor signal is fed to op amp IC1d via an
RC low pass filter comprising a 100kΩ
resistor and 1nF capacitor.
IC1d is configured as a unity gain
buffer and its output is fed to the AN1
input (pin 18) of IC2 via a 1kΩ resistor. IC2 converts the voltage to an 8-bit
digital value and each digital value becomes a separate load site ranging from
0-255. Each site can then be mapped
for an altered output.
Note that there is also a jumper (JP1)
that connects trimpot VR5 to provide
a voltage which can be used instead
of that from the sensor. This is used
when setting up and testing the Automotive Sensor Modifier.
The voltage at the AN1 input is fed
to IC2’s internal ADC (analog-to-digital
converter) and it has two references,
REF+ and REF-, which are adjustable
using trimpots VR2 and VR3.
There are limits in setting these two
reference voltages. REF- can be set
from 0V to 2V below REF+ while REF+
can be set between 2.5V and 5V. So for
a sensor that has a 1.96V minimum
and 4.65V maximum, REF- is set for
1.96V and REF+ set to 4.65V (these are
within the voltage limit restrictions).
The next part of the circuit involving
IC1c, IC1b and IC1a looks (and is) quite
complicated but we can simplify it in
siliconchip.com.au
siliconchip.com.au
December 2016 27
K
100 µF
16V
V+
10 µF
1 0 0 µF
1 0 0 µF
4
TP3
TP2
3
1
2
18
11
IC1d
10kΩ
1kΩ
13
12
14
4
AN4
REF–
A
A
ZD1
K
K
D1, D2
Vss
5
RB1
RB2
RB3
RB7
RB4
RB5
RB6
RA7
RA0
7
8
9
13
10
11
12
16
17
Vdd
15
RA6
6
PWM
14
1kΩ
VR1
100Ω
1kΩ
OFFSET
IC2
PIC16F88 -E
PIC16F88E/P
REF+
MCLR
AN1
1kΩ
+5V
AUTOMOTIVE SENSOR MODIFIER
A
D1 1N4004
20kΩ
VR3
1kΩ
MIN
VR2
1kΩ
+5V
1nF
(* RA1,2)
100kΩ
MAX
VR5
10kΩ
RLY1a
100kΩ
JP2
E
IC1c
LOCK
1 00 nF
9
10
B
8
(* RA1,1)
C
Q1
R1
(* RA2,2)
100kΩ
(* RA1,5)
100kΩ
S1
LEFT
1 0 0nF
1 0 0kΩ
IC1: LMC6 4 8 4 AIN
(* RA1,3) (* RA1,4)
100kΩ
S3
DOWN
5
6
1 0 0nF
S5
VIEW
/RUN
IC1b
(* RA2,1)
100kΩ
10nF
7
S6
ZD1
16V
1W
10Ω
100 µF
16V
S4
1
VR4
1 00 Ω
1 00 nF
7
15
IN
LM317T
A
K
300Ω
IN
10 µF
ADJ
OUT
Q1
BC337
RLY1
TP5V
V+
10 µF
120Ω
+5V
OUT
VR6
10kΩ
390Ω 1W
E
C
LCD
CONTRAST
B
RLY1b
REG1 LM317T
OUT
ADJ
16
5V
ADJUST
5
KBL
CONTRAST
3
1kΩ
* RA1 & RA2 ARE EACH 5x100kΩ ARRAYS
A
K
S2
RIGHT
8
TP1
D2
1N4004
ABL
+5V
150Ω
GND R/W
16 x 2
LCD MODULE
Vdd
2
10nF
14 13 12 11 10 9
UP
1
(* RA2,4) (* RA2,5)
D7 D6 D5 D4 D3 D2 D1 D0
EN
RS
RESET
6
4
100kΩ
(* RA2,3)
IC1a
1 0 0kΩ 1 0 0kΩ
2
3
V+
(CON 1 b)
OUTPUT
Fig.1: the Automotive Sensor Modifier is based on PIC16F88-E/P microcontroller IC2 which has the ability to adjust a sensor’s output at 256 points. The signal
from the sensor is fed in via relay RLY1a, buffered by IC1d and fed to IC2’s AN1 (pin 18) input. IC2 then produces a PWM signal at pin 6 which is then filtered
and fed to IC1b to produce the programmed offset voltage. This is then fed to pin 2 of IC1a and then to the output terminal via relay RLY1b.
20 1 6
SC
CON2
0V
+12V
POWER
INPUT
JP1
TEST
TP GND
100 µF
(CON 1 a)
INPUT
1
Max
Min
RA2 :
5 x 100kΩ
NC
JP1
4004
ZD1
NO
16V
OUT
IN
NO
150Ω
TEST
RA1: 5 x 100kΩ
100nF
D2
1nF
100nF
+
2 x100 µF
C
S3
DOWN
NC
RLY1
IC1 LMC6484
4004
R1
1kΩ
RIGHT
1kΩ
S4
S1
100Ω
VR4
C
+12V
REG1
LM317T
10Ω
Q1
390Ω 1W
0V
D1
BC337
1
LEFT
TP5V
100nF
300Ω
10kΩ
VR6
S2
UP
VR3 VR2
1kΩ 1kΩ
1kΩ
1kΩ
S6
VIEW
/RUN
100Ω
VR1
OFFSET
CONTRAST
20kΩ
3 x 10 µF
PIC16F88
10nF
1 16 15
S5
14
TP2
120Ω
IC2
LCD MODULE ABOVE
MAIN PCB, SUPPORTED
ON SPACERS
10nF
RESET
TP3
100 µF
10kΩ
CON2
+
LOCK
1kΩ
+
JP2
2 x 100 µF
100nF
+
C 2016
05111161
Rev.B
Automotive Voltage Interceptor
TP1
CON1
TP GND
VR5 10kΩ
+
Fig.2: follow this parts layout diagram and the photo to build the PCB. The LCD module plugs into a 16-way pin
header and is supported on two spacers. Make sure that all polarised parts are correctly orientated.
the following manner. Ignore IC1c and
IC1b for the moment. Now the buffered
output of IC1d is fed to an attenuator
consisting of two series 100kΩ resistors and a shunt 100kΩ resistor. This
attenuates the signal to one third the
original level. The attenuated signal
is then fed to op amp IC1a which has
a gain of 3, to make up for the loss in
the attenuator.
So why go to the bother of attenuating and then amplifying the signal to
bring it back to the original amplitude?
The signal needs to be attenuated so it
can be level-shifted by op amp IC1b, in
response to a filtered PWM signal from
pin 6 of microcontroller IC2. Without
the attenuation, the level shifted signal from IC1b would overload IC1a. Finally, IC1c is included to provide offset correction for the inevitable shifts
caused by the signal manipulation.
The amount of level shifting performed by IC1b (as varied by the PWM
signal) is set by the value of resistor
R1 which effectively forms a divider
with the 100kΩ PWM filter resistor.
When R1 is 100kΩ, the output can
be shifted by up to 5V in either direction. This means that a 0V signal can
be shifted up to +5V while a 5V level
could be shifted down to 0V. There are
some restrictions though. IC1a’s output can only range from between 0V
and 5V. So you won’t be able to shift
a 4V output to beyond 5V. Smaller
ranges of adjustment are available by
using lower R1 values and this also
provides finer adjustment resolution.
Table 2 shows the details.
Note that the red numbering used
for the 100kΩ resistors around the op
amps indicates two precision 5-resistor arrays. So, for example, the 100kΩ
resistor between pins 8 & 6 of IC1 is
RA2,2 (red), meaning that it is the second 100kΩ resistor in the second resistor array, RA2.
age. REG1 has resistors connected to
its OUT and ADJ (adjust) terminals so
that the output can be adjusted to an
accurate 5V using trimpot VR4.
The LCD module is driven by IC2
via its RA0, RA7 and RB4-RB7 outputs. These outputs go to data inputs
DB4-DB7 of the LCD module and to
its enable (EN) and register select
(RS) inputs.
Pushbutton switches are connected
to IC2’s RB5, RB6 & RB7 outputs. The
RB2 & RB3 inputs are normally pulled
high (to 5V) via internal pull-ups and
if any switch is closed, then one of the
RB2 or RB3 inputs will be pulled low
via the closed switch contact.
IC2 then checks to see which switch
is closed. It does this by taking RB5,
RB6 and RB7 low one at a time. The
closed switch will show a low on either RB2 or RB3 when one of the RB5,
RB6 and RB7 outputs is low. For example, when S1 is closed, the RB2 input
will be low when RB5 is low.
Power supply
An LM317T adjustable 3-terminal
regulator, REG1, provides power for
the LCD module, IC1 and IC2 and forreferences REF+ and REF-. A 10Ω resistor and zener diode ZD1 protect the
regulator’s input from excessive volt-
Building it
Building the unit is straightforward
Table 1: Resistor Colour Codes
o
No.
Value
4-Band Code (1%)
5-Band Code (1%)
o
o
o
o
o
o
o
o
1
1
5
1
1
1
1
1
20kΩ
10kΩ
1kΩ
390Ω
300Ω
150Ω
120Ω
10Ω
red black orange brown
brown black orange brown
brown black red brown
orange white brown brown
orange black brown brown
brown green brown brown
brown red brown brown
brown black black brown
red black black red brown
brown black black red brown
brown black black brown brown
orange white black black brown
orange black black black brown
brown green black black brown
brown red black black brown
brown black black gold brown
28 Silicon Chip
siliconchip.com.au
their respective holes. The two outer
leads will need to be bent down about
7mm from the regulator’s body, while
the centre lead is bent down some
5mm from the body.
Having bent the leads, drop REG1
into place and secure its metal tab to
the PCB using an M3 x 6mm screw
and M3 nut before soldering its leads.
Note: the mounting screw can later be
removed if it fouls the cable gland used
to pass the external wiring connections when the PCB is later mounted
in the case.
Trimpots & LCD header
since all parts, including the LCD, are
mounted on a PCB coded 05111161
(122 x 58.5mm). The assembly is
housed in a plastic utility case (130
x 68 x 44mm) and the switches and
LCD are low enough for the lid to be
attached without any clearance holes.
This means that the case is sufficiently sealed to keep dust and debris
away from the PCB. It also means that
any adjustments to the circuit must
be done with the lid off but that’s no
great hardship since the adjustments
are basically “set and forget”.
Fig.2 shows the parts layout on the
PCB. Begin the assembly by installing
the resistors. Table 1 shows the resistor colour codes but a digital multimeter should also be used to check each
value before it is soldered into place.
Diodes D1 & D2 (1N4004) can go in
next, making sure they go in with the
correct polarity. That done, install an
18-pin socket for IC2 with its notched
end orientated as shown, then install
IC1. The latter can either be directly
soldered into place or mounted via a
14-pin socket.
Leave IC2 out of its socket for the
time being; it’s fitted later, after the
supply rail has been checked.
Next, install 2-way pin headers for
JP1 (bottom, right) & JP2 (top, left), then
fit PC stakes to the five test points: TP1TP3, TP GND & TP5V. The capacitors
can then all go in. Note that the electrolytic types must all be orientated as
shown on Fig.2.
Transistor Q1 (BC337) is next on the
list, followed by regulator REG1. As
shown, REG1 is mounted flat against
the PCB with its leads bent down
through 90° so that they go through
siliconchip.com.au
Now for multi-turn trimpots VR1VR6. VR1 & VR4 are both 100Ω trimpots and may be marked as 101, while
VR2 & VR3 are 1kΩ types and may be
marked as 102. Similarly, VR5 & VR6
are 10kΩ types and may be marked as
103. Be careful not to get the trimpots
mixed up and be sure to install each
one with its adjustment screw orientated as shown.
The single-in-line (SIL) 16-way pin
header for the LCD module can now
be installed on the PCB. Solder the two
end pins first, then check that it’s sitting flush against the PCB before soldering the remaining pins.
Once it’s in place, mount a 16-way
SIL socket on the underside of the LCD
module (ie, with its pins soldered to
the top of the module). This socket can
be made by cutting a 16-pin (DIL16)
IC socket in half lengthways and then
mounting the two separate 8-pin sockets end-to-end on the LCD module.
Screw terminal blocks CON1 &
CON2, relay RLY1 and the six switches can now be installed. Note that S1S4 must be orientated as shown, with
the flat edge of each switch towards the
LCD module. S5 & S6 can be mounted
on the PCB with the correct orientation only.
Installing IC2 & the LCD
Before installing microcontroller
IC2 and the LCD module, it’s necessary to accurately set the +5V rail. To
do this, first apply power (12V DC)
to CON2, then connect a multimeter
between TP5V & TP GND and adjust
trimpot VR4 for a 5.00V reading.
Now switch off and install IC2 in its
socket. Make sure that its notched end
is orientated as shown in Fig.2. The
LCD module can then be installed by
plugging it into the 16-way pin header and securing it to two M3 x 9mm
tapped Nylon spacers, with a Nylon
washer added to the top of each spacer.
Begin by securing the two M3 x 9mm
spacers to the PCB using M3 x 6mm
screws (see Fig.2). Do these screws up
firmly, then plug the LCD module into
the pin header, slide the two Nylon
washers into place (ie, on top of the
spacers) and secure the assembly using
two more M3 x 6mm machine screws.
Fitting it in the case
The PCB is mounted inside the
case on four M3 x 15mm tapped Nylon spacers. That’s done by first using the PCB to mark out the mounting
hole positions in the base, then drilling the holes to 3mm. It’s best to use
a 1mm pilot drill to start the holes, to
ensure accuracy. The holes can then
be enlarged to 3mm and countersunk
using an oversize drill.
A hole is also required in one end of
the case for the cable gland, positioned
12.5mm down from the top edge and
centred horizontally. This hole should
also be initially drilled to 3mm. It’s
then reamed out to around 12mm to
accept the cable gland.
The PCB assembly can now be secured in position. First, attach the
four spacers to the PCB using M3 x
6mm machine screws. The assembly
can then be dropped into place and
secured using four M3 x 6mm countersink head screws which pass up
through the base.
Test & adjustment
Now for the test and adjustment
procedure:
Step 1: apply power and check that
characters appear on the display. If no
characters initially appear, adjust contrast trimpot VR6 until characters do
become visible.
Step 2: press and hold Reset switch S6
for four seconds until RESET is shown
on the LCD. This resets the map, with
all the adjustment values cleared to 0.
Step 3: install jumper JP1 and connect
a multimeter between JP1 and TP GND.
Adjust VR5 for a reading of 2.5V.
Step 4: connect the DMM between TP1
and TP GND and adjust VR1 so that
TP1 is also at 2.5V.
Step 5: connect the DMM between JP1
and TP1 and adjust VR1 for a reading
that’s as close to 0V as possible, then
remove JP1. Note: this adjustment sets
the Automotive Sensor Modifier’s output to follow the input.
Note also that any voltage applied to
December 2016 29
Table 2: Output Adjustment Range vs. Resistor R1
Adjustment Range
Adjustment Resolution
R1
±5V
39mV
100kΩ
±4.05V
31.9mV
68kΩ
±3V
23.6mV
43kΩ
±2.48V
19.5mV
33kΩ
±2V
15.7mV
24k
±1.3V
10.2mV
15kΩ
±1V
7.87mV
11kΩ
±0.697V
5.49mV
7.5kΩ
±0.53V
4.17mV
5.6kΩ
the input cannot by altered until the relay is switched on. When the unit is installed in a vehicle, the relay switches
on when the battery voltage rises after
the engine has been started, ie, as the
alternator begins charging.
However, if you are testing the unit
with a fixed 12V supply, this feature
may not be convenient. In that case, the
relay can be switched on by pressing
View/Run switch S5.
Using it
As stated earlier, the LCD lets you
view the input load sites and the corresponding output change values, as set
by pushbutton switches S1-S4.
On the top line, the LCD shows ADJUST followed the adjustment value
and either (∆V) or LOCK. The ∆V stands
for “delta voltage” and indicates the
voltage change made to the output. The
bottom line shows the input load site.
The ADJUST value can be any number between -127 and +127 and is 0
when there is no change made to the
output compared to the input. As previously stated, the voltage range depends on the value of resistor R1, as
shown above in Table 2. This means
that R1 also sets the adjustment resolution (or voltage steps).
If LOCK is displayed instead of (∆V),
it means that lock jumper link JP2
has been installed. This prevents any
changes to the adjustment values using the pushbutton switches.
If BYPASS is shown instead of ADJUST, it means that the relay is not
switched on and so the modified signal is not being fed through to the output. Instead, the input signal is directly
connected to the output. As a result,
when BYPASS is shown, the ∆V symbol is replaced with 0V to indicate that
the output hasn’t been changed by the
30 Silicon Chip
programmed adjustment value.
The lower line of the display shows
LOAD and then a number from 0-255.
Following that is either /RUN/ or
<VIEW>. The LOAD number shows the
current load site which is one of 256
possible sites evenly spaced between
the minimum and maximum input
voltages. The displayed load site has
the corresponding adjustment value
shown on the top line.
The RUN display shows input load
sites in real time as they follow any input voltage variation. You can observe
each load site by adjusting trimpot VR5
(if jumper JP1 is fitted).
The VIEW display doesn’t show the
input load sites as they vary in real
time. Instead, the input load site is selected by the Left and Right pushbutton
switches (S1 & S4). This allows the entire load site map to be viewed (and altered) by scrolling through each value.
The display is switched between the
RUN and VIEW modes by pressing the
View/Run switch (S5).
Up & Down switches
The Up and Down switches (S2 & S3)
are used to change the adjustment value for each load site. Each single press
of an Up or Down switch increases or
decreases the value by one step. Holding a switch down results in the value
changing by about four steps per second. After five value changes, the values increase or decrease in steps of five.
The Left and Right buttons change
the load site when in the VIEW mode.
As with the Up/Down switches, the
step rate increases when a switch is
held closed. These switches do not
operate in the RUN mode.
Pressing and holding the Reset
switch (S6) for two seconds immediately clears all load site adjustment values
to 0. The display briefly shows RESET
on the top line when the reset occurs.
Adjustment
Before adjusting the unit, you first
need to determine the voltage range
produced by the sensor whose output you wish to modify. That can be
done by connecting a multimeter to
the sensor’s output and checking the
voltages produced under various driving conditions. This should include a
wide range of throttle and engine load
conditions. Get someone else to do the
driving while you keep a record of the
minimum and maximum voltages produced by the sensor.
Next, connect a multimeter between
TP2 & TP GND and adjust VR2 for a
reading equal to the sensor’s maximum
recorded voltage. That done, connect
the multimeter between TP3 & TP GND
and adjust VR3 for a reading equal to
the sensor’s minimum voltage.
There are a couple of things to
watch out for here: (1) TP2 must be
set somewhere between 2.5V and 5V;
and (2) TP3 must be between 0V and
2V below TP2. This means that TP2
must be set to at least 2.5V, even if the
sensor’s maximum output is below
this. TP3 then must be set so that it is
at least 2V below TP2, even if this is
below the sensor’s minimum output.
Installation
Installing the Automotive Sensor
Modifier is relatively straightforward,
since there are just four external connections. Two of these are for power
(+12V and chassis earth), while the
other two “intercept” the sensor’s output. The sensor’s output is connected
to the Modifier’s CON1 input, while
the output from CON1 is connected
to the sensor’s ECU wire.
Note that the original sensor-to-ECU
connection has to be broken for the
Modifier to intercept the signal, ie, the
unit is installed in series with this lead.
Use automotive connectors for all
wiring attachments and be sure to
use automotive cable for the leads.
The +12V rail for the unit should be
derived from the switched side of the
ignition and a suitable point can usually be found in the fusebox. The connection to the switched ignition supply should be run to the Automotive
Sensor Modifier via a 1A inline fuse.
Use a circuit which is switched on by
the ignition but does not drop out during cranking.
siliconchip.com.au
An ELM327 OBD reader paired with
an Android smart-phone or tablet
can be used to help set up the unit. A
WiFi version will be required to pair
with an iPhone or iPad.
The best location to mount the unit
is inside the cabin, so that it remains
cool. If you do later install it in the engine bay, be sure to keep it well away
from the engine and the exhaust system so that it is not unduly affected
by heat. It can be secured in position
using suitable brackets.
Programming adjustments
In order to make real-time adjustments, you first have to ensure that
the mode is set to RUN. That’s done
by pressing switch S5. It’s also important to remove the jumper shunt at JP1.
Note that any adjustments made will
not take effect until the relay switches
on and the word BYPASS is replaced
by ADJUST on the LCD module.
Before going further though, a word
of warning: using the Automotive
Sensor Modifier could result in engine damage if the programming adjustments are not done carefully and
methodically. You have been warned.
The best way to tune an engine using the unit is to set the car set up on
a dynamometer and have a specialised
engine tuner make the adjustments. Alternatively, you can make initial adjustments under actual driving conditions,
using suitable instruments to monitor
the performance. This is best done on
a closed road, eg, a racetrack.
Be sure to get an assistant to drive
the car for you while you make the
programming adjustments and monitor the instruments. On no account
should you attempt to adjust the unit
yourself while driving.
An on-board diagnostics (OBDII)
reader will enable you to monitor the
performance. If you don’t have one,
you can purchase an ELM327 OBD
reader cheaply on eBay, typically
siliconchip.com.au
for less than $10 including postage.
It plugs directly into your car’s OBD
socket (located near the steering column) and pairs with an Android smartphone via Bluetooth (a WiFi version of
the ELM327 will be required to pair
with an iPhone).
By installing a suitable app on the
smart-phone (eg, Torque Lite for an
Android device – https://play.google.
com/store/apps/details?id=org.prowl.
torquefree&hl=en), you can monitor
various engine sensors and performance parameters, as well as check
for (and clear) fault codes. Note that
while modern cars use the standard
OBDII reader format, some older vehicles may require a specialised reader.
Changes are made at the load sites
as appropriate using the Up and Down
buttons to assign values. Note that the
load site values are likely to change
while making adjustments. To minimise this, try to maintain constant engine conditions during programming.
The unit locks onto the input value selected when an Up or Down button is
pressed so that the input load site will
not alter during an adjustment, so take
care to ensure that you don’t drift too
far off the input load site by changing
the engine conditions.
Releasing the Up or Down button
will show the current load site. At
this stage, it isn’t necessary to access
every input load site to make changes.
However, you must keep a record of
any sites that are actually assigned a
value of 0, since these must be left at 0
when you later interpolate between the
adjusted load site values – see below.
After mapping has been completed,
you may find that you are using only
a small range of adjustment values.
In that case, try reducing the value of
resistor R1. This results in larger adjustment values and increases the adjustment resolution. Of course, any
changes to R1 will require a complete
remapping of the load sites.
After making adjustments, there will
inevitably be load sites that were not
accessed and changed. This is because
there could be up to 256 individual
sites that may need adjustment and so
only a representative number of sites
are usually adjusted.
Interpolating the values
Switching to the VIEW mode lets you
check your mapping. You should have
already noted those sites which were
mapped at 0. Any outputs that have
Running the Torque Lite app on an
Android smart-phone paired with
an ELM327 lets you monitor a wide
range of engine parameters. This
screen grab shows just some of the
gauges that can be displayed.
a number other than 0 are obviously
sites that were changed.
The job now is to make changes to
the unmapped sites that sit between
the adjusted sites. This involves interpolating the values so as to smooth
out the changes between adjacent adjusted sites. Basically, it’s just a matter
of calculating the value of each step.
That’s done by dividing the difference
between two adjusted sites by the number of unadjusted sites between them
plus one.
As an example, Tables 3 & 4 show
the initial mapped values and the result after manually interpolating the
values. In Table 4, load sites 10, 11,
12 & 13 have values of 30, 0, 0 & 12
respectively. The difference between
the two adjusted sites is 18 (ie, 30 12) and there are two unadjusted sites
between them. In this case, we divide
18 by 3 (ie, 2 + 1) and this gives a step
value of 6.
As a result, load sites 11 & 12 would
be changed to 24 (30 - 6) and 18 (24 6) respectively, as shown in Table 5.
Similarly, for load sites 14-17, the
output values are interpolated from an
8 at site 14 to a 0 at site 17. Note that
site 17 was one that was mapped as a 0
and so this remains at 0. If the result of
December 2016 31
Table 3: Mapped & Unmapped Values
∆V
30
0
0
12
8
0
0
0*
0
Load Site
10
11
12
13
14
15
16
17
18
0* = load site mapped at 0; 0 = load site left unmapped
Table 3: initial values for load sites 10-18. The load sites with a value of 0 (ie,
11, 12, 15, 16 & 18) were left unmapped, while load site 17 was mapped at 0.
Table 4: Values After Interpolation
∆V
30
24
18
12
8
5
2
0
0
Load Site
10
11
12
13
14
15
16
17
18
Interpolated values shown in red – see text
Table 4: the load site values after interpolation. The interpolated values are in red.
the divsion isn’t a whole number, keep
the decimal places and round the result
for each load site to the nearest integer.
Finally, when mapping has been
completed, the Lock jumper link can be
installed on JP2 to prevent any further
changes. If you are completely satisfied
with the mapping, the LCD module can
then be removed from the PCB.
Modifying sensor outputs
As stated, the unit can be used to
modify any sensor that has an output
ranging from 0-5V. In particular, this
includes MAP and MAF sensors but
an exception here is the Karman Vortex air flow sensor, as this produces an
output frequency rather than a voltage.
Typically, you would use the unit to
modify a sensor’s output to improve engine response or performance, or simply to prevent engine fault codes occurring. You will need a separate unit
for each sensor you wish to modify.
Most of the time, an engine runs in
what is called “closed loop”. This is
where the MAF (or MAP) sensor and
the oxygen sensors are monitored so
that the correct amount of fuel is delivered to the engine via the injectors.
In operation, the oxygen sensor acts
as a feedback sensor to let the ECU
know whether the engine is running
rich or lean. This means that it’s possible to make changes to a sensor’s output but then find that there’s no change
in engine response. That’s because the
ECU is receiving feedback from the
oxygen sensor and adjusts the injector
signal accordingly to provide the air/
fuel ratio required.
Basically, the ECU has a set of maps
for each engine sensor and for the throttle position sensor and the injectors.
These are just tables of expected sensor outputs against engine RPM, tem32 Silicon Chip
perature, load and mixture. When the
engine is running, the ECU compares
the sensor maps against the actual sensor values. However, over time, the
ECU makes some changes to the map
(called trims) that are based on realtime engine running.
OK, let’s take a look at some of the
changes you can make:
(1) Changing The Oxygen Sensor Signal: when an oxygen sensor is work-
ing correctly, it will provide the ECU
with accurate air/fuel ratios. The ECU
then modifies the injector duty cycle to
match the oxygen sensor’s signal and
the signals from other sensors, to give
the desired air/fuel ratio.
It’s unlikely that a narrowband oxygen sensor signal can be successfully
modified, mainly because the sensor
signal appears more like a switch, as
it produces a sharp change in voltage
between lean and rich air/fuel ratios
about stoichiometric. The output of
a wideband oxygen sensor is also difficult to modify, because the sensor’s
expected output is determined internally by the ECU.
Note that a faulty oxygen sensor will
be flagged if the injector and MAF (or
MAP) sensor maps fail to correlate with
the oxygen sensor’s signal. This means
that if you make changes to the output
that go beyond what is expected by the
ECU, then an error code will be issued.
This not only applies to the oxygen sensor but to other sensors as well.
(2) Changing Air/Fuel Mixtures: as well as
operating in closed loop mode, many
engines also operate in open loop
mode under some conditions, during
which the oxygen sensor is not monitored. This usually occurs at or near
full throttle when the mixture is made
richer to provide extra engine cooling. Adjusting a sensor output, such
as from a MAF, will result in mixture
changes under such conditions, with
corresponding changes to engine performance.
You will need to make before and
after modification measurements to
ensure that the engine will not be running too lean or rich. If the mixture is
set too lean, the engine could run too
hot and damage the valves and pistons.
Conversely, running an engine too rich
can foul spark plugs, damage catalytic
converters and cause pollution.
(3) Reducing Turbo Boost Cuts: another
possible use of the unit is to restrict the
MAF (or MAP) sensor’s output under
high loads to prevent turbo boost cut.
You will need a boost gauge to correctly
carry out this modification.
It’s just a matter of using the unit to
alter the MAF’s signal so that the ECU
no longer reduces the boost above certain engine loads. By using the boost
gauge, the load points where the boost
is cut can be determined and the output from the Sensor Modifier reduced
to eliminate the boost cut as required.
(4) Throttle Position Sensor (TPS): electronic or drive-by-wire throttles (as distinct from cable-operated throttles) can
be modified to alter the way a vehicle
responds to throttle changes. This can
radically change the way the car drives.
Using the unit to increase the throttle voltage at low-throttle positions can
make the engine appear to have better
response, especially from a standing
start. Conversely, on more powerful
vehicles, reducing the throttle voltage
at low-throttle positions can make the
vehicle more docile. This could be especially helpful when moving off in
slippery conditions, where wheel-spin
could otherwise easily occur.
(5) Injector Changes: when larger than
standard injectors are fitted, the unit
can be used to reduce the air flow meter’s output so that the correct the air/
fuel mixture ratios are maintained. Reducing the air flow meter’s output will
thus allow the ECU to operate within
its normal range of input values, so that
it can control the injector duty cycle
and maintain correct mixtures.
(6) Air flow Meter Changes: installing a
larger air flow meter results in lower
air flow readings compared to the original unit. The Sensor Modifier can be
used to restore the signal to the normal
range of values expected by the ECU.
Finally, when you have completed
mapping, don’t forget to install the
SC
Lock jumper link at JP2.
siliconchip.com.au
|