BMW DME Tuning for 059 box and 4k ROM

Update 02-11-04

Following is the write up on the DME tuning that I've been able to decipher. All the info to follow was obtained from web resources that will be given in the text as hyperlinks where appropriate. Also given at the end of this body of info are the updates as I've been able to test to date.

Disclaimer: I don't believe any of this information to be illegal, especially since the Porsche guys that did the lion's share of the work on the software and information haven't been sued to date (or that I know of). However, if I'm threatened with credible information that shows this is illegal or copyright infringement, then this info will be taken down ASAP (I don't want to be sued!!!!).

Warning: I take NO responsibility for the information contained herein to be perfect or exacting to your particular application. You use this information and software at your own risk. Only you are responsible for the use and car of your German automobile. This is only intended as a template to begin your journey into the finer points of the DME operation and tuning. As it was put on another website, Use this information carefully, as it can severely damage or blow up your fine German automobile

With that said, I'll start with the components that are needed to view, change, store and test new DME maps. The 3 main components are:

1) Theory of Operation

2) Software

3) Changing maps in the DME software

4) EEPROM and EPROM Burners

5) Getting the ROMs in/out of the DME and testing techniques

Some of these issues and processes will be self evident to the savvier enthusiast or engineer, but some may find some the electrical engineering aspects and terms difficult to understand. Well, I can't walk everyone through all the technical jargon, base number systems and some other engineering type language.

 

Theory of Operation

The DME box is essentially a micro-controller with support circuitry to run the ignition and fuel supply for the engine. The micro is an Intel 8051 reproduced by Siemens with their own part number for Bosch. Since this is an older 8051 micro, there’s no A/D (analog to digital converter) on board as almost all the newer 8051 nock-offs have. So there’s support circuitry consisting of an A/D chip. Since the 8051 have digital I/O on-board, there’s not a significant amount of support circuitry for it. There is a good portion of output circuitry for the ignition and fuel injector power drive, as these take a fair amount to power to run. There’s a power supply to make +5V. There’s also support for the FQS (fuel quality switch). As a note, the FQS is read through the A/D, so there’s some support to convert the switch function to a varying analog voltage

For the technically curious, the ‘80s Porsches and Volvos (maybe more) use very similar if not exact DME. So there are a few schematics available out there. The Porsche guys have the most info. The ML1.3 box is very similar that was in the 911, 944 NA and 944 turbo.

See schematics here: http://frwilk.com/944dme/. Go to download section. Also, there is a Russian site that has the schematic, but there are no values to the components. See here:xxxxxxxxxx

I was able to verify against the 944 ML1.3 that the BMW ML1.0 (my 059 box) has almost the identical coolant sensor input to the DME. At the 944 site, there is some terrific info on how Bosch uses the DME box. I encourage anyone interested to completely read his entire site for further details on the workings of the Bosch box. Since the DMEs are so similar, almost all the info contained there is relevant to the BMW box.

Now, the DME takes all the inputs from the engine sensors: O2, RPM, TDC, reference, speed, coolant, A/C. AFM, air temp, throttle position and others then compares them to internal maps stored in the software. There are also modifiers to the inputs that then create an injector pulse width signal outputted at the appropriate time. The DME also outputs the ignition signal and dwell according to the inputs also.

