Site Network: Random Exploits | Desert Anarchy |

Aprilia Fuel Injection

ECU Basics

The Electronic Control Unit (ECU for short) is the computer that cars and motorbikes use for engine management. For those of you who are not computer programmers, all computer programs can be described in the following fashion: they take a set of input data, and then process it in some fashion to generate a set of output data.  In the case of an engine management computer, one set of inputs represent raw physical data.  Raw physical data would include things like:

After collecting a set of information, the ECU does some math to "massage" the input data in various useful ways.  For example, by combining what the ECU remembers about the crankshaft position at some previous point in time along with what it knows about the current crankshaft position at the current time, the ECU can calculate the current engine RPM.  After deducing these other bits of useful data, the ECU uses the collection of results to consult a set of tables stored in its memory.  These tables basically tell the ECU what outputs it should produce for a given set of inputs.  For the ECU, the basic set of outputs represent timing information, which is used to drive some useful bits of computer-controllable hardware. The end result is that the ECU uses all of its input and calculations to control exactly four different timing-oriented events:

Obviously, these basic spark and fuel outputs have to be generated for one of the two cylinders once per rotation of the crankshaft.  At the Aprilia's 10,500 RPM  redline, there isn't a lot of time to waste.

Even so, the ECU manages to find the time to do lots of other useful things:

Of course, the interesting question is "exactly how does the ECU do this stuff"? 

And answering that question requires the following disclaimer:

All the information contained on these pages has been generated by reverse-engineering a spare Aprilia/Rotax ECU that I bought off eBay.  There are no guarantees that what I present here is actually correct.  If you use this info to modify your own EPROMs, there is the distinct possibility that your changes can blow up your motor. 
-- You have been warned.

 

It will be worth it in the end.