Announcement

Collapse
No announcement yet.

CSL '0401' Program Binary Disassembly Notes

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by Bry5on View Post

    Yeah, blocking filling seems interesting. What's TZ intervention? Is that ignition pull?
    Yup ignition pull (via the torque manager).
    2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
    Build Thread:
    https://nam3forum.com/forums/forum/m...e46-m3-journal

    Comment


      Originally posted by Bry5on View Post

      Yeah, blocking filling seems interesting. What's TZ intervention? Is that ignition pull?
      "TZ" should be german for "Transitor Zündung", that should be just a variable definition/name for ignition angle.
      …under construction.

      Comment


        I've been doing a bunch of work on figuring out the SMG module in the slave binary. This is one of the areas the least information is available on, so there's a lot to work through and figure out. I've been making some great progress though.

        There's 53 SMG functions in the slave binary, divided into the following sub-modules if you will:

        - Clutch (manipulation of the clutch)
        - Motor (e.g. motor torque and speed regulation)
        - Shifting (changing of gears)
        - Common/basic (init functions, the task functions, DPR, IPK, SK (safety concept), etc.)

        Of note is that the SMG module has its own IPK messages to transfer critical values between the slave and the master. Some of these come straight off the SMG canbus and go via the IPK to the Master, others are generated by the SMG module functions and the results are sent to the Master (e.g. torque and engine speed regulation for the SMG).

        The SMG also has its own freeze-frame generator for error reporting, so SMG-specific variables can be captured.

        I've got more work and cross validation to do before I share everything, but for now here's the function that handles the well-known "limiter shift lights". "K_SMG_DWF_CFG_HS" is the parameter that can be changed to enable shift lights for non-SMG vehicles.


        Click image for larger version

Name:	Screenshot 2026-01-14 at 9.18.30 PM.png
Views:	61
Size:	186.1 KB
ID:	339574

        Click image for larger version

Name:	Screenshot 2026-01-14 at 9.18.37 PM.png
Views:	62
Size:	177.3 KB
ID:	339575

        Attached Files
        2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
        Build Thread:
        https://nam3forum.com/forums/forum/m...e46-m3-journal

        Comment


          Appreciating this great work! Can't wait for the SMG to be finished so I can start on the 1st Gen DCT implementation: https://www.shop.rusefi.com/shop/p/ua-can-bridge

          Comment


            Originally posted by karter16 View Post
            If anyone is interested this http://www.kleinknecht.com/en/software_gredi4.htm appears to be the software that BMW used to testbed tune the S54 (and presumably other engines/DMEs of the era).

            There's a reference to "Gredi" in one of the funktionsrahmen documents and I saw it and was curious and a bit of a hunt unearthed this. This also explains what I'd previously noted about the "B" canbus channels which appear to be for transfer of data. Pretty sure the CAN Control Protocol that Gredi uses fits the bill.
            So kinda tangentially related, but I found this repo when scouring the internet for MSS6x stuff https://github.com/jakkuh/MSS65-Info and within that there seems to be something related to Gredi https://github.com/jakkuh/MSS65-Info...ain/tools/MCS4

            I don't think any of it is particularly useful as end users (even all the MSS6x binaries seem to be truly ancient - I doubt they'd function properly on retail hardware), but perhaps worth digging into a little more. I also need to look into info about that "2+ tb damos dump". The only similar collection I had seemed to be missing anything related to BMW M from what I remember.

            Comment


              Originally posted by terra View Post

              So kinda tangentially related, but I found this repo when scouring the internet for MSS6x stuff https://github.com/jakkuh/MSS65-Info and within that there seems to be something related to Gredi https://github.com/jakkuh/MSS65-Info...ain/tools/MCS4

              I don't think any of it is particularly useful as end users (even all the MSS6x binaries seem to be truly ancient - I doubt they'd function properly on retail hardware), but perhaps worth digging into a little more. I also need to look into info about that "2+ tb damos dump". The only similar collection I had seemed to be missing anything related to BMW M from what I remember.
              Awesome find!!

              I'm going to be scouring through this - there's a bunch of stuff in there about p_saug (manifold air pressure) and rg_m (residual gas mass) which will be super helpful cross references.
              2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
              Build Thread:
              https://nam3forum.com/forums/forum/m...e46-m3-journal

              Comment


                There's a lot of information in those files - the MAP files have a listing of all the objects, in order, with function names.

                Click image for larger version

Name:	Screenshot 2026-01-18 at 8.23.21 AM.png
Views:	5
Size:	360.8 KB
ID:	340129
                2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
                Build Thread:
                https://nam3forum.com/forums/forum/m...e46-m3-journal

                Comment


                  Yeah there's actually some interesting insights in there. Have to interpret in context since it's early MSS65 rather than MSS54 info, but even skimming through it it's clear that the MSS65 concepts are evolution of the MSS5x and these are early enough prototypes that I suspect a lot of it is closer to the MSS5x counterparts than the final MSS6x. I imagine the map sensor stuff will be fairly close to the CSL implementation given these date back to 2002-2003 and the actual production M5 did not end up using a map sensor to my knowledge

                  Comment


                    well those ELF files make things easy :-)

                    Here's the MSS65 rf_berech()

                    Click image for larger version

Name:	Screenshot 2026-01-18 at 2.35.50 PM.png
Views:	8
Size:	171.8 KB
ID:	340195
                    2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
                    Build Thread:
                    https://nam3forum.com/forums/forum/m...e46-m3-journal

                    Comment


                      Okay - been having a bit of a look at this in more detail. It's extremely useful. As you suspect terra there are some fairly strong similarities between 0401 and this. They are far from identical, and the MSS65 code seems to be more advanced in some ways. But I've been doing a comparison on the residual gas mass functions. Good news is that my interpretation of them was correct. Secondly there's a bunch more parameter names I'm going to be able to confirm out of this.

                      Very cool.
                      2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
                      Build Thread:
                      https://nam3forum.com/forums/forum/m...e46-m3-journal

                      Comment


                        Calculation for exhaust gas back pressure is pretty much identical:

                        MSS54 (0401)
                        Click image for larger version

Name:	Screenshot 2026-01-18 at 4.39.32 PM.png
Views:	7
Size:	165.5 KB
ID:	340210

                        MSS65
                        Click image for larger version

Name:	Screenshot 2026-01-18 at 4.39.37 PM.png
Views:	7
Size:	194.5 KB
ID:	340211

                        MSS65 stores rg parameters in a struct which is why there are all of the pointer offsets
                        2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
                        Build Thread:
                        https://nam3forum.com/forums/forum/m...e46-m3-journal

                        Comment

                        Working...
                        X