So, now we have a tertiary view of what’s going on for the DME to arrive at a fuel delivery value, ignition timing and dwell. The DME takes initial values and modifies them according to input modifiers. Some of the modifiers are coolant temp, air temp, AFM (air input), O2, FQS and A/C on. As I understand from the gents that made the software used (see their names in the software given later), the DME software sets up the initial injector duty cycle from air flow (AFM signal) and RPM. From here there are 3 main maps and dwell map. The 3 main maps are part throttle map, idle map and WOT map. For each of the above main maps, there’s an associated timing map that gives the advance or retard. The PTM (part throttle map) is 12x12 map that each point carries a value that modifies the injector duty cycle a certain percentage. This is referred to as “lambda trim”. In the case of the PTM, AFM and RPM set a base IDC (injector duty cycle). This base duty cycle is then feed into the PTM map. It is again modified in the map by RPM, and a lambda trim value modifies IDC by a percentage up or down according to the coordinates of the 12x12 map. The IDC is then further modified by other input factors, most notably coolant temp input, air temp input, A/C on/off, FQS. Since the ML1.0 is adaptive, there is this modifier also. Although I have no idea how it works, at this point it doesn’t seem to be a large factor. If someone can explain it to me, PLEASE! Also, I don’t know if the coolant, air temp, A/C and others modify IDC before the lambda trim or after. It appears this is not of great value at this point in time. The idle map is a 1x8 map and WOT 1x16 map. They both operate similar to the PTM. The WOT map has some major differences though. When the DME senses WOT, the AFM and O2 inputs are ignored. The IDC is set solely by RPM. In my mind, this makes sense for a naturally aspirated engine. Since the throttle plate is wide open, RPM is the only real restriction to airflow. So the IDC can be determined directly by RPM, then modified by the other sensors, namely coolant, air temp, A/C, adaptation ect. This was a very large revelation, especially with my BMW being a turbo car, where excluding airflow from the WOT equation makes proper tuning impossible without other means. To go with each map there is an associated timing map also, with the PTM a 12x12, idle a 1x8 and WOT a 1x16. Again, the timing is advanced or retarded depending on the map entry point (IDC), then modified by the associated map, and then possibly other modifiers as the fuel maps are. This will become easier to see when viewed in the software.

Note: The above description is a thumbnail sketch of the overall operation of the DME and software therein. It’s beyond the scope I can provide to give every last detail of the DME operation, as I don’t know it myself. I’m sure the retail tuners who have made chips for the various DMEs have a much more detailed and intimate knowledge of the software and it’s operation. Possibly even disassembling the code (or have the source code), detail every line of code for operation, then modify the appropriate maps and values that set parameters for IDC and timing. As I’ve alluded to earlier, the above information may be wrong in some respects, and I’ve tried to detail where I believe they are, but I still may be wrong in some of the above assumptions. It is the responsibility of the user of this software and knowledge to use and experiment at their own risk.

Software

This fine piece of software that was written by Marc Skarshinski is the basis for all the tuning that can be done with BMW, Porsche, Volvo and other DME. All the gents associated with the Motronic editor are to be congratulated on creating this software for all to use. I’ll say this, the Porsche enthusiast are real motivated, and that’s great for us.

The first screen shot is the splash screen for the software. It allows the user to load BIN files (binary) files that are copied from the EPROM in the DME. Getting these BIN files will be covered later. Most of the screen is pretty self-explanatory. Use the load button to search for BIN files and load. Then select the appropriate specification file to tell the software where to find the maps in the DME software. This is very important. The software has to know where the maps are in the bin data. The software uses offset values to align itself with the maps. The proper offsets are critical to properly align the maps to the software pointers for display and modification. The spec files are very simple maps that are in plain text. You can open the .SPC files with Notepad or WordPad and modify them with your appropriate offsets. Don’t change their file type, this will cause the software not to recognize the proper file type and won’t display the spec file for use. The spec file has to be in the same directory as the BIN files, or the Motronic editor will not see them. Once you’ve loaded a .BIN file, selected an appropriate spec and made changes, you can then save the new .BIN file with the “Save ROM” button. This new file can be read directly by almost all ROM burners.

The software allows you to find the maps in the DME code to trim the injector on times, or as they call it “lambda trim values” stored in the EPROM in the DME box. The following is a picture of the main fuel trim map page and description of the items and theory.

Note: The Motronic editor uses decimal to display offsets and data. It’s usually more common to see ROM data in hexadecimal. But, I see the reason behind it, as you’ll see in the next section.

Changing maps in the DME software

Most of the page is self-explanatory. Offsets are displayed in decimal, and max RPM at the top. The most important issue is how to interpret the data your seeing. The numbers you’re seeing in the maps are trim values as compared to the value 127. So you take a value in a map, say 127. This value is divided by 127 to equal 1.0. This lambda trim value 1. So the IDC is multiplied by 1 and is unchanged. If the map value is 141, 141/127=1.1. This means the value of trim is +10%. Thus increasing the IDC by 10%. If the value is 115, 115/127=0.90. This means the IDC is multiplied by 90% or reduced by 10%. Luckily the software does the calculation for you using the “Interpret Byte Value”. Selecting this box show the value as the multiplier that the IDC would get in decimal format i.e. 1.10 is equal to 10% higher value. When you make changes in the maps, use the “Commit” buttons to change the value permanently in the software. To be complete, increasing IDC (injector duty cycle) will deliver more fuel; decreasing IDC will decrease fuel flow.

