Modifying a BMW E34 M5 dash (NMC9346EN chip)

European GM ECUs and PCMs
Site Admin
User avatar
Posts: 7247
Joined: Sat Feb 28, 2009 8:34 pm

Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby antus » Thu Jul 06, 2017 11:09 am

Sorry for the semi off topic post. I know this isnt a GM, but it is a Euro vehicle so here seemed the best fit.

This chip is used in the BMW E34 M5 dashboard. Its a physical dongle which plugs in the back of the dash, and contains the dashboard calibration.

A mate of mine is trying to convert the digital display from Miles on an imported vehicle to Kms. The official BMW tools will talk to the car but dont want to talk to the dash. We dont know for sure if this is a wiring problem in the vehicle of if the dash is not supported, but suspect the dash is not supported. The usual way of modifying the calibration is to request a new code plug from BMW. They write the code plug to suit the car and its option codes and you physically plug it in to the back of the dash.

There are two versions of the IC in the code plug. The older code plugs are brown and contain a National Semiconductor NMC9346EN, which the GQ-4X is happy to read as a generic 93C46B where the B means '16 bit mode'. The brown codeplugs were replaced with blue code plugs containing a variation of the 93C56B. We did not open one of these to identify the specific chip. The GQ-4X happily reads and writes this IC as 93C56B. The BMW documentation advised the blue plugs are an update and it sounds like they can be swapped in to the older vehicles. Here is a picture of the adaptor I hacked together and the guts of the brown codeplug.

20170705_221302_resized.jpg (417.04 KiB) Viewed 8801 times

The first problem is wiring the ICs. The GQ4X is failing to write the brown plug as the generic 93C46B. The bar graph jumps to 100% instantly then verification of the write fails. However it can write the blue code plug where the write bar graph takes a couple of steps before reaching 100% and then verifies correctly. As everything is the same family, I am not sure if there is a problem with specifically the 93C46B write function of the GQ-4X. Multimeter testing has shown the connections are good. Has any one attempted to write this chip with a GQ-4X?

The next part of the problem was that we wanted to move the configuration from the brown to the blue IC as that was the one we could write. Being twice the size I stacked 2 copies of the data from the brown code plug. Verification succeeds but the car rejects the code plug, and dash the dash is not correctly configured. The gauges are all wrong for example idle rpm reads at 200 rpm. Does anyone know why stacking a working brown code plug and dropping it on a blue does not work? We dont have a sample bin of the larger IC, the chip we had was a BMW spare that contained all FF and had never been programmed.

The final part of the problem is what to actually change to convert it from miles to kms. We dont have an Aussie code plug to begin with, and havnt found any tools that support this dash or bin. Does anyone have an bin our an aussie codeplug they could read and post to compare?

I'll post 2 bins. Once from the car which we are attempting to modify, and another from a spare dash with a different configuration, although still miles. If anyone is able to convert the 'car dash' file it with any tool and re-post it would be appreciated.
National Semiconductor NMC9345EN.pdf
(566.98 KiB) Downloaded 400 times
wbahd22090 bf52472 b23091 as 93c46b spare dash.bin
(128 Bytes) Downloaded 411 times
wbshd92000 ga25086 b23111 as 93c46b car dash.bin
(128 Bytes) Downloaded 399 times
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

User avatar
Posts: 2930
Joined: Thu May 17, 2012 8:53 pm
Location: WA

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby Tazzi » Thu Jul 06, 2017 1:09 pm

Make sure your using the latest version of the software with GQ4X, I had issues previously with an old version with writing to certain eeproms.

Bottom part of the bin looks like an odometer.. about 152045kms Id assume.. so it probably shows 94476miles on the car dash bin?

I recon maybe location 7E could be a starter.. Its just infront of the odometer so might indicate the country code?? May explain why they differ between the bins but still display miles if both places use imperial?
Your Local Aussie Reverse Engineer
Mob:+61406 140 726

Posts: 2
Joined: Wed Dec 06, 2017 10:31 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby Gasplanet » Wed Dec 06, 2017 11:45 pm

