Fuel Injection – A Brief Piece On How It Actually Works

I’ll start this one off with a little story.

One day, at the spare parts counter, was a man trying to buy a clutch lever for his Guzzi V50 or similar (I forget, not important). Steve, our Guzzi expert, was telling the man how he could buy a Pantah one and have it simply modified to suit. The man was having trouble with this, prompting him to say, "I just don’t understand how it’s going to work". This seemed to provoke the smart arse in Steve (never hard to do), who replied "Mate, I don’t understand how the TV works, but every night I go home and the news is on".

The implication being, it doesn’t matter if you understand how it works, you can use it anyway just fine. And this is about the best way I can start a discussion on electronic fuel injection.

I was going to outline all the different systems, history and give diagrams, etc, on how it all works, but really didn’t see the point. If you want to know all that, there are plenty of thick books on the subject. I’m not going to write that much. The information given relates to the Weber Marelli systems, covering all ECUs - P7, P8, 1.6M, 1.5M, 5.9M and Bosch Motronic 2.0, 2.2 and 2.4. The F650 BMS system will be much the same also. What follows is how the digital electronics go about making it all happen.

So, let’s start with a "map" to see what’s there. The map contains the info the control software uses to tell the injectors how long to open for, and the ignition circuit when to fire the spark plugs. The ECU itself is just a little, specialised control system computer, totally unaware that it is making a motorcycle go vroom vroom. The map is different for each bike model – capacity, state of tune, etc, whereas the same ECU can be used, with the appropriate map, in any bike (or car, truck, boat, etc) designed to work with it.

The following is the "map" information, as printed out by Duane Mitchell of Ultimap, incorporating Fuel Injected Motorcycles. This is how his software displays the map info in an easy to read form, and the map in question is from a Cagiva Gran Canyon. This is a Ducati 900 cc engine, of the Monster "small valve" variety, fitted with the same injection hardware as the 900 SS/Mie, but being run by a Weber Marelli 1.6M ECU (the rectangular one with the rubber plug on top). The Ducati 900 SS/Mie used the smaller 1.5M ECU.

FUEL MAP (milliSeconds) THROTTLE
7.7 7.7 8.2 9.1 7.5 10.2 8.3 8.7 9 9.1 9.7 9.9 10 9.9 9.6 8.6 80)
7.7 7.7 8.3 9.1 8.1 10.2 7.7 10.2 8.4 9 9.6 9.7 9.5 9.2 9.3 8.1 60)
7.7 7.7 8.3 8.8 7.8 10.4 7.4 9.3 7.9 8.1 8.7 8.6 8.5 8.3 8.2 7.2 48)
7.7 7.7 8.2 8.8 7.8 10 7.4 8.6 7.3 8 7.9 8 7.6 7.4 7.5 6.6 40)
7.5 7.5 8 8.5 6.6 9.1 7 7.3 6.4 6.8 6.8 6.7 6.4 6.4 6.2 5.5 32)
7.3 7.3 7.6 7.8 7.1 7.9 6.1 6.1 5.3 5.2 5.3 5.2 5.2 5 4.9 4.5 25)
7.1 7.1 7.1 6.4 5.9 6.4 5.5 4.9 4.4 4.5 4.3 4.3 4.3 4.3 4.3 4 19)
6.6 6.4 6.7 5.4 5.3 5.4 4.8 4.4 4.2 4.1 3.9 4 4 4 4 3.7 15)
5.2 4.9 4.8 4.8 4.6 4.3 4 3.7 3.6 3.5 3.5 3.3 3.3 3.2 3.2 3.2 12)
4.8 4.7 4.6 4.2 3.8 3.9 3.7 3.5 3.4 3.3 3.2 3.1 3.1 2.9 2.9 2.9 10)
4.2 4.1 3.9 3.6 3.4 3.5 3.3 2.9 2.7 2.6 2.5 2.4 2.4 2.4 2.4 2.4 7)
3.8 3.9 3.7 3.4 3.3 3.2 2.8 2.6 2.4 2.4 2.3 2.3 2.3 2.3 2.3 2.3 6)
3.8 3.7 3.5 3.3 3.2 2.9 2.6 2.4 2.2 2.2 2.2 2.2 2.2 2.2 2.2 2.2 6)
3.9 3.3 3.1 2.9 2.8 2.3 2.1 2.1 2.1 2.1 2.1 2.1 1.9 1.9 1.9 1.9 4)
3.4 3.1 2.7 2.4 2.4 2.1 2 2 2 2 1.9 1.9 1.9 1.9 1.9 1.9 3)
2.8 2.4 2.4 2.2 2.1 1.9 2.6 2.3 2.3 2.3 2.3 2.3 2.3 2.3 2.3 2.3 3)
1000 1200 1500 1800 2000 2800 3400 3800 4600 4800 5800 6200 6800 7200 7400 8600 RPM
 