The next screen in the tab menu is the timing maps; equal to the fuel maps, and used the same. The interpret button changes the values from decimal to the actual degrees of advance, very easy.

The next two tab windows are the maps shown in 3D and are changeable by rotation with the rotate buttons. I’m not going to show these windows here, as the user will find them self-explanatory.

The last tab window is the whole data display of the ROM contents converted from hex to decimal. The left most X and Y-axis are in hexadecimal to show the address of the data in the EPROM.

As noted before, the reason the EPROM data is displayed in decimal is easy to see here. It’s easier to look at and find the maps if the data is in decimal form.

There’s a cool feature here that looks for maps automatically. While in the “File Contents” section, right click the mouse. The option pop-up menu gives options to have the software automatically search for maps within defined parameters. Use the “Key” button to distinguish colors for the different portions of the maps. For most reasonably savvy computer users, most of the functionality of this software is pretty self-explanatory. But again, use at your own risk!

The screens I’ve shown so far are from the stock chip in a 059 DME.

This is the link where the software resides: http://www.mskar.org/dme_tuning_software.html

Read the site carefully and completely before using the software.The software is free but is time protected.

Issues:

1) First, for some reason, the maps of fuel and timing are repeated in the software twice. The first maps are located at offset 642 for timing and 1142 for fuel. These maps are repeated at 1818 for timing and 2040 for fuel. Why they are repeated, I don’t know. I’ve had success with modifying the first fuel maps at 1142 (Dinan has done the same thing in my custom tuned turbo EPROM), specifically PTM and WOT map. But, I’ve seen ROMS with both maps changed. This is a puzzlement, and without disassembling the code (or having the source code) or having one of the tuners who’s done this already tell us why, I’m not likely to find out. So far it has not hindered my progress, but it may in the future.

2) I’m not exactly sure if the IDC shown on the Y-axis in the PTM map is correct. They may be, but might not be. Remember, this software was originally written for a 911 DME. While there’s some indication the IDCs are correct, there’s no proof positive as of yet. I believe them to be pretty close, if not nuts on in my testing so far.

3) There seems to be an IDC headroom feature in these DMEs. This issue really only pertains to persons with systems that are very heavily modified, like turbos, but it may have implications for others depending on modifications. First, if we look at the PTM, the highest IDC is 54%. Well, that’s not close to the 80% or greater where the injectors are at maximum flow. So the question is, how do we get to max flow? Well, I speculate that the WOT map has a higher IDC, since I don’t know it exactly, I’ll say 3%, for a total of 57%. It would stand to reason the modifiers bump up the IDC from there to reach 80% or more. Those modifiers being coolant temp, air temp, A/C on, FQS and adaptation. For a fact I know that coolant temp can add a fair amount, as Dinan’s TurboTronics box changes the coolant temp input to give turbo systems extra fuel enrichment. I’m guessing that the coolant sensor can add 10%, air temp 5%, FQS 3% and A/C-adaptation can add another 5%. That’s 80%, or saturation (max fuel flow). It stands to reason, at least for me, there has to be other modifications (as Dinan did) to ever get the DME to drive the injectors to max fuel flow.

UPDATE: In regards to Issue 3, there’s evidence that the maps will only drive to a certain percentage, and then stop raising IDC. The test I’ve done is disconnecting the Dinan TT box (no coolant temp adjustment for enrichment). Then burn a chip with a WOT map that had the 4k RPM and up range bump up by as much as 30%. In testing, the car ran leaner than with the Dinan values and the TT box connected. This tells me the software always leaves headroom in the IDC for changes via coolant temp (at the least) and the other inputs. While this is not great, there’s still a fair amount of change delta for most modifications. And, I have not tried to see how low the Lambda trim will go, in the case if larger injectors are used in the system.

Warning: While I’ve tried my best to present the information I have, some of the above, in some cases is pure speculation, educated guess and in some instances, flat out guesses. I’ve tried to give the user a roadmap of where I’ve been, but I haven’t got all the answers. Use this information with care as I have. So far all my testing has not broken or adversely affected my car or it’s operation. There was a moment of hesitation I had when testing some the higher Lambda trim values (+30%); that these high numbers would roll a register in the CPU to 0, and the fuel supply would cut-off while running 14psi of boost :-0