I'm new here but I'll wind this thread up in case it helps anyone down the track.
Also to give kudos to Antus for setting me on the right path.

I eventually got this odometer to read in kms with the correct total a few days ago.
The OBC/trip computer still defaults to miles and Fahrenheit on a battery reconnect which suggests it's still fundamentally coded as a UK car but this can be quickly and easily changed as required and stays set to these units until the next battery disconnect.

Antus had succeeded in writing parts of a Euro spec E34 525i BIN to the brown 93c46 plug while keeping what we assumed was my odometer data.
The odo finally showed kms as units but the total was wrong.
I also had other weirdness on the dash like an econometer instead of an oil temp gauge, some auto trans symbols, and incorrectly calibrated speedo and fuel gauge.
This is because the coding plug stores specific info for the various types of E34.
An M5 is 6 cylinder, has oil temp, 90 litre tank, 300km/h speedo and they are all manual.
Other E34's can be 4 or 8 cylinder, auto, with an econometer, smaller tanks and lower top speed speedos.
So at least we were on the right path and it was just a matter of working out what data to change on the original BIN.

The breakthrough came when I finally found a BIN from a Euro M5, albeit for the larger IC.
I now had data for:
UK Spec E34 M5 manual in miles and English
UK Spec E34 535i manual in miles and English
EU spec E34 525i auto in kms and German
EU Spec E34 M5 manual in kms and German
Comparing these gave a bunch of logical locations to try first.

I used Antus' MiniPro TL866 to edit these locations one by one but still wasn't able to get kms to show.
In the end I just merged all the Euro M5 data with my odo data and got everything to work correctly, albeit in German with the incorrect VIN.
The trick to getting the total kms to show correctly was to reverse the order that's in the BINS attached to the 1st post.
I was also able to rule out a bunch of other locations as they would change slightly after short drives suggesting they were also possible odometer or trip meter/service interval data.

Then I started narrowing it down by changing line by line, then byte by byte until I found the correct location to change.
The final product is attached - it's a D2 instead of D3 on the 2nd line.
What was 134k miles now reads 220k kms and all gauges and VIN are spot on.
GA25086 21_11 kms.BIN
(128 Bytes) Downloaded 413 times

Posts: 7
Joined: Tue Sep 29, 2020 4:37 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby mikrovega » Tue Sep 29, 2020 4:58 pm


I'e just found the topic while I was desperately looking for M5 EEPROM content.
A friend of mine has an M5 swap in his E34 including speedo, but w/o the right plug.
All the readings are incorrect as the number of cylinders, oil temperature (instead of Econometer) etc.

Currenly there is no way to organize such a plug.

Would it be possible to receive German M5 plug you've mentioned in the post?

Do you have some notes from your investigation you would list please?

Posts: 2
Joined: Wed Dec 06, 2017 10:31 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby Gasplanet » Wed Sep 30, 2020 12:32 am

I'm happy to share what i know.

This is where I found the Euro M5 coding plug data: ... 12126.html
Post #1

This is for an Oct 92 HC91 M5 so uses the blue-backed cluster as per:
This has the 32 bit or 'blue' (93C56) coding plug.

I have a 1990 HD92 M5 with the white-backed cluster and 16 bit 'brown' (93C46) coding plug so I only used the first 4 or 5 rows of this data in my testing.
I simply combined it with the original data on my coding plug ie the odometer data etc.

Loading the data in that link should default your cluster to kms, German language, and should give you all the correct calibrations for oil temp, fuel tank capacity, cylinders/rpm, top speed etc.
I couldn't tell you how many kms will show on the odometer because as above, I retained all my original odometer data.
If you wanted to change the VIN so the cluster shows the correct VIN during a self-test or other diagnostics, I believe it is stored here:
3498 EF46 which is the last 7 digits of the VIN ie GD63498.

Hope this helps.

Posts: 7
Joined: Tue Sep 29, 2020 4:37 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby mikrovega » Wed Sep 30, 2020 7:17 am


Many thanks for the link and detailed info. :thumbup:

I have been some time ago on some of the pages, but I'm not recalling the first like - it is what I'm looking for.

I think I should really help my friend to fix the readings of RPM, KM/H and Oil Temperature.

Your info about VIN and odometer readout is very usefull. Thanks again.

Winter is coming and I would like to dig into the coding plugs of E34.

I will let you know in some weeks about the progress as the speedo is in different city.


Site Admin
User avatar
Posts: 7247
Joined: Sat Feb 28, 2009 8:34 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby antus » Wed Sep 30, 2020 12:31 pm

Just incase the link to bimmernut breaks one day, here is a local mirror of the data. Credit to from the bimmernut forums.

Code: Select all
00 0DFF 7CA1 BD67 D628 E500 13FF 268D 4F73
08 6E2B D200 4A16 F9E9 5AB8 A147 B310 0078
10 0000 FFC3 001A FF00 B478 5028 0E0C 89C7
18 DEE9 2000 CB60 0000 FFFF 3498 EF46 9211
20 3835 2529 F721 F3E8 3291 0000 3400 0000
28 0000 084E 0131 0000 0000 2039 FFFF FFFF
60 F934 FC15 FC15 FC15 FC15 FFB9 FFB9 FFB9
68 FFB9 FFB9 FFB9 FFB9 FFB9 8142 0000 1391
70 1391 1390 1390 1390 1390 1390 1390 1390
78 1390 1390 1390 1390 1390 1390 1390 0DC7
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 7
Joined: Tue Sep 29, 2020 4:37 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby mikrovega » Wed Sep 30, 2020 3:15 pm

Good idea. Thanks! :study:

Posts: 6
Joined: Tue Mar 30, 2021 10:57 am

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby juliohernandez85 » Tue Mar 30, 2021 1:47 pm

Hi. I am Julio from Mexico.

I just bought an E34 540I 1996. The car has just covered over 32k miles and my plan is to bring it back to its former glory. One of the issues I want to solve is that the odometer reads in miles even tough the car is Euro Spec and all the dials are in metric units.

I read the useful information provided by Antus and Gasplanet and I am ready to reprogram the 93C56B chip on my coding plug. But I also want to know if you could help me with other parameters.

I have noticed that my Tachometer is way off. It idles at just over 1k (which I think is high for the V8) and it goes up really quick, surpassing the 7k redline and going all the way trough an hypothetical 9k rpm (invading where the econometer needle is located) when the rev limiter finally cuts the fuel. I suppose this is because the plug is not programmed for an 8 cylinder car.

Also when I do the cluster test it shows no BMW part number or VIN number (0000000), just the code plug number, speedometer factor, Software version and update index. Is there a way to add the last 7 characters of the VIN?

I share pictures of the car, the cluster (showing where the tacho hits the limiter) and the BIN reading of the car-

Cheers and thanks for your help.

E34 540i.jpg
E34 540i.jpg (213.9 KiB) Viewed 5579 times

540 cluster.jpg
540 cluster.jpg (69.84 KiB) Viewed 5579 times

540 bin.jpg
Last edited by juliohernandez85 on Tue Mar 30, 2021 1:53 pm, edited 1 time in total.

Site Admin
User avatar
Posts: 7247
Joined: Sat Feb 28, 2009 8:34 pm

Re: Modifying a BMW E34 M5 dash (NMC9346EN chip)

Postby antus » Tue Mar 30, 2021 1:52 pm

I think you need to reprogram the code plug with the various files above and try them all. See if any of them have the correct setting for the tacho. If they do then cut the files in half and join two different parts together and re-test. Slice the files in different places and eventually you can narrow down which byte or which bits need to be changed to get the tacho to read correctly. Please also read and post up your original code plug and anything you learn. The more people have to play with the better. I believe this process, and many flash and test cycles was how gasplanet found the kms byte. To upload an image use the "post a reply" button at the bottom and on the reply page use "upload an attachment" -> browse -> (pick your image) / ok -> Add file. Then type your post in the box and click submit.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396


Return to Euro GM ECUs

Who is online

Users browsing this forum: No registered users and 1 guest