REAR MAP (milliSeconds) THROTTLE
0 0 0 0 0.4 -0.5 0.6 0.1 0.4 0.4 -0.2 0.1 -0.1 0 0.1 0.1 80)
0 0 0 0 0.9 0 1.5 0.3 0.5 0.3 -0.1 0 0 0 -0.3 0.3 60)
0 0 0 0 0.7 -0.3 1.2 0.1 0.5 0.5 -0.1 -0.1 -0.1 -0.1 -0.2 0 48)
0 0 0 0 0.6 -0.3 0.8 0.2 0.6 0.3 0.1 -0.1 0 -0.1 -0.1 0 40)
0 0 0 0 0.8 -0.2 0.7 0.4 0.5 0.3 0 0 -0.1 -0.1 -0.1 0 32)
0 0 0 -0.1 0.5 0 0.1 0.2 0.3 0.3 0 0 -0.1 0 0 0 25)
0 0 0 0 0.3 -0.3 0.2 0.1 0.2 0.2 0.1 0.1 0 -0.1 -0.1 0.1 19)
0 0 0 -0.1 0.3 -0.1 -0.1 0.1 -0.1 0 -0.1 -0.1 -0.2 -0.1 -0.2 0.1 15)
0 0 0 -0.2 -0.3 -0.2 0 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 12)
0 0 -0.1 -0.1 0 -0.2 -0.2 0 0.1 0.1 0 0 0 0.1 0.1 0 10)
-0.1 0 -0.1 0 0 -0.1 -0.1 -0.1 0 0 0 0 0 0 0 0 7)
-0.1 0 -0.1 0 0 0 0 0 0 0 0 0 0 0 0 0 6)
-0.1 0 -0.1 0 0 -0.1 0 0 0 0 0 0 0 0 0 0 6)
-0.1 0 0 0 0 0 0 0 -0.1 -0.1 0 0 0 0 0 0 4)
0.1 0.1 0.1 0 0 0 0 -0.1 -0.1 -0.1 0 0 0 0 0 0 3)
0.1 0.1 0.1 0 0 0 0 0 0 0 0 0 0 0 0 0 3)
1000 1200 1500 1800 2000 2800 3400 3800 4600 4800 5800 6200 6800 7200 7400 8600 RPM
 
SPARK MAP (DEGREES) THROTTLE
9 10 14 17 18 24 27 30 33 34 34 34 35 36 37 35 80)
9 9 13 15 16 22 25 27 29 30 33 33 34 34 35 36 60)
9 10 13 15 16 22 25 28 30 31 34 34 35 36 36 39 48)
9 9 11 14 15 20 24 27 32 32 35 36 37 38 38 40 40)
8 8 9 12 13 20 24 27 33 33 37 39 40 41 42 43 32)
8 8 9 11 13 19 25 28 33 34 37 39 42 43 44 45 25)
8 8 8 9 11 18 26 31 35 36 38 40 42 44 45 45 19)
8 7 7 8 10 17 27 33 38 38 39 41 43 45 46 46 15)
7 7 7 8 9 16 27 33 38 38 39 41 43 45 46 46 12)
7 7 6 7 8 16 26 31 36 37 38 39 42 43 44 46 10)
7 6 6 6 7 15 25 30 34 35 37 38 41 43 43 46 7)
7 6 5 6 7 14 24 28 32 34 36 37 40 42 42 46 6)
7 5 5 5 6 13 23 26 30 31 35 36 38 40 41 45 6)
6 4 4 4 6 12 20 23 28 28 32 34 36 38 38 41 4)
6 4 4 4 5 11 18 21 25 26 31 33 35 36 36 39 3)
6 4 4 4 5 10 17 20 24 25 28 30 31 33 33 37 3)
10 12 15 18 20 28 34 38 46 48 58 62 68 72 74 86 RPM x100
 
