By Samuel Leisey
Hello, welcome here are my notes and info I have learned trying to tune my own e28 as well as my curiosity of how it works.
Keep in mind, I'm just a someone with a laptop. Still learning a lot, and a lot of stuff I still don't know. This will be a dump of info for others to learn from hopefully get some people who are smarter then me can add to this. It will also be a great reference to myself to have here.
!WORK IN PROGRESS!
Still need to add 6/26/2021
Quick Links to other excerpts/rants:
Oxygen Sensor Purpose for Motronic
Why M1.0A sucks to most people
ignition numbers
24 vs 28 Pin
Hex Fuel Numbers converted to AFR
writing to an eprom
Miller WAR Writeup
Table of Tables in Motronic
Formula to Convert Miller Ignition Values to Hex or vice versa
Converting Miller/Hex to AFR/Tuning WOT Fuel
How Motronic Works/Basic Understanding of Eprom Tuning
So. Motronic 1.0. The magic made by Bosch that runs your car. How does it work?
unnamed (1) by Kurvenkamph Motorsport, on Flickr
Well those are the parts, it needs to make the car run.
Key Components that:
AFM w/ built in air temp sensor- measures the volume of air coming in with a potentiometer and a reference voltage
Crank Sensor- tell engine position and RPM
3 position TPS- Idle, Part Throttle and WOT
Narrowband Oxygen Sensor- Reads 14.7 AFR
Coolant Temp Sensor: tells engine how good it looks, I mean how hot/cold it is
Fuel Injectors: controlled by DME (grounding them and it batch fire not sequential)
Motronic is so simple, they're all pretty essential but those are the main basic ones.
What's on the chip thing people are selling?
We know, thanks to wondeful people that are way smarter than me like Jim Conforti and Mark D. you can change what the DME does with by just installing a chip with coding.
So what is on the chip? Great Question. Well with the file I'm about to give you and a free .bin tool you can see what the hell is on on there.
https://drive.google.com/drive/folders/ ... sp=sharing
If you download the stock24pin.bin you can view that on a browser tool:
https://hex-works.com/eng
alienlanguage by Kurvenkamph Motorsport, on Flickr
Well, that's a lot of letters and numbers... well let's go to line 490 and go to address 492. The value there is 7B, what is 7B. The bin file is being displayed in hex right now. So let's convert it to decimal, something we are used to. Maybe that will make more sense. Alright the value is 112? If we keep going we see that the values are around 110-140. From
Because I have used the Miller WAR software something sticks out. I am seeing a group of 110-140 numbers. Okay that looks familiar, and a lot of them. So that must be a part throttle map? So where are the load and rpm? What do the 110-140 numbers mean?
m5stock by Kurvenkamph Motorsport, on Flickr
So we have a lot of question but it looks like from 492->521 there is a fuel map.
Alright, this is getting pretty complicated. Are there better tools to view/edit these .bin files? Great Question. There are:
WinOLS (demo is free can't save but can view files on there)
TunerPro
Let's start with WinOLS, when we open the file and tell it the ECU number it is highlighting the part throttle maps automatically.
Hey! We were right! We did find a part throttle map! Nice!
winols by Kurvenkamph Motorsport, on Flickr
It's highlighting some stuff before that? What is that? Well maybe converting it to decimal will help?
winols2 by Kurvenkamph Motorsport, on Flickr
It doesn't. Good news, those decimal values are definitely for a fuel map.
When I view that as 3D, it's a graph. So this is what the computer is seeing.
3d by Kurvenkamph Motorsport, on Flickr
So what the hell are the values????? Well we know the rpm axis is just RPM, but wtf is load in (ms) and what the are all those 120-130 values that we edit?
Some googling revealed a very helpful post:
https://www.bimmerforums.co.uk/threads/ ... c-ecus.72/
The code contains also the numerical information for load and RPM, just "above" the map. For example, in (one) Porsche code (951dme) you can find these following numbers above the fuel/ignition maps. 55 and 12 + 12 numbers of values and 73 and 12 + 12 numbers of values. I.e. 28 values (in decimal) before the fuel/ignition map values (144 numbers in decimal).
55 tells it is a RPM value and has 12 digits (numbers), 73 tells it is a load value and has 12 digits (numbers) => 12x12 matrix.
If the 12 digits after the 55 and 12 are (for example) as follows; 4 4 8 8 8 8 24 16 16 24 16 100, it tells what are the RPM values of the matrix. The last digit (100) is the most important one, it tells the max RPM value of the map, (256-100)x40 => 6240rpm. Then you start to calculate "backwards" using formula "previous value" - (current valuex40), i.e. the next value is 6240-(16x40)=5600rpm. The next one is 5600-(24x40)=4640rpm and so on. 40 is the constant used in Porche code.
4 4 8 8 8 8 24 16 16 24 16 100
===>
800 960 1120 1440 1760 2080 2400 3360 4000 4640 5600 6240 (rpm)
If the 12 digits after the 73 and 12 are (for example) as follows; 5 11 5 6 5 10 16 11 10 22 20 114
, it tells what are the load values of the matrix. The last digit (114) is the most important one, it tells the max load value of the map, 256-114 => 142 ms. Then you start to calculate "backwards" using formula "previous value" - "current value", i.e. the next value is 142-20=122 ms. The next one is 122-22 = 100 ms and so on.
5 11 5 6 5 10 16 11 10 22 20 114
==>
21 26 37 42 48 53 63 79 90 100 122 142 (ms)
Okay so we know what the values are in the computer and where we can see TWO of MANY other things in this code.
Still have a big question, what is load and what are the values we edit? Back to google:
Motronic needs exactly three things to calculate LOAD.
1) A signal from the air meter, normalized to "Q" airflow in kg/hr
2) A measure of current engine rpm "n"
3) A programmed injector size constant "Ki" (K sub eye)
LOAD aka Tl (Tee sub ell) is calculated as:
Tl = Q / (n * Ki)
LOAD is not just a representation of cylinder filling, but the
theoretical Injector Time Open (Ti, Tee sub eye) needed to reach
stoich (Lambda= 1) with the current injector setup assuming that
the motor is "perfect".
Which it isn't, hence there are fueling tables which are used as
multiplicative corrections to LOAD to reach the actual Ti.
Hope this clarifies.
Jim Conforti.
So this is really good information.
The computer knows what size injectors, so it can can calculate the volume of fuel coming in. The AFM also tells the computer the \volume of air coming in. So it can theoretically create the ideal injector time in relation to the AFM opening. So the values we edits are just correction numbers with no value.
Ideally 128 is 14.7, the computer can count 0-256. So at 128 there is no correction, that is 1 lambda.
Let's google some more, another great find here:
Fully explaining the formula Jim Conforti gave us above
MUST READ: https://rusefi.com/forum/viewtopic.php? ... 825#p29823
Okay so now we kind've understand what is happening.
Making Sense of the Chaos
You may be asking wait what about Tuner Pro? Well I wanted to give basic understanding how the hex worked before showing TunerPro.
TunerPro is a free tuning tool that allows someone to upload a .bin and view it after .xdf has parsed the file for the useful information. Making it easy to edit/view the alien language in the hex code.
Once you download TunerPro and the xdf file. You can view the stock 24 pin bin in a less alien way. Let's look at the part throttle map, since we already looked at that.
tunerpro by Kurvenkamph Motorsport, on Flickr
and would you look at that at the bottom 492-521
So at this point, you can see all the .xdf file is doing is finding the values maps it is told point to and is converting them to English or normal values we understand.
Holy shit! There is a lot of stuff to edit!
I'll leave it here for now it is 1AM.
Still need to add 4/12/2021
Why M1.0A sucks
ignition numbers
24-28pin chip differences
writing to an eprom
miller WAR thing
Table of Tables in Motronic https://web.archive.org/web/20150731232 ... ptable.htm
Useful Links portion