Originally posted by George Hill
View Post
Announcement
Collapse
No announcement yet.
MSS54 DS2 Tool: FREE TOOL for programming DME - Tune, full binary, flash counter, etc
Collapse
X
-
Sure, but you can't run that without an EWS/IKE from an M3.Originally posted by Shonky View PostIt is possible to run DIS in a VM and get VANOslS results. A bit painful and tricky to get working though so I'm all for an easy to use app.
'09 HP2S, '12 R12GSA, '00 Black 323iT, '02 Alpine 325iT (Track Wagon), '02 Alpine 330iT
Instagram @HillPerformanceBimmers
Email to [email protected]
Comment
-
No, you need to be able to access the DMS test group/plan, which is essentially the functions from DIS. And without an M3 EWS ISTA/DIS won't identify the S54 properly to allow the functions to populate.Originally posted by ac427 View PostCan you run the "Throttle set point" calibration on a swapped car?
'09 HP2S, '12 R12GSA, '00 Black 323iT, '02 Alpine 325iT (Track Wagon), '02 Alpine 330iT
Instagram @HillPerformanceBimmers
Email to [email protected]
Comment
-
Maybe? I thought you could only type in the VIN to get you to wiring diagrams, I didn't think it would pull up test plans and let you run them? BUT it has been 16+ years since I was regularly using DIS, very possible my memory is foggy on this. But even then you still need a cluster as a gateway for the communication functions?Originally posted by terra View PostI seem to recall DIS letting you just manually enter the car's details, and I'm pretty sure I was able to access test plans etc that way ?
With that said, not many people have DIS anymore and the DS2 program is soooo easy. I'm crossing my fingers karter16 gets it operational.
'09 HP2S, '12 R12GSA, '00 Black 323iT, '02 Alpine 325iT (Track Wagon), '02 Alpine 330iT
Instagram @HillPerformanceBimmers
Email to [email protected]
Comment
-
Tried another cable and fast read worked! K+DCAN clear cableOriginally posted by karter16 View Post
And to confirm, have you set the COM latency time to 1ms in device manager? If you use FTDI driver then the software can do this automatically, if you use COM then you have to make sure it's set to 1ms (defaults to 16ms).
The blue TTFS OBD cable did not work. It seems like this is one of the cheaper blue cables.
Comment
-
I would expect that all tests that can be performed in DIS should be executable from the MSS54DS0.PRG file.Originally posted by ac427 View Post
Can you run the "Throttle set point" calibration on a swapped car?
Adapting the "CSL flap" is present,
VANOS tests are present,
I would expect throttle setpoints can be called by the job [IO_STATUS_VORGEBEN] but unsure how to input correct parameters for the throttle valve.
I might be wrong here, as DIS can also read out old Motronic 1.2, while I can't find a PRG for that...
For DS2,
I do have always wondered how, TestO uses the serial (DS2) jobs and send the request and reads it. They are all in the [betriebswtab] but I don't know how to use it.Last edited by Tomba; 05-27-2026, 11:45 PM.
Comment
-
Are you refering to [STEUERN_xVANOS1_xxxx] jobs?Originally posted by karter16 View Post
Yep I'm thinking that diagnostic actions are something that could follow. Probably the common ones like vanos, CSL flap actuation, etc. at least. funny, I was actually looking at the DS2 calls for the VANOS check yesterday!
Originally posted by karter16 View Post
Re the individual trims are you talking about ti_ll_z1 thru ti_ll_z8? (injection timing adjustments per cylinder to balance out uneven running) If so they're stored in the EEPROM adaptions block and are actually dynamically adapted by the DME. If you mean something else let me know and I can have a look :-)
There might be 2 functions,
[CO_EINZELABGLEICH_LESEN]
There seem to be some jobs to run balance tests as well,
andCode:name : STEUERN_TI_ABGLEICH_STARTEN comment : Anstossen der automatischen Einzeldrosselklappenkorrektur (Prueflauf)
On, MSS50, I run the job to turn off lambda control, run the engine, measure CO content per cylinder, adjust, and store (to store you need to run the [login_request]). This to target all CO levels to be near equal.Code:name : STEUERN_SG_AUTOSYNC comment : automatische Leerlaufsynchronisation durchfuehren
Maybe MSS54 uses a different approach and adjust individual fuel trim on each cylinder based on the rough running conditions?
- Likes 1
Comment
-
Yes that's right, so all each of those jobs really do is make a DS2 call to the DME. The DME then processes those requests. In my case I'm just making each of those DS2 calls directly to achieve the same end result.Originally posted by Tomba View Post
Are you refering to [STEUERN_xVANOS1_xxxx] jobs?
Ok yep, we're talking about the same thing. The CO_EINZELABGLEICH_xxxx functionality is achieved by automatic adaption in the MSS52/54. on the MSS50 you'd do as you say to manually tune ti_ll_z1 thru ti_ll_z8. On the MSS52/54 it's performed automatically.Originally posted by Tomba View PostThere might be 2 functions,
[CO_EINZELABGLEICH_LESEN]
There seem to be some jobs to run balance tests as well,
andCode:name : STEUERN_TI_ABGLEICH_STARTEN comment : Anstossen der automatischen Einzeldrosselklappenkorrektur (Prueflauf)
On, MSS50, I run the job to turn off lambda control, run the engine, measure CO content per cylinder, adjust, and store (to store you need to run the [login_request]). This to target all CO levels to be near equal.Code:name : STEUERN_SG_AUTOSYNC comment : automatische Leerlaufsynchronisation durchfuehren
Maybe MSS54 uses a different approach and adjust individual fuel trim on each cylinder based on the rough running conditions?
Fun fact - it seems the DS2 call (Control byte $41) actually still exists on the MSS52/54 and can still be called, but appears to have been repurposed to allow one to specify bench values for LAA_F1, LAA_F2, LAA_OFFSET1 and LAA_OFFSET2.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
-
When I made the TST file for testing, a lot of members couldn't pass the leak test [dichtheid]. The clue was to let the engine drop down to idle after a test was finished and then activate the test, instead of sending the commands behind each other. Once successful, you will receive start and end value which I believe should not drift more than ~3°CR.Originally posted by karter16 View Post
Yes that's right, so all each of those jobs really do is make a DS2 call to the DME. The DME then processes those requests. In my case I'm just making each of those DS2 calls directly to achieve the same end result.
From memory, DIS doesn't send them all in once, but check first if the timing is OK and within limits before proceeding.
So the individual values that can be read by [co_einzelabgleich_lesen] are stored by the ECU learning function rather than manually measured, adjusted and stored by an engineer? Would make sense with the missing exhaust extraction points.Originally posted by karter16 View PostOk yep, we're talking about the same thing. The CO_EINZELABGLEICH_xxxx functionality is achieved by automatic adaption in the MSS52/54. on the MSS50 you'd do as you say to manually tune ti_ll_z1 thru ti_ll_z8. On the MSS52/54 it's performed automatically.
Fun fact - it seems the DS2 call (Control byte $41) actually still exists on the MSS52/54 and can still be called, but appears to have been repurposed to allow one to specify bench values for LAA_F1, LAA_F2, LAA_OFFSET1 and LAA_OFFSET2.
suspecting that [ti_ll_z1] _ll_ = leerlauf injection time cylinder #/
- Likes 1
Comment
-
I was more thinking maybe decompile whatever file DIS uses for this test? That way we also have the official test criteria, but I never looked into the file structure...Originally posted by ac427 View PostIs there any way monitor the data stream when the DIS Vanos test is started?
I can run the test and record a dump of the session for research.E46 ///M3 • 12/2002 • phönix-gelb • 6MT
E39 ///M5 • 12/1998 • avus-blau • 6MT
E60 ///M5 • 11/2006 • saphir-schwarz • 6MT
Contact e-mail -> jasper (at) dentmparts.nl
D&T M Parts -> dentmparts.com -> used euro parts for M vehicles
- Likes 1
Comment
-
Originally posted by bmwfnatic View Post
I was more thinking maybe decompile whatever file DIS uses for this test? That way we also have the official test criteria, but I never looked into the file structure...
Okay good point - making sure we follow the exact sequence as defined by the test is a great plan, I should have approached it this way from the start. The logic around the DS2 calls is defined in the mss54ds0.prg file. Attached is the disassembly of this file. You can see for the VANOS jobs that each job makes the relevant DS2 calls and has the timing and result validation built into the job.Originally posted by ac427 View Post
Sounds good. Do you think the test is based on a single file in DIS?Attached Files2005 ///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
-

Run on a not-very-warm car so don't worry too much about the actual values. I have some UI tidy up to do, add the rest of the test results, etc. , I was interpreting the results of the leak test round the wrong way (0x00 is success, non-0x00 is a failure) so the "Result" value shows as incomplete whereas it should show as complete, etc.
Point though is that it works.Last edited by karter16; 05-28-2026, 09:07 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 8
Comment

Comment