Announcement

Collapse
No announcement yet.

CSL '0401' Program Binary Disassembly Notes

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

    #91
    Is there a specific reason why you have higher confidence that the 1801 XDF is more accurate?

    Comment


      #92
      Originally posted by R3VM3UP View Post
      Is there a specific reason why you have higher confidence that the 1801 XDF is more accurate?
      Yeah in the same way the original XDFs were built off an 0901 A2L there is also an 1801 A2L.

      Not sure if an 1801 XDF actually exists btw, if it does it's probably one that was built off the original 0901 work.


      Sent from my iPhone using Tapatalk
      2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
      Build Thread:
      https://nam3forum.com/forums/forum/m...e46-m3-journal

      Comment


        #93
        Ah okay, that's the part I was missing, I don't think I've ever seen those posted anywhere. I was only aware of the 52_V508.A2L file.

        Comment


          #94
          I've written up a wiki page here: https://github.com/karter16/CSL_0401...works#overview which describes in detail how the MAP sensor is used to calculate RF. It includes explanation, details of all variables and parameters along with a full code listing and code walkthrough of the functions that calculate RF and the integral controller component.

          If anyone has the time I'd really appreciate it if you could have a read through and review - my intent is that this should be a complete explanation of how the MAP sensor is used. It would be great as well if you have questions about how specific values are obtained (e.g. "how do I know that xyz really does what you say it does?") then please point these out and I can do detailed listings of those things as well. It's a bit hard to figure out what the appropriate bounds of this are as you can go to the n'th degree with everything. Ideally I'd like the end result to be something that is so clear and comprehensive it leaves no remaining doubt that this is indeed the way the MAP sensor works.

          Random screenshots of the wiki page to snazz up this post.​


          Screenshot from overview
          Click image for larger version

Name:	Screenshot 2025-03-09 at 8.50.50 AM.png
Views:	45
Size:	602.6 KB
ID:	297153

          Screenshot from function description of rf_calc()
          Click image for larger version

Name:	Screenshot 2025-03-09 at 8.50.59 AM.png
Views:	47
Size:	393.4 KB
ID:	297154

          Screenshot from code walkthrough of rf_calc()
          Click image for larger version

Name:	Screenshot 2025-03-09 at 8.51.06 AM.png
Views:	46
Size:	293.7 KB
ID:	297155

          Screenshot from code walkthrough of rf_p_kad_i_calc()
          Click image for larger version

