# E85 3.0 I to 3.0 SI Manifold and software conversion, programming



## Jstic (Mar 6, 2013)

I never got beyond the manifold installation. Am happy with the extra power, but always wanted to find an easy way to flash the software. Let us know how you make out. thanks


----------



## richardfahljr (Sep 16, 2013)

I've been doing a lot of research on the ECU side. I'm getting close to understanding enough to ask forum members intelligent questions. 

I've been digging around ECU dumps from an I and SI and the maps and the data is very similar. In fact if you study the Data files you will notice that the OPA (program) file is the same for both models and the ODA (data) file is very similar. Only about 3,000 bytes difference between the two and much of that is in maps. I don't have any of the definition files (.xdf, .al2 etc) that many of the real tuners have so I'm working without any guide. Even my IDA program is too old to have the ability to disassemble the code. Probably been 10 years since I have used it to "modify" the function of existing software.


----------



## richardfahljr (Sep 16, 2013)

*I did it*

I finnally managed to get the 3.0si software into my 3.0. Not exactly how I intended but I managed to inject the entire parameter section of the si code into my DME. I spliced the code directly into the flash. I used the ODA file for the 3.0si less the file header and a parameter that defines the power class. I have 100 plus miles on the program and the car runs great. I know know how to use this information to create a ODA file that winfkp can flash but not sure why I would create the file. It's so easy to use my current Bdm rig and backup DME (cloned) from original.


----------



## hanselino (Jun 9, 2014)

richardfahljr said:


> I finnally managed to get the 3.0si software into my 3.0. Not exactly how I intended but I managed to inject the entire parameter section of the si code into my DME. I spliced the code directly into the flash. I used the ODA file for the 3.0si less the file header and a parameter that defines the power class. I have 100 plus miles on the program and the car runs great. I know know how to use this information to create a ODA file that winfkp can flash but not sure why I would create the file. It's so easy to use my current Bdm rig and backup DME (cloned) from original.


Very interesting, do you like to write a little more what and where you make your changes


----------



## Jstic (Mar 6, 2013)

richardfahljr said:


> I finnally managed to get the 3.0si software into my 3.0. Not exactly how I intended but I managed to inject the entire parameter section of the si code into my DME. I spliced the code directly into the flash. I used the ODA file for the 3.0si less the file header and a parameter that defines the power class. I have 100 plus miles on the program and the car runs great. I know know how to use this information to create a ODA file that winfkp can flash but not sure why I would create the file. It's so easy to use my current Bdm rig and backup DME (cloned) from original.


That's awesome!! Any chance you could share the file you flashed with, and instructions. Is your car an auto or manual transmission?


----------



## richardfahljr (Sep 16, 2013)

Yes, I plan to share. I have learned soo much from these forumes and I will give something back. in the last few days I have receiving several requests to share and help and I need to step back and develop a plan / guide that's easy to follow.


----------



## richardfahljr (Sep 16, 2013)

Big chance I will share. I just need to find the best way. I have learned soo much from forums that I need to give back. I'll come up with something in the next few days. Just stay tuned.


----------



## TerraPhantm (Nov 22, 2004)

Can't you just flash 7623585 with WinKFP? And possibly change your VO from *BU33 to *BU53?


----------



## Jstic (Mar 6, 2013)

Thanks, and please specify which transmission your source code is for.


----------



## Jstic (Mar 6, 2013)

TerraPhantm said:


> Can't you just flash 7623585 with WinKFP? And possibly change your VO from *BU33 to *BU53?


I think that has been tried and it resulted in terrible performance. I can't tell you why.


----------



## TerraPhantm (Nov 22, 2004)

Okay I just saw your posts at E90post, I think I understand the issue now.

To get unmodified si software to work properly, you need to change the below paramters, which cannot be changed unless STAT_BSZ_WERT (status_betriebsstundenzaehler or status service hour meter) is 0. In other words, the DME would have to be virgin. And that counter is almost certainly stored outside of the regions WinKFP touches.










Does that sound about right? And you've figured out how to make a hybrid file that has all the si parameters, but looks for the "UL" power class bytes?


----------



## richardfahljr (Sep 16, 2013)

Yes, BMW is not going to allow you to use their tools to upgrade your car to a 330 or 3.0SI. The Powerclass coding and hours meter reset issue has been discussed and beat to death. I would not waste any time on it. My theory was to make the Data file appear like the correct data and the DME or what ever is checking will have no way to know that the maps/parameters belonged to a different car. All but about 400 bytes of the 300,000 in the data section are from the original 3.0SI ODA.

I have never tuned a car before and this is probably more of a hack then a tune so it took a long time to realize that all of the cars with the MSV70 run the same program, OPA file with occasional updates. The differences are in the parameters section which happens to be 100% of the ODA file. Winfkp inserts the ODA file 100% converted from the Intel format into your DME.

Once you know that and start looking at the ODA files for the different cars, you will see how similar things are.


----------



## TerraPhantm (Nov 22, 2004)