TRIM FACTORS - INJECTION
TEMP (DEGR.C) -55 -43 -31 -19 -7 5 17 29 41 53 65 77 89 101 113 125
COOLANT TRIM 42% 41% 37% 35% 25% 16% 12% 7% 4% 1% 0% 0% 0% 0% 0% 0%
AIR TEMP TRIM 0% 0% 10% 9% 8% 4% 1% -2% -2% 0% 0% 0% 0% 0% 0% 0%
 
AIR PRES (Mb) -> 500 561 622 683 744 805 867 927 988 1049  
TRIM -> -17% 0% 0% 0% 0% 0% 0% 0% 0% 0%
 
AMBIENT COOLANT AMBIENT AIR AMBIENT PRESSURE --------REV LIMIT--------
65 deg.C 53 deg.C 561 milliBAR (LOWER 8998) (UPPER 9202)

We’ll work through it in stages, following the layout of the map.

FUEL MAP (milliSeconds)

Pretty self-explanatory really, this is the map which gives fuel rates, based on RPM and throttle position. All the Weber Marelli and Bosch Motronic systems work on this principle, which is called N-alpha. N for RPM, alpha for throttle angle. The RPM and throttle positions each have 16 ‘break’ points (Bosch Motronic has 18 RPM points), at which fuel injection times are given. Well, what the software sees in the map aren’t actually milliseconds of time numbers like shown above. They have a fuel number (in hexi-decimal values) which correspond to fuel injection pulse duration. Expressed as a percentage of the maximum time available, this is then often referred to as "duty cycle".

These break points are totally adjustable, and vary due to the maximum RPM of the engine and variance in fuel requirement. They are generally always closer together at lower RPM, usually every 500 from 1,000 upwards, and tend to space out above 6,000 RPM. Same with throttle opening, lots at lower throttle, with only two or three above 45 degrees – in this case, 48, 60 and 80. 90 degrees is never used, as the throttles only get to 83ish degrees usually. Often though, you will get a couple of points rather close together (such as the 4,600 and 4,800 on the shown map), normally due to sharp changes in fuel requirement. This is generally caused by wave or pulse tuning effects and their variance with RPM. Some bikes have these in the midrange or even top end – this Gran Canyon is an example of this, with two sets of points within 200 RPM (46-48, 72-74), and then a gap of up to 1,200 RPM.

With each RPM and throttle break point intersection giving a fuel number, there are 256 individual fuel points on a map. There is something very important to remember about these 256 points.

They are all totally independent of each other. This is the true beauty of digital control systems, totally free of the dependant relationship constraints that are intrinsic to mechanical or analogue electronic systems. Just brilliant.

The value at one point has no influence at all over any other point, nor is there any constraint over the number that can be used, within the limits of zero and 17 milliseconds maximum (for the Weber Marelli system, Bosch Motronic is 16 ms I think).

In practice, this means that you can make one point very lean, the point next to it very rich. If you know what you are doing, it is very easy to make a chip that gives good economy, rideability and performance. Why? Because the fuel mixture is either correct, too lean or too rich. It’s that simple. The correct mixture can vary over a range of maybe +/- 5% from my experience, and the actual requirement varies with each engine cycle, as combustion is an often inconsistent thing, along with the surrounding conditions. This N-alpha method of fuel requirement calculation also introduces error, as it does not measure the air entering the engine directly, as most car systems do nowadays. However, car engines have much more stringent emissions standards than bikes currently, and need the extra accuracy. Additional errors are introduced through variances in injector flow rate, fuel pressure regulator settings, throttle position sensor setting, even voltage drops in wiring looms.

