Nice work. I like the keep history forever feature.
Announcement
Collapse
No announcement yet.
MSS54 DS2 Tool: FREE TOOL for programming DME - Tune, full binary, flash counter, etc
Collapse
X
-
Overall works great! Potential bug, and I'm not sure if this is a quirk of doing things on the bench with a frankensteined DME (early MSS52 with 0F70K CPUs and 29F400AB flash memory flashed with a CSL binary), but if I go back to the connect screen after doing stuff, the program seems to disconnect from the DME and doesn't successfully reconnect (in either COM mode or D2XX) without closing and restarting.
- Likes 1
Comment
-
hmmm interesting. Couple of questions:Originally posted by terra View PostOverall works great! Potential bug, and I'm not sure if this is a quirk of doing things on the bench with a frankensteined DME (early MSS52 with 0F70K CPUs and 29F400AB flash memory flashed with a CSL binary), but if I go back to the connect screen after doing stuff, the program seems to disconnect from the DME and doesn't successfully reconnect (in either COM mode or D2XX) without closing and restarting.
- Do the KL30 and KL15 lines show as on? or do you see them marked as off? (I wonder if this is it and I have an unaccounted-for scenario in the reconnection logic)
- What sorts of things have you done prior to going back to the connect screen? read/write? or just read?
If you're able to grab the log file from that session and send it to me that would be super-helpful in figuring out what's happened :-)2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
Comment
-
KL30 on, KL15 off (I don't have KL15 wired on my bench setup, and honestly I'm not 100% sure if my cable even reports it). It seems just going to any screen and then back to the connect screen causes the behavior. But it was mostly writing that I messed withOriginally posted by karter16 View Post
hmmm interesting. Couple of questions:
- Do the KL30 and KL15 lines show as on? or do you see them marked as off? (I wonder if this is it and I have an unaccounted-for scenario in the reconnection logic)
- What sorts of things have you done prior to going back to the connect screen? read/write? or just read?
If you're able to grab the log file from that session and send it to me that would be super-helpful in figuring out what's happened :-)
I'll recreate and grab a log tonight
- Likes 2
Comment
-
Originally posted by karter16 View Post
hmmm interesting. Couple of questions:
- Do the KL30 and KL15 lines show as on? or do you see them marked as off? (I wonder if this is it and I have an unaccounted-for scenario in the reconnection logic)
- What sorts of things have you done prior to going back to the connect screen? read/write? or just read?
If you're able to grab the log file from that session and send it to me that would be super-helpful in figuring out what's happened :-)
I think i had this too. When i reset the Flash counter. Once the write was over i am sure had to quit the app to reconnect. I'll try to recreate it.Originally posted by terra View Post
KL30 on, KL15 off (I don't have KL15 wired on my bench setup, and honestly I'm not 100% sure if my cable even reports it). It seems just going to any screen and then back to the connect screen causes the behavior. But it was mostly writing that I messed with
I'll recreate and grab a log tonight
- Likes 1
Comment
-
Awesome thanks guys - I'm pretty sure it's going to be a scenario that isn't properly accounted for. Let me investigate and see what I can come up with. My cable does report KL15 which makes it a bit hard to test that the cases where it isn't are handled properly - I thought I had it nailed but it seems not.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
Comment
-
Found and fixed! (I think)Originally posted by terra View Post
KL30 on, KL15 off (I don't have KL15 wired on my bench setup, and honestly I'm not 100% sure if my cable even reports it). It seems just going to any screen and then back to the connect screen causes the behavior. But it was mostly writing that I messed with
I'll recreate and grab a log tonight
v1.0.2 is now published: https://github.com/karter16/MSS54-DS...ublic/releases
Please give it a go when you get a chance and let me know if the issue is now resolved :-)2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
- Likes 1
Comment
-
Awesome thanks for the confirmation!!!Originally posted by terra View PostSeems to work!2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
Comment
-
Live Values/Logging Proof of Concept (This is not available in the current version)
Modelled on, what I presume is, the same approach that TestO uses which is calling the DS2 I/O sample messages (means you get a whole set of values in a single DS2 call). Essentially select the "sets of values" you want to see on the left and side, and then see the values in the table on the right hand side. From a live-read perspective there's no performance benefit in selecting single values to display. I will definitely be building out the ability to select what specific values to log to CSV though.
The ultimate data rate is limited by the DS2 protocol at 9600 baud. If you select a single set of values like the screenshot below you can see the data frequency is about 10Hz, as you select more sets to include the frequency drops accordingly due more more frames transiting the bus.
Last edited by karter16; 05-20-2026, 03:15 PM.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
- Likes 7
Comment
-
Yeah interesting. It was in that I felt it was unnecessary complexity for the user to understand. But if we think it's a common use case then I t would be easy for me to add. I think probably allow the user to select a full bin when writing tune and then just pop a confirmation to the user to confirm that's what they want to do?Originally posted by terra View PostI assume it's a deliberate design choice to not allow flashing a tune from a full bin?
Other option would be to entirely flip the paradigm around and have a single “write” function and based on the source file type the user selects then given them the option of what segment/s they want to write? Maybe that's simpler? (this would also make it easy then if say a user had one DME and swapped back and forth between M3 and CSL progs. They could then choose to restore their Adaptions (EEPROM) block, etc. as well if they wanted.)
Sent from my iPhone using TapatalkLast edited by karter16; 05-20-2026, 03:08 PM.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread | Community Patch | MSS54 DS2 Tool
- Likes 1
Comment
-
The latter is how I do it in mss6x flasher (minus restoring adaptions etc), but that's also partly because on those DMEs writing a program wipes the tune so it's pretty much necessary. I do like the idea of having a 'one click' solution to accomplishing what is essentially a complete restore from a different backup (minus ISN I guess). Could be useful for those scenarios where one needs to swap back to a stock tune not want to go through the hassle of setting the drive cycles again etc.
Another thought I had was adding a RAM dumping functionality, though again probably mostly useful for us tinkerers out there.
- Likes 2
Comment
-
Awesome work! Will test it soon.
I don't know if you have implemented security checks like flashing CSL bootloader in non CSL boot loader ECU?
I would expect a check between file and actual data in ECU. This would reduce the risk of a brick.
Don't know if you want to implement more diagnostic information? Activate actuators, DMTL checks and VANOS check? I could support you on the VANOS check.
The MSS5x ECU also holds cylinder individual CO trims. I don't know were these are stored yet. Since the ECUs I have read have different values, I suspect these are adjusted in the factory with special manifold or other procedure.
In any case its useless once you don't have extraction points on your exhaust manifolds (Like S38, S15 and S50).
I do have my own INPA IPO file to adjust these on MSS50.
- Likes 1
Comment

Comment