Yeah I've worked with 0das and 0pas plenty on the MSS54 side. You could probably reset the hours meter via BDM if you know where to look (I don't, but I imagine it will be stored in the same place where all the adaptions are stored if it's like other BMW DMEs). If you know how the diagnostic commands look in the assembly, you can definitely find it. I do miss the old DMEs which had far less crap to sort through though.

If I understand correctly, BMW just implemented a simple check to make sure you're not getting a free upgrade like you said. The byte in the data section (0da) has to match the byte that NCS reads (dunno where that's stored, but probably also accessible via BDM). If the bytes don't match, the DME enters limp mode. The "proper" way to fix it would be to virginize the DME, flash the si software, and right the power class. But that's a pain in the ass, much easier to just flip the right bits in the 3.0si 0da, fix checksums, and write that to the car via WinKFP.

The location will be different since my damos is for an old variant, but if you change the below byte to match the what your DME originally has, it should work










Edit: Well I did find the corresponding byte in the 0da (it's in line 1315). You'd basically want to change the first 02 to 00. I'd just post a modified 0da, but I don't know how to correct the internal checksums (the ihex checksums are easy enough of course0


----------



## richardfahljr (Sep 16, 2013)

You you nailed it, With the datasets for program 7577968 I think the new location is at 0x844D50. 

I believe the file header has a lot of information that defines the dataset as well. 

Revtor has made it easy to fix the ODA checksums. Both the lines and total file. The checksum for the actual program is another issue. I know where it is and what data it covers but need to use programs to calculate. My galletto did this and so will Winols.

The attached image shows the checksum, number of blocks and the beginning and end location of those blocks. I understand this is a simple CRC32 but I have not been able to calculate it.

The Mss54 group shared a lot more information than what I've found for the MSV70. It's been a long tough road for someone who new nothing about these things.

I took the same Damos you have and moved a few hundred maps to the new program 7577968 and added English to most of the map names. Took a while but this was a learning project. I can easily move one step further and try to tweak a little more power from this thing. First I would like to look at the MSV80 maps for the 272HP versions of the N52 but I don't have a Damos for the processor yet.


----------



## TerraPhantm (Nov 22, 2004)

By file headers, do you mean this stuff?


```
;==============================================================================
;Austausch-Datei Daten
;==============================================================================
;
;;ZL_System:        MSV70
;;ZL_Projekt:       
;;ZL_Referenz:
;
;==============================================================================
;Freigabe     B M W  A G  Muenchen
;==============================================================================
;
;;K_Stand:
;;K_File-Name:      S7623586.0da
;
;Fahrzeugidentifikation
;;K_F1:          
;;K_F2:          
;;K_F3: 
;;K_F4: 
;
;Applikation
;;KA_Bearbeiter:    Evers, Bernd
;;KA_Abteilung:     
;;KA_Telefon:       
;;KA_Freigabedatum:  17.09.2010
;
;Konstruktion
;;KK_Bearbeiter:    Evers, Bernd
;;KK_Abteilung:     
;;KK_Telefon:       
;;KK_Freigabedatum:  17.09.2010
;
;Verifikation
;;KV_Bearbeiter:    
;;KV_Abteilung:
;;KV_Telefon:
;;KV_Freigabedatum:
;
;Verwendung
;;K_V1: 
;;K_V2: 
;
;==============================================================================
;Freigabe     SiemensVDO AG
;==============================================================================
;
;;Z_Stand:
;;Z_File-Name:      9PPL921S
;
;Applikation
;;ZA_Bearbeiter:    
;;ZA_Abteilung:     
;;ZA_Telefon:       
;;ZA_Freigabedatum: 
;
;Software-Entwicklung
;;ZS_Bearbeiter:    
;;ZS_Abteilung:     
;;ZS_Telefon:       
;;ZS_Freigabedatum: 
;
;EOL-Programmierung
;;ZE_Bearbeiter:    
;;ZE_Abteilung:     
;;ZE_Telefon:       
;;ZE_Freigabedatum: 
;
;Verwendung
;;Z_V1: 
;;Z_V2: 
;
;Logistik
;;ZL_Freigabenummer: AAEP
;==============================================================================
```
If so, I don't think that has an effect on anything. Those are all comments that WinKFP ignores.

I don't have an ols module for the msv70, otherwise I guess I could correct the checksum (is there only one? If so that shouldn't be too difficult to solve assuming it's a standard CRC... I could probably whip up a program that cycles through different start values until it finds a match)

Unfortunately I don't have any MSV80 damos/ols files either. We're probably using the same sources.


----------



## richardfahljr (Sep 16, 2013)

I am referring to the first two actual blocks of data. As you mention the remarks are completely ignored by Winfkp and are not ported into the DME at all. Anything preceded by a ";" is ignored "$" are special internal commands and don't port into the DME either.


```
$REFERENZ 0049PP0L901S0RF1S Q
:020000020000FC
:02000004008476
:10000000434139505039304C39505039304C3030F0
:10001000303034395050304C393031533052463111
:1000200053303034395050304C39303153305246DF
:100030003153303034395050304C393031533052E4
:10004000463153434139505039304C2E444154FFCE
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A00000000000[COLOR="Red"]73E226F50000000200840240[/COLOR]18
:1000B00000[COLOR="red"]84FFFF008500000085EAFF[/COLOR]FFFFFFFFCF
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:0C00E010FFFFFFFFFFFFFFFFFFFFFFFF10
:020000020000FC
:02000004008476
:0200EC10000002
:020000020000FC
:02000004008476
:1000EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
:0200FE10FFFFF2
:020000020000FC
:02000004008476
:1001000000000020DC28B02DCD1BEFEDB6C4BF4EA3
:1001100068704FEF5B2AEB78EF30AE586C77F6FCE7
:1001200066B97C50F69CEC5F14A7EE20825286E103
:10013000BEE4CCD565356CA42C6535115C10F49704
:10014000A3A9E90F803E7D41B5013195D68803CB47
:10015000FD2BF22D35091A1EF1759111A2FAE8E274
:100160006622B8D391D36636A05785049C4087A8F1
:10017000B903473AF3D2573C36DF586B8EF788F510
:0401801027A6191D68
:020000020000FC
:02000004008476
```
I'm on another PC right now, so this was just a random ODA file but the blocks are the same. I highlighted the checksum, # of blocks and start/end address for each of those blocks. It becomes a little more clear when converted into a BIN file.

One checksum for the Parameters section and another completely separate checksum for the program section which we don't care about.


----------



## richardfahljr (Sep 16, 2013)

*Winfkp and custom Oda Files*

Terraphantm,

I'm still having problems using winfkp to post the working tune. Winfkp flashes the file but then fails at the end. I had been renaming the custom file and swapping the original ODa file and I'm now thinking that I should use the flashing ODa file approach you wrote about in the E46 forums. I just found that post last night. Initially I could not import anything into my Winfkp but then learned the destination data directory did not exist. Fixed that and I can now import, so back to the garage. The process is a pain as a failed flash leaves me without my 3.0 SI tune unless I remove the ECU and plug in the BDM again. Has anyone successfully flashed custom ODa files into the MSV70?

Was the Checksum location information any use to you?

I tried posting the ODA file but this forum does not let you attached very many file types.:dunno:


----------



## richardfahljr (Sep 16, 2013)

*Sample text from ODA File*

Failed to post the full ODa file, the following are the main parts of the ODa file I have been using;


```
$REFERENZ 0049PP0L921S0YD3S V
:020000020000FC
:02000004008476
:10000000434139505039324C39505039324C3030EC
:10001000303034395050304C393231533059443308
:1000200053303034395050304C39323153305944D8
:100030003353303034395050304C393231533059D9
:10004000443353434139505039324C2E444154FFCC
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A00000000000BED8E7EF00000002008402401C
:1000B0000084FFFF008500000085EAFFFFFFFFFFCF
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:0C00E010FFFFFFFFFFFFFFFFFFFFFFFF10
:020000020000FC
:02000004008476
:0200EC10000002
:020000020000FC
:02000004008476
:1000EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
:0200FE10FFFFF2
:020000020000FC
:02000004008476
:10010000000000204E01252F3C2A2DC48411E1A3BC
:10011000A4F0181E5D42BCE6691928529C5463681D
:10012000DC55FB4F679CBFCCB962C12C1E40FB560F
:10013000F4237FB42B74B1B77D9B6C7F4351E153A3
:10014000837FC929DDFF9597EB11C95146D1F7404F
:100150004E077985E3B7AE15381E6CC2306BC6A664
:1001600056FC645DF49905AAF48A1C52C410EEB1E1
:10017000027D053114AC01993E7083419CBA990D02
:040180103A3A701077
:020000020000FC
:02000004008476
:100240000000000200840000008400FF00840240DF

-------------------
Original Data from 3.0 SI 
-------------------

:104D500000DB01015A0000C800C801010302061966

-------------------
Original Data from 3.0 SI 
-------------------

$CHECKSUMME 0AEA H
;$CARB_MODE_9_CVN 1084C66F 2
;
;
;
;
;
;
;
:00000001FF
```
Original ODA file is S7623582 for the 3.0I and the S7623586 for the 3.0SI (Both US versions)

I have not given up yet.


----------



## Jstic (Mar 6, 2013)

Hmm, my S7623586 has a different checksum and the last couple lines are a bit different. I wonder why?


----------



## richardfahljr (Sep 16, 2013)

Jstic said:


> Hmm, my S7623586 has a different checksum and the last couple lines are a bit different. I wonder why?


Which checksums are you talking about?

The checksum in the "parameters" section will be completely new with the modified data in the powerclass map.

The ODA file has a checksum at the end of each line and the $checksumme will reflect the final value for the entire file, again these will be different once anything changes.


----------



## Jstic (Mar 6, 2013)

Thanks for explaining that. I thought the file you posted was the default ODA file for the 3.0si, didn't realize it had been modified or powerclass had been changed.


----------



## richardfahljr (Sep 16, 2013)

Jstic said:


> Thanks for explaining that. I thought the file you posted was the default ODA file for the 3.0si, didn't realize it had been modified or powerclass had been changed.


Your welcome, I probably could have explained myself a little better in my post.

I still have not had time to try the ,"new" method of flashing files with winfkp. I needed to spend time with the family.


----------