Name:	Screenshot 2025-03-09 at 8.51.20 AM.png
Views:	42
Size:	277.4 KB
ID:	297156
          2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
          Build Thread:
          https://nam3forum.com/forums/forum/m...e46-m3-journal

          Comment


            #95
            I've also uploaded an archive ghidra project which contains all my latest work - it can be found here: https://github.com/karter16/CSL_0401...2025_03_09.gar It's a work in progress and I keep on wanting to tidy it up more before sharing but if I do that I'll never share it. You'll just need to put up with the fact that some of my comments will be out of date and the inconsistencies of work in progress. Let me know if you have any Q's.

            Again my ask would be if you figure things out that you post them here as you go so that I can keep incorporating discoveries into the master disassembly project.
            2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
            Build Thread:
            https://nam3forum.com/forums/forum/m...e46-m3-journal

            Comment


              #96
              Amazing, thank you! The only things I've noticed are just clerical: Definitions for TAN and P_UMG don't exist on the page in the Input Variables section. You added a quick (Definition) for other variables that were referenced but don't show up directly in these functions
              ‘02 332iT / 6 | ‘70 Jaguar XJ6 electric conversion

              Comment


                #97
                Originally posted by Bry5on View Post
                Amazing, thank you! The only things I've noticed are just clerical: Definitions for TAN and P_UMG don't exist on the page in the Input Variables section. You added a quick (Definition) for other variables that were referenced but don't show up directly in these functions
                Thanks - great call out! Have amended :-)
                2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
                Build Thread:
                https://nam3forum.com/forums/forum/m...e46-m3-journal

                Comment


                  #98
                  This is brilliant. I'm still working on absorbing your written description and browsing through your project simultaneously to make sense of how you arrived at it, but writing it out like that is extremely helpful.

                  Another dumb question, when building a project like this did you have to populate the memory map in Ghidra or is that done automatically based on selecting the 68k architecture? I'm assuming you did, based on the nomenclature used for the memory segments.

                  Comment


                    #99
                    Originally posted by R3VM3UP View Post
                    This is brilliant. I'm still working on absorbing your written description and browsing through your project simultaneously to make sense of how you arrived at it, but writing it out like that is extremely helpful.

                    Another dumb question, when building a project like this did you have to populate the memory map in Ghidra or is that done automatically based on selecting the 68k architecture? I'm assuming you did, based on the nomenclature used for the memory segments.
                    Nice one - yeah it takes a while to get the hang of how the program works as a whole and then it all starts to make more sense.

                    Yeah we had to populate the memory map manually. There's lots of different ways to configure the 68k memory so it was built out based on the work others have done in the past, referring to the Motorola documentation, etc. It's fairly crucial to get it right as the disassembler takes the memory map into account when disassembling (e.g. if you leave program ROM marked as writable you are in for a bad time with pointer references lol because the disassembler has to assume anything could change at any time.)
                    2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
                    Build Thread:
                    https://nam3forum.com/forums/forum/m...e46-m3-journal

                    Comment


                      Originally posted by Bry5on View Post
                      In my other car.
                      Do you happen to have a build thread somewhere for the Jag? I would love to read it if it exists.
                      2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
                      Build Thread:
                      https://nam3forum.com/forums/forum/m...e46-m3-journal

                      Comment


                        Originally posted by karter16 View Post

                        Do you happen to have a build thread somewhere for the Jag? I would love to read it if it exists.
                        Really light on details of the Jag sadly.

                        Here's what it looks like (not much has changed in the past four years except for stable mates): https://youtu.be/UGBo-wUDK4g

                        And a few details here, although I wasn't as great about updates. Not having the details was part of what motivated me to make this wagon build thread: https://www.jaguarforums.com/forum/x...roject-184994/
                        ‘02 332iT / 6 | ‘70 Jaguar XJ6 electric conversion

                        Comment


                          karter16 I've probably missed but is "rf dynamics" explained anywhere?

                          Comment


                            Originally posted by ac427 View Post
                            karter16 I've probably missed but is "rf dynamics" explained anywhere?
                            Hey - it's a short doc but 8.02 in the funktionsrahmen explains it https://github.com/karter16/CSL_0401...mic%20Lead.pdf

                            Essentially RF can be adjusted for knock protection or cylinder pressure management. The integral component is suspended while this is in effect, so that it doesn't try to “adjust out” the dynamic adjustment.


                            Sent from my iPhone using Tapatalk
                            2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
                            Build Thread:
                            https://nam3forum.com/forums/forum/m...e46-m3-journal

                            Comment


                              Originally posted by Bry5on View Post

                              Really light on details of the Jag sadly.

                              Here's what it looks like (not much has changed in the past four years except for stable mates): https://youtu.be/UGBo-wUDK4g

                              And a few details here, although I wasn't as great about updates. Not having the details was part of what motivated me to make this wagon build thread: https://www.jaguarforums.com/forum/x...roject-184994/
                              Absolutely gorgeous! Very cool


                              Sent from my iPhone using Tapatalk
                              2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats
                              Build Thread:
                              https://nam3forum.com/forums/forum/m...e46-m3-journal

                              Comment


                                Originally posted by karter16 View Post

                                Hey - it's a short doc but 8.02 in the funktionsrahmen explains it https://github.com/karter16/CSL_0401...mic%20Lead.pdf

                                Essentially RF can be adjusted for knock protection or cylinder pressure management. The integral component is suspended while this is in effect, so that it doesn't try to “adjust out” the dynamic adjustment.


                                Sent from my iPhone using Tapatalk
                                Don't rely too heavily on that funktionsrahmen as it is not accurate!

                                Comment

                                Working...
                                X