So far that has not happened, but don’t think your tinkering can never have something catastrophic like that happen to YOU!

EEPROM and EPROM Burners

To get the .BIN files, you have to remove the EPROM from your DME.This requires removing it from your car (located under the dash), opening it up and hoping it’s not soldered in! If it’s socketed, use a chip removal tool or small flathead screw driver and lift it out as carefully as possible. Be sure to be electro-static safe during this operation. Then you pop the EPROM into a reader/burner and download the contents to a .BIN (or binary) file. If the EPROM is soldered in, you’ll have to un-solder it, and this is really hard without special equipment and tools. You’ll have to get help and the tools to do this right. But when you do, you’ll replace the IC with a socket so it’s very easy next time.

The EPROM will be on the upper PCB (when the DME is lying on the bottom metal support plate. It will be 24/28-pin device with a label that has BMWs part number. Mines labeled with 1267355206. The 059 DME IC’s are almost all 27C32s. These are 4kx8B or 32k bit EPROMs. The devices have windows on them that allow the device to be erased and re-burned. A UV light erasure will be needed if you’re going to erase and burn EPROMs.

I know this portion may sound like Greek to the non-engineer/technical person, but I can’t help much more than that. If you need assistance, any competent electrical engineer or technician should be able to accomplish this job easily.

The reader/burners are all over the place now, and range from cheap to thousands of dollars. Luckily the EPROMs in the BMW DMEs are very old and well known and used devices, and even the cheapest reader/burner will most likely support it. I’ve used the EMP-10, and it’s ~$189. Below are some links to this reader/burner. These sites will also have the UV erasers. These devices can also be purchased from your local electronics retailers. In the SF Bay Area, Frys Electronics carried all the devices needed.

http://www.needhams.com/e10.html

http://www.generaldevice.com/products/emp10.htm

http://extensionmedia.com/intel/products/needham_63.shtml

http://www.frys.com/. Frys sells on the net through Outpost.com.

The following links are for very low cost reader/burners:

http://www.ustr.net/epromer5/index.shtml

http://www.xtronics.com/memory/EPROM.htm

These are but a few of the myriad of reader/burners out there. Doing a net search will give many that are suitable in all price ranges. It should be obvious that you’ll need a PC or laptop to use these devices! Almost all come with instructions that are pretty easy to understand. But that still doesn’t mean everyone will feel comfortable doing any of this.

Getting the ROMs in/out of the DME and testing techniques

If your still here, this is probably the next most technical part of the information. Getting EEPROMs or EPROMs in and out of the DME for tuning is probably the biggest issue in this process. Well, my solution was to create a test jig/dongle. I’ve taken some photos and have posted them below. It seemed a big PITA to have to remove the DME from the glove box, unplug it from the wiring harness, open it up and swap IC’s, reinstall it and test. So I made this dongle with a ZIFF socket to easily get the IC’s changed.

As seen, I used some ribbon cable, a 24pin test socket and a ZIF socket to create the dongle. All the parts for this dongle cost $13 at an electronics surplus store. This is a fairly hard test jig to make for someone not familiar with soldering techniques. If you want to go this route, and don’t have the time or technique, you’ll have to have someone who can make this. But for tuning, this is huge time saver, and significantly decreases the stress and strain on the DME that arises from install/removal.

For the technically curious, I went a different route than just using the 27C32 EPROMs. These would have to be UV erased every time I wanted to burn a new map. So I went to the 28C64 EEPROM. EEPROMs are electrically erasable in the reader/burner and don’t have to be put into a UV eraser for 40minutes. There the same pinot as a 27xxx EPROM except for the extra address bit (2x the size of a 27C32), WE* and RDY/BUSY. The address bit is wired into the switch with GND on one side and +5V on the other. Then I could switch the image the CPU sees by a flip of the switch, further reducing install/removal cycles. The switch is held to the ZIFF with 2sided tape. So I just burn two images at a time into the EEPROM and select between them for more flexibility. Changing EEPROMs is very easy, lift lever, remove IC, install new IC, lower lever and switch to the image you want to run. This will save tons of time at the dyno shop. So far there are no issues and the dongle works fine. My next project is to fab up a bracket that mounts the ZIFF end next to the DME box.

As I get more updates and testing done, I'll post the reuslts.

RussC