View Single Post
Old 06-02-2019, 03:40 PM
oldskewel oldskewel is offline
Join Date: Nov 2014
Location: SF Bay Area
Posts: 1,134
oldskewel is on a distinguished road
It all worked.

To clarify for others on a few things that are not clearly stated anywhere, that I can find...

On those nice graphical gauges you'll see on threads like this and others, there are 6 breakpoints that can be set. Two of the 8 numbers, printed in gray, are not settable. They are just interpolated for the graphics.

From looking on other threads, it appears that different (not E53, or post-facelift E53, even high vs. low cluster may be a factor) BMWs will have a different arrangement for these 6 values, e.g., they may all be consecutive in the EEPROM. But for my 2001 E53 3.0i with the high cluster, the 6 values (hexadecimal representation of the *C value of the breakpoint) are listed in every other element in an array of 12 values (2 posts earlier). The in-between values (between every other) vary between the 3 different examples I found. No idea what they mean, if anything. Other threads for other BMWs talk as if they are some representation of angle, but that is definitely not the case for my values. I left all those in-between values untouched, only editing the 6 true breakpoint values.

This 12-element array is repeated twice within the EEPROM. Both arrays must be found and edited, and must match eachother - the "checksum" (not really) is done by having an entire second copy.

In the PA Soft 1.4 EEPROM editor, each row contains 16 elements (bytes), and the 12-element array for the temp gauge will be / may be / was for me spread over two rows in each of the two locations in EEPROM. So don't expect the first element in the 12-element array to be the first element in a row.

Similarly, the in-between values are not consistent between the 3 examples I found (crowz, overboost, oldskewel), so you can't search the whole EEPROM for a segment and expect to find it (like I tried and failed at - made tougher since I was not sure if I was using the search function wrong, etc.).

So editing those 6 values within the 12-element array will let you customize your temp gauge however you like.

It is said and implied in a few places that the 3rd and 4th of those 6 values correspond to the beginning and ending temps in a buffer that points to a single angle = straight up. This is the infamous "buffer." So it is said that between 75*C and 115*C (the original settings) the needle points straight up at this single point. I don't know if that is an exaggeration (i.e., single point vs. truly a small linear range, for example as is shown in the graphic). I've seen some advocate to set both ends of that buffer with the same value, to basically mean it's a point, rather than a buffer. Not sure what to believe and not wanting to make it more of a research project, I set those values to 94 and 96*C. Not quite a point in case dividing by zero would blow up my car. And believing the thermostat opens around 95*C, I figured straight up would be good at that temp (which is also the midpoint of the original 75-115 buffer).

Figuring out all the above to a level of confidence needed before implementing it took some time. Hopefully these notes will help someone else.


However, unlike ^^^that^^^ research project (confirming exactly what EEPROM values to edit), installing and using PA Soft 1.4 was definitely not a research project. I wish I had got and installed it years ago. I bought something called BMW Scanner 1.4 on eBay:

Searching eBay for the 1.4 BMW Scanner will find it. I paid $12. Was supposed to come from China, but somehow mine arrived 3 days later from within CA. That eBay listing very clearly says that it will only work on Windows XP, but I did not try that since it worked fine on my Win10.

Then these instructions:
Work perfectly. No need think, guess, iterate, experiment. I just followed them exactly (despite the post being 7 years old), using my completely normal Win10 x64 laptop (about as normal as you can get), and it installed, ran, etc.

Reading / clearing errors (including some my Foxwell NT520Pro did not find), editing EEPROM, etc. all worked exactly as it was supposed to.

I had held off for a few years on any programming solutions like this since they always seem to be research projects just to get the thing installed. Believe it or not, it took about an hour to get my Foxwell going (registering myself, registering my device, learning that there are two different things to register, checking that the software is updated, etc. - it is just not clear and accurate, guessing is required), but this BMW Scanner 1.4 was up and running in 15 minutes.
2001 X5 3.0i, 190k miles, AT, owned since 2014

Last edited by oldskewel; 06-02-2019 at 03:56 PM.
Reply With Quote

Sponsored Links