Try out the new beta site for M3Post. You can read more about what's happening here
BMW M3 Forum (E90 E92)

BMW Garage BMW Meets Register Search Today's Posts Mark Forums Read

Go Back   M3Post - BMW M3 Forum > E90/E92 M3 Technical Topics > Engine, Transmission, Exhaust, Drivetrain, ECU Software Modifications
 
Mporium BMW
Post Reply
 
Thread Tools
      04-13-2020, 03:19 PM   #1
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

MSS6x Flasher - Initial Release

I believe the app has been sufficiently proven itself to be safe at this point and am comfortable releasing it now. You can grab it here: https://nam3forum.com/forums/forum/e...r-now-released



Functionality:
  • Ability to read and write tunes and program code
  • Ability to read the ISN (MSS65) / EWS Secret Key (MSS60) over OBDII
    • This means a full backup can be made entirely over OBDII
  • Ability to dump RAM

Safety:
  • The software will verify that binaries loaded are in the correct format and order
  • The software will verify that programs being written match the hardware you’re trying to flash, and will verify all tunes being written match the software you’re trying to flash
  • If the tune or program are not stock, the program will make sure you have an RSA delete before continuing (you can override this warning, but the flash will likely fail if you don’t have an RSA delete that I couldn’t detect
  • The program will not let you flash an RSA bypass if the binary being loaded doesn’t match the software variant you are currently on

Performance:
  • Backup tune in < 5 minutes
  • Full backup 45-60 minutes
    • 2 hours in long mode
  • Flash tune in approximately 1 minute
  • Flash full program in ~12 minutes
  • Flash RSA bypass in ~15 minutes
Attached Images
 

Last edited by Terraphantm; 04-19-2020 at 12:30 AM..
Appreciate 8
akkando6089.50
Edberto26.50
derbo3808.50
Real66.50
6ixSpd6272.00
SaNGRia1435.00
TboneS541592.50
F4rmost239.50
      04-13-2020, 03:44 PM   #2
amrazM
mTekMods
amrazM's Avatar
United_States
2478
Rep
3,150
Posts

Drives: like a granny.
Join Date: Jan 2010
Location: Manhatan

iTrader: (1)

Who is building the maps after flashing?
Appreciate 0
      04-13-2020, 04:31 PM   #3
pbonsalb
Lieutenant General
7679
Rep
13,759
Posts

Drives: 18 F90 M5, 99 E36 M3 Turbo
Join Date: Feb 2011
Location: New England

iTrader: (4)

Good job!
Appreciate 1
      04-14-2020, 12:54 AM   #4
maicol76
First Lieutenant
231
Rep
316
Posts

Drives: E92 M3
Join Date: Oct 2011
Location: CA, Santa fe

iTrader: (0)

Good news~! great job~!
__________________
2011 LCI W/DCT / K&N drop in filter / CSF radiator / do88 oil cooler / do88 DCT cooler / Akra Evo / Moton CS 2 way coilover / Wiechers strut bar(F) / ARC strut bar(R) / Alcon Superkit BBK / Tarox rotor / Geoff steel EHPS / Sard carbon-Kevlar GT wing / GT4 carnard / Aim Evo4+G-dash+GT Steering+S/C GP HD / Bride Zeta3 / etc.
Appreciate 0
      04-14-2020, 01:20 AM   #5
6ixSpd
Save the manuals!
6ixSpd's Avatar
6272
Rep
6,848
Posts

Drives: '12 M3, '19 X5, '23 718 Spyder
Join Date: Feb 2016
Location: 416

iTrader: (4)

Amazing! You did incredible work in the MSS54 community that's been a huge help in the past for some of my custom ECU modifications.

Being able to do the same with the MSS65 would be a Godsend.

Curious, does anyone have MSS65 XDF repository for hex addresses for manipulating parameters in the ECU binaries?
Appreciate 0
      04-14-2020, 01:28 AM   #6
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

Quote:
Originally Posted by 6ixSpd View Post
Amazing! You did incredible work in the MSS54 community that's been a huge help in the past for some of my custom ECU modifications.

Being able to do the same with the MSS65 would be a Godsend.

Curious, does anyone have MSS65 XDF repository for hex addresses for manipulating parameters in the ECU binaries?
If there is one, I don't know if it's public.

I do have an A2L for what appears to be a pre-production MSS60 software variant. Only thing is I can't remember for the life of me if it's something I found scouring the internet or if it's something that was given to me with the expectation that it stays private.
Appreciate 3
6ixSpd6272.00
SYT_Shadow12759.50
chocstraw601.00
      04-14-2020, 02:17 AM   #7
GORDON.M3
Brigadier General
GORDON.M3's Avatar
Canada
1646
Rep
3,149
Posts

Drives: E92 M3 • G05 X5 M-Sport
Join Date: Dec 2013
Location: LAX/YYZ/NRT

iTrader: (12)

Amazing work, I assume it will work for those who have the BMW ICOM?
I also have a K+DCAN (non-bimmergeeks) cable with the upgraded custom firmware without the bluetooth modification, it can sucessfully program many DMEs without bricking.
__________________
North American Mr12Volt Carplay/Android Auto Distributor
INSTAGRAM: GORDON.M3
DINAN | EVOSPORT | VAC | ARP | RD SPORT | NEEZ | EIBACH | CSF | IND | BILSTEIN | KLASSEN | BREMBO | ENDLESS | BBS | BPM SPORT | PROJECT MU | EVENTURI
Appreciate 0
      04-14-2020, 02:40 AM   #8
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

Quote:
Originally Posted by GORDON.M3 View Post
Amazing work, I assume it will work for those who have the BMW ICOM?
I also have a K+DCAN (non-bimmergeeks) cable with the upgraded custom firmware without the bluetooth modification, it can sucessfully program many DMEs without bricking.
No ICOM support. Right now I only support K+DCAN cables (and I suppose a regular K-line cable would work on a K-line car -- I don't think that applies to M3s). In theory I can support any interface that EdiabasLib supports, but I haven't tried anything other than the K+DCAN (and right now the program is basically hard coded to look for a COM port). No support for the ICOM there as far as I'm aware.
Appreciate 1
GORDON.M31645.50
      04-14-2020, 05:34 PM   #9
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

Updated the software:

Safety changes:
  • Added sanity checks for loaded files.
  • Tunes
    • Check that SW reference is compatible with installed program
    • Check that injection and ignition tunes are of the same version
    • Check that injection and ignition tunes are in the correct order
  • Full writes:
    • Check that Program Reference is compatible with DME hardware
    • Check that injection and ignition programs are of the same version
    • Check that a tune is loaded in the binary and passes above tune checks
  • Added a warning if you attempt to close the application in the middle of a flash process
    • This SHOULD allow the application to keep running while the warning shows, but I did have one instance where the flash got interrupted anyway. Maybe I knocked my cable or something. YMMV
  • Disabled all buttons (ident/read/write) during active flash process

New Features:
  • Ram dumping - hold shift while you click Read DME, and the software will dump the RAM and save each side as two different files
  • EWS4 SK Reading (MSS60 Only) - Reads the injection RAM, searches for the EWS4 SK using a pattern search.
    • If successful, the key is displayed in the application and a file with the SK is saved (file will include the appropriate header to be pasted in directly at 0x7948 of the injection dump)
    • When doing a full read on the MSS60, the DME will search for the SK at the end and add it to the dump before saving the file (I did not thoroughly test this due to the nature of how long full reads take, but I expect it will work fine).

The previous link I shared with everyone should point to the latest version of the app

Now I want to pose a question for everyone about how I should handle the safety of the RSA flashing:
The trick I currently use to defeat RSA has the potential to permanently / unrecoverably brick non-BDMable MSS60s if flashed with a non-EdiabasLib cable
I can change the method slightly so that the bricks will at least be recoverable via WinKFP when using an appropriate interface -- however this method will roughly double the time it takes to do the RSA bypass
So what do you guys prefer I do? As much as it pains me to lose the speed, I'm sorta thinking it would be more responsible to do it the slower way.
Even with the above change, if someone flashes the DME Program (or repeats the RSA bypass) with a non-EdiabasLib cable after an RSA bypass has already been installed, the DME will unrecoverably brick - I cannot get around that.

Last edited by Terraphantm; 04-14-2020 at 05:55 PM..
Appreciate 4
maicol76231.00
6ixSpd6272.00
SYT_Shadow12759.50
SaNGRia1435.00
      04-14-2020, 06:01 PM   #10
SYT_Shadow
///M Powered for Life
SYT_Shadow's Avatar
12760
Rep
11,154
Posts

Drives: E90M/E92M/M4GTS/M4GT4/M6/X5M
Join Date: Sep 2010
Location: Greenwich, CT

iTrader: (2)

this is a huge deal Terra, thank you so much!
Appreciate 0
      04-19-2020, 12:30 AM   #11
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

I feel comfortable releasing the application now. See first post.
Appreciate 1
SYT_Shadow12759.50
      04-22-2020, 09:55 PM   #12
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

Dunno if anyone is interested, but I managed to unlock the BDM port on a locked MSS60. Still trying to work out a way to make it easy for people to do, but at least it's been proven that they can be unlocked.

Do note that if you write/lock a new secret key through tool32 (rather than just writing it directly via BDM), that will relock the DME.
Appreciate 1
SYT_Shadow12759.50
      04-22-2020, 10:03 PM   #13
SYT_Shadow
///M Powered for Life
SYT_Shadow's Avatar
12760
Rep
11,154
Posts

Drives: E90M/E92M/M4GTS/M4GT4/M6/X5M
Join Date: Sep 2010
Location: Greenwich, CT

iTrader: (2)

I wish I understood more of what you're talking about Terra! Where is the explanation for simple minded people?
Appreciate 0
      04-22-2020, 10:28 PM   #14
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

Quote:
Originally Posted by SYT_Shadow View Post
I wish I understood more of what you're talking about Terra! Where is the explanation for simple minded people?
BDM = "Background Debug Mode" - basically it's a tool the engineers would have used while developing the ECU to see what the processors are doing as code executes. That mode can also be used to read/write flash directly to the ECU. Generally useful feature to have - you recover from flashes that make your DME unbootable, and you can use it to create ECU clones in case your original develops a hardware issue or something.

With the E9x M3, BMW started locking the port sometime in the middle of model year 2008. So we couldn't clone ECUs, nor was it possible to recover from bad flashes. It was also believed to make it impossible to recover the EWS data from the DME (though I figured out how to do that over the OBDII port with my app)

Now that the port can be unlocked, we've got basically full control of these things. If you have a bad flash, just restore a backup. If the ECU messes up for some other reason, just copy a backup onto a used one. Etc.
Appreciate 1
SYT_Shadow12759.50
      04-23-2020, 07:42 AM   #15
SYT_Shadow
///M Powered for Life
SYT_Shadow's Avatar
12760
Rep
11,154
Posts

Drives: E90M/E92M/M4GTS/M4GT4/M6/X5M
Join Date: Sep 2010
Location: Greenwich, CT

iTrader: (2)

Quote:
Originally Posted by Terraphantm View Post
BDM = "Background Debug Mode" - basically it's a tool the engineers would have used while developing the ECU to see what the processors are doing as code executes. That mode can also be used to read/write flash directly to the ECU. Generally useful feature to have - you recover from flashes that make your DME unbootable, and you can use it to create ECU clones in case your original develops a hardware issue or something.

With the E9x M3, BMW started locking the port sometime in the middle of model year 2008. So we couldn't clone ECUs, nor was it possible to recover from bad flashes. It was also believed to make it impossible to recover the EWS data from the DME (though I figured out how to do that over the OBDII port with my app)

Now that the port can be unlocked, we've got basically full control of these things. If you have a bad flash, just restore a backup. If the ECU messes up for some other reason, just copy a backup onto a used one. Etc.
Sounds like a huge improvement. Thank you
Appreciate 0
      04-28-2020, 05:58 PM   #16
derbo
Brigadier General
derbo's Avatar
3809
Rep
3,065
Posts

Drives: BMW M3
Join Date: Aug 2017
Location: Bay Area, CA

iTrader: (2)

Wonderful job Terra!

Good to see you on here Dunno if you remember me from the ZHP forums.
__________________
IG:@lowtecderbo
Journal: Link
E9x ZCP Suspension Info: Link
Track Chat Discord: https://discord.gg/VsKbTyqBVj
Appreciate 0
      04-29-2020, 05:00 AM   #17
BPMSport
BimmerPost Supporting Vendor
BPMSport's Avatar
3592
Rep
7,300
Posts


Drives: 2x Harrop E90 M3, E92 M3, E39
Join Date: Apr 2008
Location: SoCal

iTrader: (9)

Garage List
2000 BMW M5  [0.00]
1990 BMW 735i Turbo  [0.00]
2008 BMW M3  [7.50]
2015 BMW M3  [0.00]
2015 BMW M5  [0.00]
As someone that has spent countless weeks working on MSS6x DMEs, and I'm not referencing time tuning them as that would amount to years, I'm pretty impressed. Just curious if you are applying any type of patch in order to read the ISN? I had a lot fun nearly a decade ago identifying the Secret keys in both the DME and CAS. Those were the good times. Nice work terra.
Appreciate 1
SYT_Shadow12759.50
      04-29-2020, 07:04 AM   #18
Terraphantm
Major
1348
Rep
1,261
Posts

Drives: i5 M60, E46 M3
Join Date: Apr 2009
Location: N/A

iTrader: (1)

The way I've got it setup, it'll try reading the ISN/SK from the real location first, and if that returns FFs (which it will if my patches haven't been written), then it'll dump RAM from the left / injection CPU and do a pattern search. I haven't had that fail on me yet, but maybe there's an odd program version I don't have access to where they actually do clear it from RAM.

I do patch the read routine to allow that section to be read out when doing the RSA bypass, so on an already patched DME it will read the ISN/SK directly rather than searching the RAM for it.
Appreciate 2
SYT_Shadow12759.50
Bubbles2891.00
      04-29-2020, 08:29 AM   #19
Bubbles
Brigadier General
Bubbles's Avatar
Cayman Islands
2891
Rep
4,444
Posts

Drives: Green Bastard
Join Date: Jun 2007
Location: Bishop Bend

iTrader: (3)

I left tuning after I popped my third set of turbos at Sebring. Terraphantm you’ve renewed my interest. Nice work.
__________________
Appreciate 0
      05-01-2020, 09:40 PM   #20
1984M3
New Member
1984M3's Avatar
17
Rep
29
Posts

Drives: aw e92 m3
Join Date: Mar 2010
Location: N/A

iTrader: (1)

Thanks terra! For now, just updated ecu software to 241E. Verified the before and after using your application. Will take a full read later on.
Appreciate 0
      05-02-2020, 02:23 AM   #21
wyatth
Brigadier General
3968
Rep
3,018
Posts

Drives: E90 M3, G05 X5
Join Date: Dec 2007
Location: Bay Area

iTrader: (1)

All over my head but Terra, you’re a a God! Great to see you over here, loved your contributions on M3F.
Appreciate 0
      07-23-2023, 05:08 AM   #22
--Aramis--
Private First Class
202
Rep
102
Posts

Drives: M3
Join Date: Aug 2019
Location: France

iTrader: (0)

Fantastic job! Thanks Terraphantm
Appreciate 0
Post Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -5. The time now is 11:56 AM.




m3post
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
1Addicts.com, BIMMERPOST.com, E90Post.com, F30Post.com, M3Post.com, ZPost.com, 5Post.com, 6Post.com, 7Post.com, XBimmers.com logo and trademark are properties of BIMMERPOST