This site has been superceded by the
new My16M site
ECU project home page
Latest 3rd november 2002
The new site (still under construction)
Generally ride the bike around with the new ECU and try and optimise the
map with the Optimiser.
Tidying up the loose ends so that I can offer the ECU to others.
- 6 Oct 2001
- The EPROM programmer ( kit from Altronics ) seems to be reading
24 pin proms ok. There are some flaws in the kit so I've had to do some mods
to correct it.
- 7 Oct 2001
- Picked up my bike from the shop, $1000 dollars thanks, ouch. Also picked
a bike stand. Had a quick ride then gave bike a wash and polish. Will have
to get myself a digital camera and put some shots of it in this site.
- 9 Oct 2001
- Pulled the ECU out of the bike. Took out the EPROM (27C512) and downloaded
its image. My programmer must be ok as when I put
back the EPROM and ECU the bike started ok. That was a relief. I would
have been just a little depressed if the bike was dead again.
Found some great info at FIM,
particularly their FAQ
My microcontroller development kit based on the AVR chip arrived.
- 13 Oct 2001
- Not much luck yet with the EPROM out of the original ECU. Some of the
basic structures like reset and interrupt vectors were not there. Might
be a mix of external memory ( EPROM ) and on chip memory used so currently
this path is stalled.
Added four wires to the back of the ECU plug. These are on pins 11
(PMS/TDSC 2), 28 (PMS/TDSC 1), 34 ( ground ) and 35 ( +12V and PMS/TDSC 3
). This will allow me to plug my ECU in parallel with the original ECU.
Looked at the signals from the PMS/TDSC with an oscilloscope. Not what
I expected. I was expecting a sinusoid packet, like they use for decribing
particles in quantum theory, for each of the 48 lugs on the timing wheel.
Instead there was a fairly pure sinusoid waveform with 1 cycle per
lug and a strange transient for the missing 49th and 50th lug. This was about
5V p-p with a +2V DC offset and 500Hz at idle.
- 21 Oct 2001
- The AVR cpu is proving simple to program. It is generating a pulse
train similar to the signal from the crank from its main loop. This signal
is being fed back into the Input Capture pin and some interrupt software
is timing these pulses and figuring out where the two missing pulses are.
In addition the Timer Output Compare interrupt is generating a pulse at a
fixed position in the pulse train.
Both these interrupts appear to be working as expected so we have the basics
of the ECU operational.
I've made up a circuit (wow 2 resistors and a transistor) to feed the crank
signal into the new ECU. Today I connected the new ECU in parallel with the
original and it successfully synced to the real crank signal. Here is a
picture of the new ECU taped to the rear
seat and a picture of the orignal
ECU with the shell off the connector. Here are two shots of the new
ECU sync pulse versus the crank signal - 1 2.
The lock on the crank signal seems rock solid with no jitter or misses.
- 1 Nov 2001
- Got stuck into the wiring harness of the ECU this week. I have taken
the current signals of interest, coil and injector outputs, throttle position
sensor, and added my own connector on these wires. I have also made a Y adapter that allows me to run my ECU in parallel.
My ECU now has some extra circuitry
to take these signals as inputs so that I can monitor their timing. That's
a Tooheys OLD in the background :-).
I captured some more signals on the CRO. The top trace is the sync output
from my ECU. The engine was free revving at about 2500rpm, putting the 2nd
sync at about 9 1/2 divs ( 5 ms/div ). 2nd trace is taken after my input
circuitry, as the CPU will see it, its clamped by a 4.7V zener.
Here is coil1, coil2,
Last week I programmed the ECU to dump the timing signals out to a serial
port. I also noticed that the throttle position sensor is producing about
500mv at idle. This sounds way off. Could explain why the current setup pings
- 13 Nov 2001
- My ECU has been able to log the timing data of the orginal ECU while
the bike is running. I also found by accident that I could fool the current
ECU into thinking that the engine was running with the test signal that
my ECU generates. This has allowed me to run the orginal ECU through its
envelop and get timings for various RPMs and throttle settings.
I've also wired two high voltage power transistors onto my ECU and managed
to produce a healthy looking spark. Here is the signal on my transistor as viewed by my inupt
circuitry. Thats at 1 ms/div ie 20,000 rpm!!. Of concern is the relatively
high voltage across the transistor due to its on resistance of ~ 1.4 ohm.
If need be I can parallel this transistors.
- 24 Nov 2001
- We have ignition!.
Finally got the software to the stage where I could reliably produce a
2ms pulse where I wanted within the engine sync pulses. So I hook my ECU
on the bike ( in parallel with the existing ECU ) and compare my spark pulse
with the existing spark. Turns out that I'm about 5ms advanced. My timing
estimate was based on the assumption that the engine sync was from a 48 pulse
train with 2 gaps. In fact there are 46 pulses plus two gaps. FIM are either mistaken on their
FAQ or the Ducati's are a little different. I adjust my software and things
are looking pretty good.
Now for the real test. I cut the wire on one cylinder spark output from
the original ECU and allow my ECU to fire that spark. Fire up the bike. Bingo
we have a reasonable idle, perhaps a little rougher than usual. I allow
the bike to idle for about a minute and shutdown. The output transistor is
feeling a little warm. Looks like I will need to add a 2nd transister to
drive the sparks. I try the same with the other cyclinder and it's ok also.
Unfortunately I'm unable to start the engine when trying to drive both sparks.
It looks like at cranking speed the engine sync output was to low in amplitude
to drive my simple circuitry. I also will have to address the turn on transient
at some stage. Got a nice pop out of the left exhaust when I turned the ignition
on, although that was after some unsuccessful cranking.
- 06 Dec 2001
- Had a small setback last week when the CPU module I was using on the
prototype failed. Not sure why but the on board 5V regulator was given
out over 10V. Work on the next version, using discrete components is progressing
well. It was always intended that the prototype would be a hack just to
determine what circuitry was required. The new version is intended to be
boxed and permanent on the bike.
- 08 Dec 2001
- Been a busy week building the Mk2 ECU following last weeks unfortunate
setback. However the new ECU is better than before. I have added two extra
drive transistors for injectors, the new input circuitry is in and I've added
a output control circuit to enable/disable the drive transistors. This
will give the 2 sec of fuel pump when ignition is turned on etc. I've added
to the software such that it generates pulse for injectors and a deadman
timer for the output control circuit. As far as I can tell on the bench
it all looks good. Perhaps tomorrow I'll throw it on the bike after I've
had a ride.
- 02 Jan 2002
- It's been a while since the last update but things have progressed
well. Today I had the bike idling, just, with my ECU providing all the spark
and injector pulses.
The last month has been taken up mostly with software development for the
ECU. It turned out to be fairly tricky to get it to work on the low engine
signal at cranking speeds. The development process was rather tedious also.
It was write the software and test on the bench with a pure sine wave and
some test mode software tweaks to pretend its sees the sync in the signal.
Then when it looks ok take it down to the bike with the oscilloscope and
video camera. Then capture the video onto the computer and study the signals
frame by frame and try and figure out why its not working as it should.
I finally hit on the idea of capturing the waveform of the engine sync signal
using the computer. Now I could simply play the sound to test the software
under simulated real conditions and not wear the bike's starter motor out.
I finally ending up with two seperate modes of operation. From startup
to about 1200 RPM, the ECU is performing continous analog to digital conversions
on the engine sync signal, and following the rise and fall of the sinusoid
signal in real time. Once the speed and amplitude have increased sufficiently
it goes into edge triggered mode which is more efficient computationally.
Yesterday I run the bike driving both the sparks but not the injectors.
It idled well and responding to small throttle blips well. Today I ran the
bike running both the sparks and the injectors. It idled slowly and did not
respond to any attempt from the throttle to increase the idle speed at all.
To be expected though, was probably too lean and when the throttle was
opened with no adjustment to injection it just got leaner.
- 20 Jan 2002
- Tricky stuff realtime software. Although the ECU was working perfectly
when it was generating fixed duration pulses, when I made the duration
of the injector pulses variable, strange glitches and invalid pulses where
being generated. I finally managed to debug the software. As is usual it
was just a matter of a couple of lines of code needing to be fixed.
I have a potentiometer on the unit so that I can manually adjust the mixture.
The idle was much healthier and I was able to blip the throttle and run
the engine to over 2500 RPM. It had the occasional miss. Overall the engine
seemed smooth and responsive. I even thought the idle was smoother than normal,
however that may be a slightly subjective opinion.
There is still a lot more software development ahead. However I'm going
to switch back to the hardware side of things. I want to transfer all the
extra functions across to my ECU, things like the control of the relay for
coils and fuel pump etc. The next goal is to run without the other ECU.
- 25 Jan 2002
- Ta Da ! Got the bike running with the original ECU completely
out of the picture.
Turned out to be relatively simple. All I had to do was to control two
relays, so it only required two transistors and a few diodes. The hard
part was trying to figure out what the circuit was in this area. I had a
schematic and a wiring list that proved to be both inconsistant with each
other and incorrect.
So what's missing.
- 1) The Map
- I need to determine the spark advance and injector pulse width across
the entire throttle/RPM operating envelop. I have some data already
but I think I need to have a ride with my ECU logging data from the original.
- 2) The other inputs.
- The original ECU uses air temperature, air pressure, and oil temperature
to provide an adjustment to the mixture. I could accomodate these or ignore
them and allow the rider to provide the adjustment, in a similar way that
a pilot of a light aircraft adjusts the cruising mixture.
- 3) The Tacho
- Of course you can't ride without a tacho. Adding this is simple.
Maybe it can also function as a voltmeter when the engine's not running.
- 22 Feb 2002
- Damn software development can be a pain!. Its been a bit slow. This
last month has seen enhancements to the pulse generation logic and redistribution
of the pulse calculation times. I've also just got serial input going so
that I can give it commands to adjust time etc, and the EEPROM writing code
is working. I just need to put these two together. It will be simple coding,
just need to figure out what I want to do here.
I took a few more recordings of the bike, this time with a bit more revving
and variation to make sure the ECU would track it correctly. This part is
looking really good.
- 6 Mar 2002
- Added a command line interpreter to the ECU. I can now type in cryptic
commands like c0 for choke off, c1 for choke on, d5000 for a 5ms injector
I've nearly finished a Win32 MFC App to hide all the command line nasties
behind an easy to use, intuitive, GUI. That's mostly working now. A few more
days to polish up the software at both ends and its back to the bike again.
- 16 Mar 2002
- First ride with the new ECU!
I've put together a quick and dirty GUI to configure the ECU. Here's a
screen capture of the ECUController. Ok
I'm not a GUI designer. The grid at the top left is RPM(x) vs Throttle(y).
You select the portion of the map that you are interested in from the grid.
The ECU sends the data for that map location and updates the horizontal
sliders at the right. You then tweak the sliders to what ever you like and
then press the Update EEPROM button to save the new data. The vertical
sliders are the 7 analogs (only throttle so far) to the ECU updated near
realtime. The check box at the lower right is the choke ( gives a 50% increase
to injector period ). It all seemed to work ok on the bench but for some
reason refused to talk to when put on the bike. Probably need to use a proper
RS232 chip. Cranking and cranking the bike wouldn't start. I'd had a ride
less than an hour ago and it felt warm. I plugged in my Psion 5MX. It's talking
to the ECU ok. Type "c1" to turn the choke on and the bike starts straight
away. "c0" to turn the choke off. Duck tape my ECU on top of the battery
and we're off for a short ride. First up round and round the cul-de-sac about
5 times. Bike feels ok and is reasonably responsive. Quick stop to grab
my mobile phone and we're off doing all the little streets in the area. Up
hill if possible. Fortunately all the streets around here end in cul-de-sacs.
Overall I was pretty impressed. Bike was generally smooth and responsive
although there where times where you could feel the mixture was not close
to where it should be, but hey the current map was a guess anyway. I probably
took it up to 5000 rpm in first( no tacho ) and cruised at 60km. No sign
of the misses of the original ECU unit. This is looking very promising.
Here is the bike after the ride and
here is the ECU on the bike and a close
up of the ECU. The reason the ECU
is mounted up there at the moment is it doesn't fit where it should. The
original ECU is about 165mm x 100mm x 45mm. Most boxes you buy are around
170mm x ?? x 55mm. I'm going to try and shoe horn it into the smaller box
of 120x95x35mm. Also I was unsuccessful at getting the connector of the original
ECU. I tried with the local AMP man but they're an obsolete part.
- 29 Mar 2002
- Added some circuitry to drive the tacho. The tacho seems to have some
circuitry of its own as all you need to do to drive it is give it a pulse
stream. Added some extra software for the tacho. Seems to work ok although
its over reading. It displays 1800 when the engine is doing 1700. I think
its the 46/48 teeth timing wheel that is not being compensated for. It will
do for now.
Removed the default map out of the program memory as memory is getting
a bit tight. The map is now stored in EEPROM and must be downloaded seperately.
Already tried to start the bike before loading a map. Had a strong smell
of fuel as a result but fortunately no big bangs.
- 15 Apr 2002
- Off to the dyno today. As if the Weber Marelli ECU sensed its demise,
it gave a poorer than usual performance in the slow peak hour ride to Ten
Tenths. Unfortunately putting the bike on the dyno was to prove more of a
learning experience than imagined and I don't think I was able to get anywhere
near the data I had hoped for. A number of factors conspired against me.
I've still to analyse the new map and see if I got anything useful data out
of the exercise. Some good points are
- 1 - The CO exhaust sensor did not fit properly.
- I was unable to get any reasonably information about the mixture
so we had to rely on maximising the torque instead.
- 2 - The torque output of the dyno is anything but a smooth readout.
- The power pulses of the V twin coupled with the update frequency
made it difficult to gauge if it was increasing or decreasing.
- 3 - The control sofware was not a good fit to the real world situation.
- We'd setup the bike up in a particular section of the map. However
while I was tapping away at the keys trying to adjust the mixture and spark
advance, the engine would drift into another section of the map and invalidate
what I was doing.
The bad points are that it is a rather stressful procedure on the bike and
rider. Most of my exhaust seems to have a slight tinge now. I'm sure the
bike was missing more on the way home than on the way there. Fortunately
the infamous Roper will be servicing my bike next week so its it good hands.
- The new ECU performed flawlessly throughout, excluding the lack of
a good map.
- The noise from my bike while overtaking in the higher gears that
I assumed was pinging. Yep that's pinging alright. Did quite a bit of pinging
today fortunately not more than a few seconds. Some portions of my map had
too much spark advance.
Looking forward I think that I need to go back to trying to data log the
current unit. I'll do I few rides with my unit in parallel with the current
unit and try and get a complete map that way. Then going back to my unit
with a good map I want to add some dislay and buttons onto the handle bars
so that I can monitor and tweak while riding.
- 29 Apr 2002
- I've mounted my ECU in parallel with the original and with special
software been able to log the timing data. It was quite easy to get all the
data points I needed. All I did was apply the rear brake and apply throttle
for a few seconds. Two laps around the block was all I needed. Fixed the
squeal from the rear brake at the same time. I now have to analyse the
data and put it in a form suitable for my unit. From next weekend I hope
to be completely on my control unit on a permanent basis.
- 4 May 2002
- I think I'm finished with the Weber Marelli unit. From now on I'm riding
with my ECU. The map I came up with from the data logging doesn't feel
as good as the first guess I had but I'll improve it bit by bit. I wired
in the oil temp sensor so that it will know when to choke the bike for starting.
I apply increments of 1/8 of the injector duration depending on the degree
of cold and then an extra 1/4 if less than 1000 RPM.Starts surprisingly well.
I've also made the tacho alternate between RPM and throttle position so
that I can tell what part of the map the bike is operating from.
- 12 May 2002
- My ECU is still on the bike and generally it is performing well. From
the hardware point of view it is performing flawlessly. I still need to add
in the air temperature and pressure sensor. This is a trivial exercise. I
just need to wire it up. Also an input from the battery may be useful. The
battery voltage has an effect on the mixture as a higher voltage opens the
injectors more quickly. Apart from those issues, the hardware is complete.
The software needs a little more enhancing. I only interpolate spark and
injector timing in one direction at the moment. Spark is interpolated in
the RPM direction and injectors in the throttle direction. This is resulting
in a few discontinuities as the engine moves across the map. I need to interpolate
spark and injectors in both directions.
Work has started on a module that will be mounted on the handle bars and
allow the rider (me) to modify the ECU timing in realtime. It will have a
16 character by two line LCD display, a number of buttons and a potentiometer
More on the bike performance. I haven't had too many trips on the bike
yet. Two trips of about 10km each are the only ones of significance. There
are a few operating points where the bike feels constipated. It will struggle
up to 3000 RPM, then take off as the engine moves into another section of
the map. This is purely a matter of optimising the map further and fixing
the interpolation that was mentioned earlier. There is no sign of the hiccups,
while cruising at 3000-4000 RPM, that plague the Weber Marelli unit and I
haven't had the idle drop off. Not yet anyway. This could also be due to
the fact that my bike is currently idling faster than it used to at about
1500 RPM. I don't want to fix this just yet incase I need to go back to the
original ECU. The faster idle is because I have the spark a bit more advance
- 26 May 2002
- Last weekend was a stuff up. I completed the software that interpolates
data points from the map. Unfortunately the extra mobility of some of the
pulses uncovered some deficiencies in the pulse generation. I only managed
to go about 50 metres down the road before I noticed problems. The motor
would reach about 2000 rpm and then lose power. A rogue injector pulse on
the right hand cylinder was completely flooding that side. After nursing
it back home and turning it off, vapours could be seen eminating from the
RHS exhaust. The CRO confirmed that the RHS injector was sometimes being
turned on for all the time.
This week I have sorted out the problem and bike is performing reasonably
well. The new interpolation has really smoothed out the problems of 2 weeks
ago. Also coming along well is the ECU command module that will mount on
the handle bars. It is driving the LCD (Dick Smith provides a data sheet
that tells you half of what you need to know) and monitoring the buttons
and potentiometer. Hopefully by the end of the week I'll have it interfaced
to the ECU. It should really help trying to sort out the map while riding.
- 2nd June 2002
- Here it is, The Optimiser. Looks a bit
tacky I know but unfortunately I have no style. It will probably look just
as tacky on the bike when I figure out where I'm going to mount it. It's
a bit hard to make out but the first line says "Optimiser V1.008". That's
as far as I go in terms of product management. The second line says "T
3.64 RPM 0200". The first number is the throttle position, ( 0 - 7.99 ),
the next is obvious. I can press the left button and cycle through to two
other menus, the Spark Advance menu and the Injector Duration menu. While
in these menus I can turn the potentiometer to tune the engine and then program
the new value back into the map.
The weather and other commitments have conspired against a road test today.
That and the fact that the LCD shorted out because of metal dust from the
case work. Its working now though. I'll spend another week fine tuning
the user interface before I try it next weekend. Hopefully I'll figure out
where to mount it by then. I'm thinking of just taping it on top of a sponge
on the fuel tank. There doesn't seem to be enough space on the triple clamp.
- 10th June 2002
- It was a long weekend and I was determined to get some time on the
bike. Saturday I had the first ride with the Optimiser, so I headed off
towards Wisemans Ferry. It didn't take long to realise that even with the
Optimser it was not going to be easy to tune the bike in practise.
Firstly the throttle does not get opened much in the normal cruise. If
you imagine the throttle can give values from 0 to 8, idle is 0.9. Cruising
about 60-70 kmh only uses around 1.5. The only time you see 2 or 3 or 4 are
the momentary times that you accelerate from start. Its difficult to do any
adjustments at these times.
The bike did not feel particularly inspiring with the current map. To
make matters worse after about 10k the bike died completely. I check the
fuses and gave them and the relays a jiggle and also the wiring harness to
my ECU and it came good. I turned around and after about 1 km and a bump,
it died again. Another jiggle and it came good again and got me home. Rather
fustrated and depressed after that ride.
Armed with new insight into the throttle values I decided to have another
go at interpretting the data from the Weber Marelli unit. This time I imported
it into a spreadsheet and generated some graphs. I generated a new map for
my controller. Funny how each time I reinterpret the same data I end up with
a different map.
Today I have another ride and this time the bike feels really good. Obviously
the new map is a whole lot better than the previous. There is one problem
though, I'm getting an occasional miss on the left cylinder. It's that rogue
injector pulse again. Not as bad this time as it only occurs at certain combinations
of throttle and RPM. Damn it's been difficult to get the software to handle
this seemingly simple task. I've already had two goes at it. Oh well,
I got all week to sort it, this time for sure. The lure of having the bike
even better next weekend will provide more than enough motivation. BTW I
covered over 60 km today without any other problem.
Some pictures taken with my new digital camera - My bike after todays ride, the Optimiser one the fuel tank, the ECU on where the back seat was and some
exhaust pipe discolouration due,
I think, to this rogue injector pulse.
- 16th June 2002
- Took the bike up the Putty road today. I'm still getting a miss at
low power settings but a lot better than last week. At higher speeds, cruising
at 90kmh+ it's near perfect. Just as I was crossing the Colo river I had
another failure. I lost power in one cylinder. The bike had been running
well up until then and I was looking forward seeing how it went on the windy
uphill road to Colo Heights. I was robbed I tell ya.
The problem was easily located. One of the output transistors had broken
its leg. Either due to handling, or just the bike's vibrations and the
weight of the heatsink, metal fatigue had taken its toll. I couldn't fix
the problem so I reconnected the standard ECU and continued my ride. That's
the purpose of a prototype, identify weaknesses of design. When I layout
a board I'll have the transistors bolted down.
- 29th June 2002
- I added some new menus to the Optimiser so that I can monitor where
the pulses are being generated. This is so that I can debug the misses that
are occuring. The result is that I have been able to reduce, but infortunately
not eliminate, the miss.
The bike is now running fairly well, having taking me to Wisemans Ferry
and back with no problems today. I would rate my ECU to be on par with the
Webber Marrelli in terms of misses. Still have a bit of sorting with the
map but generally the bike is performing well.
Getting a bit tired of software for the moment so I'm going to focus on
laying out a PCB.
- 13th June 2002
- Last weekend I had a ride up to Wollombi. It was a round trip of 250km
with the bike running better than ever. The fuel light just started coming
on, so it seems I'm getting similar economy to the Weber Marelli. The only
change made since the last ride was a slight modification to the injector
advance. Because of earlier glitches, I had moved the pulses away from
the problem area. Now that the glitches are gone I moved the pulses back
to where they should be. Seems to make a little improvement to the bike.
The advance curve of the injectors the Weber Marelli uses seems strange.
It's not a smooth advance with RPM like the spark advance. It instead moves
quickly from one value to another from 2000 to 3000 rpm. I wonder if they
are trying to avoid a problem spot with their software.
This last couple of weeks I've been laying out the PCB and putting together
some schematics. Here is the layout that is
nearly complete. The unit will fit in the same case that the Optimiser is
using at roughly 3.5"x4.5"x1.5". I've settled on the Centronics 36 pin
connector, same as what printers use, and it will fit on the 3.5" edge.
Also here is the preliminary schematics.
There are some errors in component labels but other than that it is fairly
- 28th June 2002
- Another round trip of 250km with the bike running well. Perhaps a little
lethargic. It took 10.3 litres for 245 km or about 4.2l/100km. Looks like
I was a bit on the lean side today. It would be interesting to see if I
can keep the economy and improve the responsiveness with a software accelerator
I've started to add barometric compensation to the software.
I think I've got cold starts just about sorted. Need to go a little richer
for the cranking and a little leaner when its started.
I've received two circuit boards for the ECU. I have one populated but
have not done any tested on it yet, so fingers crossed that there aren't
too many errors in the layout. You can see what it looks like here and if you that way inclined here's the layout of the board.
- 3rd August 2002
- A marathon 7 hour session re-doing the wiring harness on the bike to
accomodate the new ECU. The harness looks
a real mess at the moment. Some cable ties and tape should sort that out.
After finishing I connected up the Weber Marelli and fired the bike up.
Starts ok so I warm it up for a minute and shut it down, disconnect the
WM ECU and connect up my ECU. Instant start and its running well. Rev it
a few times, seem to have the throttle connected ok.
I'm obviously on a roll so I think I'll retire for the day. Next week I'll
tidy up the harness and start on the software again.
Find one error so far in the new ECU. Wasn't a layout problem, more the
circuit I thought I had was wrong. Fortunately it only takes a small change
to the way I orientate two components to fix the problem. No need to redo
- 11th August 2002
- The new hardware and the wiring harness have passed their first ride
with flying colours with another 250km ride to Wollombi. On this trip I
was accompanied by Hendrik Gout, who described the road as rough. The only
mishap was when the sponge that was keeping the Optimiser off the fuel tank
departed just before reaching Wollombi. I spent the last couple of km holding
the unit off the tank. I should have stopped to pick it up because on the
way home there was no sign of the sponge at all. What's the world coming
to when someone makes off with your sponge.
I've added another menu to the Optimiser to allow me to dial in a barometric
adjustment. This worked well as I richened the bike by about 5% and the
bike felt a lot more responsive. The next step is to have the adjustment calculated
in reponse to the air pressure and temperature. This should be straight forward,
however I'm currently fighting the hardware. It doesn't seem to scan the
analogs as expected. This week's task will be to sort out whats happening
here. Then I can finish the software off.
- 31st August 2002
- The software for atmospheric compensation is complete. The pressure
sensors and temperature sensors are giving me the correct values as a
ride up to Kurrajong heights showed the pressure drop from 1018 mBars going
over the river at the base, to about 950 mBars at the peak. Now that I'm
adjusting for atmospheric conditions I will need to do another dyno session
soon to recalibarate my map.
The ECU is nearing the stage where I can offer it to others. I'm putting
together a new site that will have furthe
details and some information about how it works.
I've built a second ECU as a backup and as an aid to further development.
I've also build a small circuit board that interfaces the ECU to a PC using
the serial port.
- 22nd September 2002
- Enhanced the software in the Optimiser so that it would automatically
present the correct portion of the map. This is to make it easy to make adjustments
to the ECU's timing. I got the bike on the dyno again yesterday. This
time we were able to get the exhaust gas analyser to give correct readings.
Colin, the dyno owner, was impressed as to how quickly I was able to set
a point on the map. Colin would adjust the dyno to hold the engine speed
and I would then hold the throttle open the correct amount, using the bar
weight and my palm as a friction lock. I'd then going into the Optimiser's
injector menu, turn the pot till I got the correct mixture, store the new
value and move onto the next throttle setting. The first pass through
2000, 3000, 4000, 5000, 6000RPM, with about 6 throttle points per, took only
half an hour including a cooling off period.
Had one exciting moment when at 5000RPM and winding on full throttle the
bike suddenly lost power and backfired. I think I experienced this once
on the road a few weeks ago when I gunned the bike in first gear. Turns out
one of my map entries had dropped a zero at some stage and rather then
giving me a 10ms injection, only gave me 1ms. I found this error while extrapolating
the dyno data into map entries we didn't cover - 1500, 7000, 8000 RPM.
It was amazing the bike had been running as well as it was. There were
some entries in the map which were very lean at 15-16:1 and some rich areas
around 10. On the road the bike is now noticably smoother. There is still
some hesitation to throttle and the bike struggles around 5000RPM. When it
gets to 6000RPM it really takes off. There is still some work to be done
on the spark timing as this was hard to judge on the dyno. I have some data
provided by Carl Allison for spark advance that I will apply to my map and
see how the bike goes.
- 3rd October 2002
- Added rev limiter to software. Currently hardwired to 8200RPM. That
was an easy two lines of code.
Put the Weber Marelli unit back on, to take the bike into work. I haven't
had it in for over 3000km so I was interested to see how the bike performed.
Surprisingly the WM performed very well that day, didn't even miss at
all. The WM certainly wins in terms of instantaneous response to throttle
and seems to have more power. This is to be expected at this stage, as
all the tuning I have done has been purely under static conditions. I do
believe my unit is smoother overall and does not suffer any missing at 3000-4000
rpm or anywhere else. Currently when snapping the throttle open, my unit
gives a half second hesitation. All this will be addressed of course in time.
Next stage of development will include a throttle pump simulation and will
also automatically richen the mixture for acceleration.
I've bought a Bosch 0258 104 002 oxygen sensor that I will have fitted
this next week. Initially it will be used to adjust the map, perhaps automatically
with the Optimiser. Push a button and the Optimiser will adjust the timing
to set the fuel/air ratio. Then I'll incorporate the sensor properly with
the software. I'll have to brush up on my control and feedback systems
theory. Maybe some fuzzy logic, the logic you use when you don't know what
you're doing. I also should be able to ditch the current barometric software
and sensors when using the oxygen sensor. This is because they are both there
to achieve the same goal of correct combustion. It would be nice to keep
both, unfortunately I can't fit both into the program space available.
- 8th October 2002
- Installed the oxygen sensor, wired it into the wiring harness and modified
my ECU to accept the new input. After a not so short ride up to Cessnock
and down the Putty Rd, all indications are the sensor is working as expected.
At the moment I just have a raw hex number displayed on the Optimiser.
Turns out the mixture goes lean when opening the throttle past 5/8 full open.
I think that explains the performance relative to the original ECU mentioned
in the last entry. This may mean I don't have to do anything fancy to
improve the throttle response.
- 12th October 2002
- Here's a picture of the oxygen
fitted on my bike and here's a picture
of the Jaycar Exhaust meter attached to the Optimiser. I was going to
mount it in a more permanent manner in the fairing somewhere but that was
looking complicated with routing the wires under the tank so I went for the
I've enhanced the Optimiser to automatically tune the mixture using feedback
from the oxygen sensor. It uses a binary search type of algorithm, for instance
if the mixture is really lean it will repeatedly add 10% to the mixture until
it is rich, then it goes towards lean with 5% decrements then towards
rich at 2.5% etc. It seems to work on the stand with the idle mixture. Tomorrow
I take it for a run and try and fix those lean spots.
- 20th October 2002
- The auto tuning software works as expected. However using in practise
on the road still is not ideal. After about 30 km of freeway riding, using
the rear brake to hold the rpm constant against the throttle, I found that
I had no rear brake left. Fortunately it came good again after it had
cooled down. I've got another idea I think may work better. It is relative
easy to hold the throttle open, but hard to keep the rpm constant at the
same time. So what I'll try is starting with a low rpm, open the throttle
the required amount, and allow the bike to accelerate to red line and
then repeat for other throttle settings. This way I can tune a whole row
at a time. I'm still in the middle of writing the software to allow this.
I've finished laying out a new board for the ECU. I've added a few extra
capacitors to filter the noise from firing the spark. I've also allowed
for a Motorola MPX4100 air pressure sensor. This means the ECU can replace
a 15M controller also.
- 3rd November 2002
- The second version of the PCB has been populated and works a charm.
There are no known errors in the board. The accelerator pump software is in
and appears to be working. I no longer so the mixture go lean as I open the
throttle quickly. It is more effective down low so there may be a bit more
tweaking needed. I feel the time is right to announce the public availabilty
of the ECU so I'm going to focus on the new web site for a while.
The new site (still under construction)