The fact that each fuel point is independent also means that someone trying to sell you two chips – one for performance, the other for economy – is a dickhead. Pure and simple. Economy on cruise is easy, and totally unrelated to performance at higher throttle openings/RPM. Generally, this is the realm of the chip maker who just adds or subtracts fuel over the entire fuel map. Arrow chips are usually like this – their 996 chip is just a std 996 chip with 8% more fuel over the whole fuel map. If it’s a Weber chip then it’s done with a copy of software Duane stopped selling in the mid nineties more often than not. Not exactly rocket science. It also goes to show that most riders can’t tell the difference between a bit too lean and a bit rich. As long as it’s not misfiring, it’s ok. Which is a bit depressing, really.

From the above map, for instance, if the engine is doing 4,600 RPM, with a throttle opening of 10 degrees, the injectors will open for 3.4 milliseconds, disregarding other trims. The number is probably not 3.4 milliseconds, maybe 3.38 or 3.43, etc. It is just rounded in this instance. For an RPM or throttle angle that is in between the given set points, the number is interpolated (three-dimensional average) using the surrounding points. Easy for a smart little computer to manage, and they are getting much smarter with each new model.

Next is the REAR MAP (milliSeconds). This is an offset map from the first map, and gives a fuel injection time variance from the front map. This is due to the variation between cylinders in the dynamic situation of a running engine. Variances in cylinder temperature (especially on air cooled engines), airbox flow to each inlet, exhaust design, etc create a different fuel need for each cylinder. In this case, the biggest variation is 0.6 ms, on top of a base time of 7.3 ms, so about 8%. The offsets on the std maps are generally not that big, with Duane’s remapped maps sometimes having far greater offsets after he has tested with a lambda probe in each header pipe. Sometimes the offsets are large enough to make you think something is not quite right, but that’s just the dynamic variation between cylinders on a running engine.

This offset means these engines can be considered to have injector firing that is "sequential", a term used in car circles to define the style of injector firing. Car engines are usually run with "batch" firing of injectors, meaning a 6 cylinder engine will have, say, 2 batches of injectors, with all 3 (one injector per cylinder, total of 6) in each group opening at the same time. This works quite well, but opening each injector individually at a given point in that particular cylinder’s cycle is far better. This is where the term sequential comes in. The 5.0 litre HO Mustang engines were always sequential in their operation, something of a much quoted high point technically (and something that helped that engine perform very well given it’s design limitations). More expensive to produce in terms of ECU and software, but ultimately better. In real terms, a batch controller is all that’s needed for a twin cylinder bike to be called sequential.

The P7 ECU, used on the 851, 907 and very early 888 (first 500?) doesn’t have an offset map; neither does the Bosch Motronic used on the BMWs, both 2 and 4 cylinder. How much of an issue this is I’m not really sure. My 851 would be a better running bike with a well-mapped P8 ECU I’m sure, but the advantage over a well-mapped P7 would probably be minor. The key would be the "well mapped" (not just Brad mapped) bit in reality.

SPARK MAP (DEGREES)

Another fairly self explanatory map, this works on the same principle as the fuel map, except it is ignition advance. Again, each point is totally independent of all others. You can see the extra advance for low throttle openings – similar to the old vacuum advance feature fitted to car distributors. This map is a bit low in this regard – many spark maps have lots of low throttle ignition advance by 3,000 rpm – with up to 60 degrees advance in some cases. Check the "851 work in progress 4" report for the 851 spark map – which illustrates this point far better. Some maps have low advance at the 1,000 RPM (the lowest RPM line) and 3 to 6 degrees throttle opening points – which is where the ignition advance will be when the engine is cranking with the fast idle pulled on. Just to make cranking a little easier. A running engine will rarely use these points, so you can manipulate areas like this as required to create a certain condition or result.

TRIM FACTORS – INJECTION

