Ok. So i Need to look at 4,6 is software, think i have a orginal file somewhere.
I am not very familiar with WinKFP; does someone have 540i/6 full flash 512KB with correct hardware version to support oil temp ?
Thanks.
Resurrecting this post from the dead .
Big news for all you I6ers with M3 or M5 clusters in your non-M e46 or e39. We are finally able to offer oil temp warm up lights to go along with your already working oil temp gauge. On top of that, the mod also enables shift lights using the warm up lights after the car is warmed up. I've tested it on both my 330Ci/5 and my 530it/6. Can be applied to any MS43 DME with either 430056 or 430066 program/tune data.
More information is here: https://www.ms4x.net/index.php?title=Siemens_MS43#M_Cluster_LED_Control and here: https://forum.e46fanatics.com/showpo...postcount=6535, but as always, if you need me to do the mod for you, just PM me.
Last edited by blackknight530i; 01-30-2019 at 07:34 PM.
-Paul
2003 "M5" - Full M5 conversion, AMG C63S 6 piston front calipers, Porsche Panamera 4 piston rear calipers, GC Coilovers, Eibach ARBs, UUC Evo3/DSSR, Borla Exhaust w/Muffler Delete, BMW NBT with Carplay/Android Auto, Bi-Xenons, e38 Style 37 M-Pars, e60 Hubs 530i 6-speed swap build thread2005 Range Rover 4.6is (M62TU Powered) - 4.6is Engine Swap from X5, BMW NBT with Carplay/Android Auto
2006 Porsche Cayman S - Soul Performance Competition Headers and Exhaust, H&R Coilovers, 718 Boxster Spyder wheels, Rennline 35mm rear spacers
Sending PM!!
To bump an old thread. I have a e39 with an EWS deleted DME from Kassel Performance. Cruise control hasn't worked since I installed this DME, probably because it came from a car with a different gearing setup.
If I flash with winkp, will I loose that EWS delete? I would be flashing things from this post in this thread.
https://www.bimmerforums.com/forum/s...3#post28320993
I've been trying to work with Kassel Performance about this, but he hasn't been able to fix it. I was hoping this would fix it.
if the Kassel EWS delete works like the one I have then it is outside the 64kb mapping section of your DME file ( the full file is 512kb) I was working on a tunerpro file with a patch for cruise control fix but have not had anyone to test the patch / give feed back (I jumped the gun a bit on posting my thread) but my work in progress tuner pro files are still publicly available (with the patch) I know that the cruise control fix applies to the 64kb mapping section of the DME
When BlackKnight sent me the 0Da files that Terra made from how I UNDERSTOOD the files the 0da = 64kb mapping the 0pa file = the remainder instructions or remaining 448 kb I have a way better understanding of the me7 since that point thanks to data sheets
In theory you could convert that 0da file to a 64kb .bin file and flash with Galletto1260 in order to not mess with your 512kb section or ews delete programming (not sure about the checksum though or how you would do that) https://drive.google.com/open?id=19Z...trx3TjbCt9ML6L
I went ahead and converted them to binaries in case you wanted to try ( again not sure if Galletto will work because they don't have checksums)
a "partial update" with winFKP shouldn't overwrite the full 512kb
anyway like my signature says I like to pretend I know stuff
I like to pretend I know stuff
Awesome. Thanks for that. From my understanding of MS41 software the checksum has to be corrected.
Now I wonder what the best software that can easily correct the checksum. WinOLS, ECM titanium? There was an awesome flash software for the ms41.
If I were to do a full read, could I flash that back to the DME if EWS delete is removed or if there are any checksum related issues?
I think I might be able to help you out .... there is a item in the mapping for our car that is gear recognition at 3k rpm I bet you could edit / alter those tables to make your cruise work as expected or if you have stock gearing / diff you could copy > paste the information from a stock dump > your cars table then use WinOLS to checksum or Ultimo checksum corrector and flash back to your DME
if you full read the ECU you could attempt to place this mapping items program into your 512kb file it would sit from 10000>1FFFFF inside the 512kb file
Definitely back up your EWS deleted binary so you don't lose that (I keep mine backed up so i can still start my car in case of emergency :-D )
I like to pretend I know stuff
Actually that is not remotely what is in the DME. What is in the DME is some kind of relatively obscure crank to wheel ratio factor.
What you are talking about is an XDF-formula parameter that someone else has converted into "friendly units" to make it more 'sensible' to tweak and understand in terms of fine-tuning adjusting for diff changes, vs having to do lots of 'wheel diameter / gear ratio / etc. etc. ' calcs on the side.
2003 M3CicM6 TiAg
2002 540iT Sport Vortech S/C 6MT LSD TiAg
2008 Audi A3 2.0T DSG (the daily beater)
2014 BMW X1 xDrive28i (wifemobile)
Former:
1985 MB Euro graymarket 300SL
1995.5 Audi S6 Avant (utility/winter billetturbobattlewagen)
Realistically it didn't matter any way because the NVQUOTU1/2/3/4/5/6 quotients all matched a stock binary as well as the gear ratio as well as NVQUOTO1/2/3/4/5/6.
NMOT = Engine speed
Therefore the concept does exist, I apologize for not explaining it in excess
Capture.PNG
I like to pretend I know stuff
Sent you a pm!
Out of curiosity, has anyone gotten this to work in a Non TU M62? Since NJ, NY, and CT are on quarantine I figured now would as good a time as any to try and bang this, and a few other projects, out. Allow me to explain my findings.
I have a build date 04/97 540i, BW56369. The cluster I have is from a build date 06/04 X5 4.8is LE81450
I have diagrams from both vehicles, but it would appear my diagram for the X5 cluster is incomplete. For the 540i I have pin outs of all three connectors. The black 18 pin, white 18 pin, and blue 26 pin.
The X5 diagram is missing the black 18 pin connector. I should also note that on the harness in my car and the harness in the diagram I am missing two pins, CAN Bus High and Low on pins 8 and 9 respectively.
When I plug the cluster into my car (my power supply for my test bench hasn't come in yet and I got excited) I have no tach signal, oil and coolant temp are pegged, as I would expect, and after a while I get the "Trans. Failsafe Prog" warning. I have to assume it's because of those missing CAN bus lines. Interestingly my diagram says those are mostly for ASC/DSC signal. not sure what to think. Now I should also mention that for some reason, all of my modules have taken the mileage from the X5 cluster, I only powered up the cluster, didn't even move an inch with it installed. the mileage from my car is 117340, the cluster reads something like 192k and some change.
I know I need to wait for my INPA cable to arrive to get the fuel, tach and coolant to read correctly, and I also need to either man up and remove the pointers and m35080 and program it or find a way to program it through the processors on the back, that is my main concern as of right now.
I should say, I'm 20, I'm an Electrical Engineering student, this isn't anything too far away from what I already do, but I'm practically broke. I don't exactly have the money to go and spend the $150-$300 programming fee. I understand that Blackknight530i does a great deal of this and I've heard he's a nice guy, but I only have the money to do this myself, I'm trying to get any advice I can to help.
Any advice is appreciated,
Andrew
Last edited by 97M62BimmerKid; 03-30-2020 at 06:23 PM.
I replied to your PM, but I'll also reply here. Getting the 4.8is cluster to work in your pre-TU car for everything other than the oil temp stuff is trivial.
Mileage correction would require a M35080VP programmer as the standard M35080 programmers won't work with the newer chips.
As for the oil temp gauge and warm up lights, the only way you're going to get those to work is to build a module that takes an analog oil temp sensor signal and converts it to digital, then sends that info over the CAN bus using the proper IDs. That's a totally custom thing that isn't being discussed here and I don't have any info on it. The non-TU DME simply doesn't have the ability to send that information.
Sent from my SM-G965U using Tapatalk
-Paul
2003 "M5" - Full M5 conversion, AMG C63S 6 piston front calipers, Porsche Panamera 4 piston rear calipers, GC Coilovers, Eibach ARBs, UUC Evo3/DSSR, Borla Exhaust w/Muffler Delete, BMW NBT with Carplay/Android Auto, Bi-Xenons, e38 Style 37 M-Pars, e60 Hubs 530i 6-speed swap build thread2005 Range Rover 4.6is (M62TU Powered) - 4.6is Engine Swap from X5, BMW NBT with Carplay/Android Auto
2006 Porsche Cayman S - Soul Performance Competition Headers and Exhaust, H&R Coilovers, 718 Boxster Spyder wheels, Rennline 35mm rear spacers
First thing that came to mind for converting an analog signal to CAN is this:
https://www.autosportlabs.com/produc...can-interface/
AnalogX_store.jpg
I've seen them used with Megasquirt installs on engine swaps of other cars, and they convert the signal nicely.
I haven't tried to use it for the non-TU cluster, but if the pin-out is followed you should be able to tap it into CAN from the temp signal.
Stancing is for drivers trapped in an abusive relationship of their own lives.
Arduino would probably be better as I'm sure you could then tell it the CAN ID to send the message to, which would make the cluster work without modification. The one Manny posted only sends out a generic CAN message for 0-5V and the device receiving it needs to translate and interpret it. I would think with the Arduino, you could do that translation internally and send out the proper CAN message.
Also, I don't think the pre-facelifts use CAN for anything other than EGS communication as they use ASC and manual models don't even have the CAN wires in the cluster's blue connector at all to my recollection. That may be different on 98 models specifically, but I don't know for sure.
If anyone ended up making one of these, I'm sure there would be several people interested in buying it as I've had requests from a lot of people with prefacelift 740/540s and any year 750s would would like a fully functional M5 cluster.
Last edited by blackknight530i; 04-05-2020 at 01:42 PM.
-Paul
2003 "M5" - Full M5 conversion, AMG C63S 6 piston front calipers, Porsche Panamera 4 piston rear calipers, GC Coilovers, Eibach ARBs, UUC Evo3/DSSR, Borla Exhaust w/Muffler Delete, BMW NBT with Carplay/Android Auto, Bi-Xenons, e38 Style 37 M-Pars, e60 Hubs 530i 6-speed swap build thread2005 Range Rover 4.6is (M62TU Powered) - 4.6is Engine Swap from X5, BMW NBT with Carplay/Android Auto
2006 Porsche Cayman S - Soul Performance Competition Headers and Exhaust, H&R Coilovers, 718 Boxster Spyder wheels, Rennline 35mm rear spacers
I have a 99 Pre-facelift 540 with the steptronic to compare my 97 automatic to. Or I should say I have my father’s 268k mile 99 touring that’s got a dead engine to compare my car to. That one actually has CAN Bus High and Low lines on the blue 18 pin connector. I have an ancient arduino sitting in its box that I’ve had for probably 8 years now, I’ll gladly brake that thing out and start toying with it if someone comes up with a solution.
Thanks,
Andrew
Last edited by 97M62BimmerKid; 04-11-2020 at 03:20 PM.
I would imagine so, I wasn’t expecting to just hook up a few wires and be off to the races, DIYing is almost always more complicated than that.
So let’s say I were to embark on trying to get this to work. I have very little idea as to how this works tbh. I barely have a solid grasp of the basics. All I know is that ones and zeros travel down the can bus high and low lines, high is the sending line and low is the return line so to speak. So if I were to populate the two pins on the blue 18-pin connector to an arduino with a CAN bus shield, what would be the next realistic step in this process, how would I be able to fetch the signal coming from the car and convert it to something the cluster can use?
Thanks,
Andrew
Technically it's not send/receive lines. It's differential signalling. The difference between the two signals denotes a 1/0. And that happens in whatever pattern to generate a list of message IDs and transmitted messages, and all the modules have to be able to handle prioritizing and whatnot. But thankfully can tranceivers do all that nasty business for us and we're just effectively reading serial data out of them.
So in NCS Expert, you'll find the following CAN parameters:
CAN_INSTR2_SENDEN
CAN_INSTR3_SENDEN
CAN_GANGANZEIGE
CAN_VERBRAUCH
CAN_KUEHLMITTELTEMP
CAN_DREHZAHL
You'll notice none of those say oil temp or RPM warning field. So there's two possibilities: 1) The instrument cluster always processes the messages those are carried on or 2) Enabling one (or more) of those other flags is what does the trick. My bet is #2.
Probably don't care about CAN_INSTR2_SENDEN or CAN_INSTR3_SENDEN -- those are messages sent *from* the instrument cluster, and we don't really need those for anything in this scenario.
CAN_GANGANZEIGE is for the gear display, that'd be a message from the transmission - don't care about that either.
So that leaves CAN_DREHZAHL (RPM), CAN_KUEHLMITTELTEMP (coolant temperature), and CAN_VERBRAUCH (fuel consumption)
So I know from disassembling software that this generation BMW generally send the following three messages:
0x316
0x329Code:byte 0 Bit 0 - Some status DBW related, set to 0 if everything is running normally Bit 1 - Unused (in MSS54) Bit 2 - Set to 0 if ASC/DSC error, 1 otherwise Bit 3 - Set to 0 if manual, Set to 1 if SMG (on this DME, others may be different) Bit 4 - Set to bit 0 of md_st_eingriff (torque intervention status) Bit 5 - Set to bit 1 of md_st_eingriff Bit 6 - Set to 1 AC driver error Bit 7 - Set to 1 if MAF error byte 1 - md_ind_ne_ist -- current engine torque after interventions (in %) byte 2 - RPM LSB byte 3 - RPM MSB byte 4 - md_ind_ist -- current engine torque before interventions (in %) byte 5 - md_reib -- torque loss of consumers (alternator, ac, oil pump, etc.) (in %) byte 7 - md_ind_lm_ist -- theoretical engine torque from air mass, excluding igntion angle (in %)
0x545Code:Byte 0: On my DME, that byte 0 constantly cycles between 0x11, 0x40, 0x80, and 0xDF. It looks like that 4th value is what can vary from engine to engine. On the MSS54, that 4th value is determined by ORing 0xC0 with a variable BMW calls "md_norm_can" which is taken directly from scalar called "K_MD_NORM" which is set to 0x1F on my DME. The math works out -- 0x1F OR 0xC0 = 0xDF. On a 330i, this 4th value is 0xD9 (so the OR'd value is 0x19). We'll get back to this for the MS43 Byte 1 - Coolant Temp (ºC = 0.75*X - 48) Byte 2 - atmospheric pressure (mbar = 2x + 597) Byte 3 bit 0 - Clutch switch (0 = engaged, 1 = disengage/neutral); bit 2 - Hardcoded to 1 (on MSS54, could be used on other DMEs) bit 4 - Possibly Motor Status (0 = on, 1 = off) bits 5, 6, 7 - Tank Evap duty cycle Byte 4 - Driver desired torque, relative (00 - FE) Byte 5 - Throttle position (00-FE). Byte 6 bit 0 - Brake pedal depressed (0 = off, 1 = on) bit 1 - Brake LIght Switch Error (0 = off, 1 = error) bit 2 kickdown switch depressed (0 = off, 1 = kickdown) Byte 7 - unused
Notice the first message I list contains RPM, second message contains coolant temp, last message contains fuel consumption.Code:Byte 0 Bit 0 - unused Bit 1 - Check Engine light (0 = off, 1 = on) Bit 3 - Cruise Control Light (0 = off, 1 = on) Bit 4 - EML Light (0 = off, 1 = on) Bit 7 - Check Gas Cap light (0 = off, 1 = on) Byte 1 - Fuel Consumption LSB Byte 2 - Fuel Consumption MSB (Values just cycle from 0 to FFFF then start over at zero. Fuel consumiption is the rate of change.) Byte 3 bit 0 - Oil level error if motortype = S62 bit 1 - Oil Level Warning bit 2 - Oil Level Error bit 3 - Overheat Light bit 4, 5, 6 - M3/M5 RPM Warning Field (refer to tables below) Byte 4 - Oil Temperature (ºC = X - 48) Byte 5 - Charge Light (0 = off, 1 = on; only used on some DMEs) Byte 6 - CSL Oil Level (format unclear) Byte 7 - Possibly MSS54 TPM Trigger RPM Warning Field Table (E46 M3 Cluster) Code: LED Value (dec) Value (bin) Left shift 7500 0 0 #000#### 7000 1 1 #001#### 6500 2 10 #010#### 6000 3 11 #011#### 5500 4 100 #100#### 5000 5 101 #101#### 4500 6 110 #110#### 4000 7 111 #111#### Or RPM Warning Field Table (E39 M5 Cluster) LED Value (dec) Value (bin) Left shift 6500 0 0 #000#### 5500 1 1 #001#### 5000 2 10 #010#### 4500 3 11 #011#### 4000 4 100 #100#### (bits 5-7 are unused on the E39 m5 cluster)
My guess would be that enabling the functions in NCS Expert would cause those specific messages to become active and handle their relative functionality.
So that means we would have to have the arduino handle the following:
Check engine light
Cruise control light
EML light (Don't know if that's used for anything on a non-DBW car)
Check gas cap light (Don't know if pre-ME7.2 cars even use such a light)
Fuel consumption
Oil level warning (again, don't know if that's a thing on the early cars)
Coolant overheat light
Oil tempeature
Oil temperature warning LEDs
Charge light, CSL stuff, and M3 TPMS stuff will not be relevant to an E39 cluster.
All the various lights are easy enough. I assume those are wires directly going to the E39 cluster currently. So all you'd really have to do is hook those wires up to the arduino's inputs (bumping voltage down before hand if they're 12v signals), and then setting the CAN message based on that input.
Oil temp we'll be interpretting an oil temperature sensor and then sending the oil temperature on that message. And the RPM lights you can code to light up however you want based on the oil temp you're reading.
The hard one is fuel consumption. It is apparently the rate of change of value that tells the cluster what the fuel consumption is. I'm not quite sure how to interpret the analog signal that is presumably coming from the DME and turn that into the rate of change that the CAN-mode expects.
Obviously the M5 cluster doesn't have a fuel consumption gauge, but if you want your mpg calculations to be right, gotta figure that out.
So basically you'd be filling your message with those values every loop and sending a message to the DME at x interval (I don't remember how often that message is expected off hand, but it's easy enough to log/measure).
Got a couple questions for you. Would the fuel consumption really be off by using the CAN message since pre-TU cars have the OBC that does that calculation anyways?
Also, slightly unrelated, but were you ever able to determine if the MSS54 and MSS52 send the oil temp data to the cluster differently? I've got a friend of mine that did a S54 swap into his e39 wagon and he installed one of my M5 clusters and we noticed that it doesn't read oil temp at all from the DME. Basically, the gauge does the opposite of the M3 cluster when you start the car and goes to full hot with no warm up lights on. In the test menu 16, I get 207*C, so it seems like it's sending temperature, but the wrong temp. This is with it on the bench and I think it does the same in the car.
-Paul
2003 "M5" - Full M5 conversion, AMG C63S 6 piston front calipers, Porsche Panamera 4 piston rear calipers, GC Coilovers, Eibach ARBs, UUC Evo3/DSSR, Borla Exhaust w/Muffler Delete, BMW NBT with Carplay/Android Auto, Bi-Xenons, e38 Style 37 M-Pars, e60 Hubs 530i 6-speed swap build thread2005 Range Rover 4.6is (M62TU Powered) - 4.6is Engine Swap from X5, BMW NBT with Carplay/Android Auto
2006 Porsche Cayman S - Soul Performance Competition Headers and Exhaust, H&R Coilovers, 718 Boxster Spyder wheels, Rennline 35mm rear spacers
Bookmarks