All the fuel injection times given in the maps are the base values, to be used in the mathematics that works out just how much fuel is injected. The math’s trims the map number using inputs of coolant temperature, air temperature and air pressure. These are known as "environmental" trims, and compensate for things such as a cold engine or very hot day or running at high altitude.

They also show up idiot bike journos, who make comments like "the system still needs a choke for cold starts", not realising the thing on the handlebars that used to be a choke lever is now just a fast idle lever. This is just a mechanical way of holding the throttle open a little more than the usual idle setting to raise the idle when the engine is cold. A few of the BMW models – F650GS/CS, K1200 and R850/1200C use a ECU controlled throttle stop stepper motor to do this fast idle bit automatically, giving the rider one less thing to think about (but also taking control of the idle out of the rider’s and technician’s hands).

In this table you can see the trims are listed from –55 to 125 degrees Celsius. A bit unrealistic, as 125 would render the rider most likely dead (or very dehydrated indeed) and –55 would probably freeze the petrol. But, they have to cover all options, and putting the value in is not that much extra work.

The actual trim factors are something I have been looking at quite a bit lately, with the playing on my 851. Duane and I have found there is not really any consistency between the Weber Marelli maps put in to models of even the same year build. 916 and 996 have rather different trim factors. This Gran Canyon map has zero factor for all air pressure points, which would lead to very rich running problems if the bike was used at high altitudes. Some of the Guzzi chips were like this also I believe. Duane rather cynically puts this down the how the particular Weber man felt on the day, and it is hard not to agree with him, to some extent at least.

The math’s for these is (simplified) as follows

Fuel injection time x coolant trim x air temp trim x air pressure trim

To an example ; starting the bike with an ambient temperature engine on a cold morning of 5 degrees will see a coolant temp (in this case of an air cooled engine, the cylinder head temp usually) trim of +16%, and an air temp trim of +4% (remembering there is no air pressure trim given on this map) this gives an overall trim factor of

1.16 x 1.04 = 1.2064, or 20.64%.

All trims are multiplied, not added, in the mathematical calculations. So, if we were cranking the engine with the fast idle giving 6 degrees throttle opening (assuming the 1,000 RPM break line is used for cranking) the fuel injected would be

3.8ms x 1.2064 = 4.58ms

If the engine was running at 2,000 rpm and 6 degrees throttle, the fuel injected would be

3.3ms x 1.2064 = 3.98ms

just like the fuel and spark maps, where in between point values are interpolated, the trim factors are calculated for any point between those quoted in the trim tables. So, as the engine warms up, with every degree the coolant (cylinder head) temp rises, the coolant trim will drop a little. Which means a half warm engine will still get some enrichment when started, that sort of thing.

This Gran Canyon map is a bit lacking in the trim area really – some have negative (minus) trim for when the coolant temp gets over 89 degrees, and most have negative trims for air temp over 41 degrees. This is what my 851 was falling victim too, causing me quite a bit of grief. Generally, the later the Weber map, the smaller the range of coolant and air temperature trims. They usually have a varying air pressure trim too, not just zero.

The final numbers are what the map thinks are ambient conditions (meaning zero trim) – again skewed by the slightly wacky trims, and the rev limiter settings. This is also where rev limits can be adjusted – the bit many people just love. The Gran Canyon, being a 900 2V, gets 9,000 RPM, and no more.

Additional bits. There is also an enrichment feature in the software, much the same as many carburetors have accelerator pumps. When you open the throttle quickly, the ECU reads the rate of throttle opening and enriches the mixture a corresponding amount, again from a trim table. Duane’s software doesn’t show this, but it’s not really that important in a "need to read it" sense. Although I’m not sure if this varies between models or not for the Weber Marelli maps. The amount will be quite a bit less than a carburetor would add, due to the fact the ECU will read the increased throttle position very quickly and vary the fuel injected accordingly, but some enrichment is still required to produce the required response, and eliminate flat spots.

Closed loop on BMW motronic systems – 2.2 (USA mainly) and 2.4. the closed loop feature of the Motronic system is rather simple, but confuses many. This uses a lambda sensor in the exhaust – actually a very narrow range sensor, more realistically called a lambda switch really – to read whether there is an excess or lack of oxygen in the exhaust. The lambda sensor is a Zirconium-dioxide sensor, and works on the principle of a galvanic oxygen cell. This is the technical way of saying that the materials used in the sensor react to their surroundings and produce a voltage in certain conditions. Similar to how a K thermocouple reads temperature. It does this by comparing the exhaust gas to the outside air, where there is 20% oxygen. If there is no oxygen inside the exhaust, there is a big contrast to the outside air, and a voltage is generated. This voltage is between 0.8 and 1 volt – not great, but enough to give the ECU a switching signal from the 0 – 0.2 volts it produces when there is excess oxygen.

The signal from the lambda sensor is only considered when the throttle is held constant and the engine is not accelerating – on cruise basically. The ECU then uses the sensor output to either lean or richen the fuel injected (reduce or extend the pulse width) to keep the sensor’s output switching from 0.2 to 0.8 volts and back again. It is possible to watch the output using a mutlimeter, oscilloscope or the BMW diagnostic equipment, as this happens at idle also. So it goes rich – lean – rich – lean, etc every 2 or so seconds. Although rich – lean means a little rich and a little lean about the stoichiermetricly correct air/fuel ratio (approx. 14.7 to 1).

This cycling of the fuel mixture about the stoichiermetricly correct ratio is good for the operation of the catalytic convertor, and generally helps with fuel economy. It does appear to sometimes create a problem with surging when used on bikes compared to cars, probably due (in my opinion) to the much reduced mass of a motorcycle, and the increased responsiveness the bike engines have. Maybe the lower tech of the management system (N-alpha) contributes here also. Not sure. The adoption of twin plugs per cylinder appears to have solved this issue with the 1100S/1150 models however, so obviously things like chamber shape, etc were also factors here.

The closed loop is only in operation up to throttle openings of about 13 degrees it appears, so is only intended for use in cruise situations (most cruise at legal speeds is under 13 degrees throttle). It has no effect above this throttle opening, and certainly has no "correcting" effect over most of the fuel map. Many people believe the BMW have a correcting facility for when you fit an aftermarket pipe, etc. Up to 13 degrees throttle some correcting will be done (adaptation BMW call it – it accommodates air and fuel filters reducing flow, that sort of thing), but not over that in any way. There is not a system fitted to any bike by a manufacturer that I know of that uses wide range lambda sensors to produce a "correcting" or remapping process while the vehicle is in use. So any time some one tells you an ECU will compensate for an aftermarket pipe, etc, to be fitted, you know they’re talking crap yet again. It might not run badly, but it could run better with appropriate mapping changes. What those changes are depend on what air/fuel targets the initial fuel map creators (the factory R&D) used, and how the added component changes the air/fuel requirements.

That’s it. I hope this report gives a better understanding of how the systems work. It is by no means a complete document, but writing that would take me far longer than I could stand, and there are many books available on the subject. The main point is the independence of the individual points on the fuel and spark maps. This is why sometimes you have a bike that runs very well in some places, bad in others – mid ‘90s Guzzi a prime example. Maybe it’s easier to think of it as a very complicated carburetor. A bike carburetor generally has 4 circuits – idle, pilot, needle and main jet – all of which overlap to some extent. Think of the fuel map as a carburetor with 256 circuits, none of which overlap. That should make it a bit clearer (maybe not).

Of course, being able to read, decipher and intelligently change the maps is what good mapping is all about. This is what many people say they want to be able to do (to have "control"), but, in reality, most won’t touch it even if they have the desired control. This is emphasised by the people who own Dynojet Power Commanders. Lots of Internet forums have posts from people who have all the adjustability they need, but, seemingly, without the understanding to actually do anything of value with it. They just want someone to supply them with a good map. As I have found, having the ability to adjust doesn’t mean you’ll get it right. And many will give up in frustration before they get there.

But that’s another story.

[Top Of Page]

Home | Blog | Facebook | Service Enquiry | Products | Reports | The Dyno | Disclaimer | Contact Us