
Announcement
Collapse
No announcement yet.
Karter16's Silbergrau E46 M3 Journal
Collapse
X
-
Love this! Excited to hear what revelations you find. It’s been more than a decade since I’ve poked around with the MSS54HP disassembly. Keep us posted! Especially if you find interesting things with DSC interventions between normal and sport modes
- Likes 1
-
A couple of things have been playing on the back of my mind while I've been working on CSL tune file.
1: Confirming that the lookup tables are definitely linear interpolated - Given the MC68336/376 has the CPU32 TBL instructions built in it would make sense, but it would be nice to see it with my own eyes.
2: Identifying exactly how some of the ignition/injection maps are utilised in the program.
I decided the best way to figure this out would be to do some disassembly of the full (program) binary. After a number of sessions playing around learning Ghidra (and adding the CPU32 instruction set to Ghidra) I've managed to confirm #1.
I've found the Curve/Table lookup functions in the program code and confirmed their use for things like interpolating between VANOS table values (Below is a snippet of part of one of the lookup functions).
I don't think there was ever really that much doubt that this wouldn't be the case, but it's good to know for sure. Having identified the lookup functions in the code means that I can now use them to look "backwards" to their calling functions and more easily identify where the various tables are used. This leads into #2 on my list which is to identify the functions that use tables like KF_TZ_LL so that I can see exactly how those tables are used and how they influence the final calculated ignition timing (the draft FunktionsRahmen floating around is unfortunately not complete in this regard).
The current problem I have is that the data space (which holds the contents of the partial binary) is split into to sections in the memory space. The lower half of the partial (addresses 0x0000-0x7FFF as you would read them in TunerPro) is at offset 0x88000 and the upper half (0x8000 - 0xFFFF) is at 0x8000. Ghidra is linking references to the lower half (so with the offset 0x88000 - 0x8FFFF) just fine, however it is not for the upper half (0x8000 - 0xFFFF). I suspect that this is probably because when BMW compiled the original code the assembler has used relative offsets for accessing the low memory as doing so is more efficient that using calls that are capable of accessing high memory. This makes perfect sense from an efficiency perspective, but makes it difficult when it comes to disassembly.
I simply need to spend some more time working through this.
Why do all this? Just because it helps reduce the room for error if I better understand exactly how the maps are used. I might also discover something new/useful along the way that might be helpful knowledge for the community. Also my 3 year old was up at 4am and there's only so many things you can do in the middle of the night when the rest of your family is asleep :-)
- Likes 2
Leave a comment:
-
Originally posted by karter16 View Post
Dammit no I hadn't - don't know why I had it in my head I'd seen someone else do this. Thanks very much for that - have ordered some suitable hardware. FYI what's needed are M6x16 Torx washer head screws.
Leave a comment:
-
Originally posted by Slideways View PostNot sure if you have tried them yet, but the 07119905016 bolts won't work on the Karb airbox.
Leave a comment:
-
Not sure if you have tried them yet, but the 07119905016 bolts won't work on the Karb airbox.
- Likes 1
Leave a comment:
-
Some of the bits of hardware I was waiting on for the airbox install arrived today.
07119905016 - original silver bolts that hold the two pieces of the airbox together. The black ones that come with the Karbonius look great, but I'm wanting to replicate the original CSL look with the silver hardware.
07119901780 - original bolts that attach the snorkel to the airbox. The Haimus Racing snorkel comes with silver through-bolts and nuts, plus insertable collars to go in the 3D-printed mounting holes. I'm not sure whether the Haimus Racing airbox doesn't have threaded mounts on the airbox, but anyway the Karbonius does. I did a quick test fit and confirmed that using the Haimus collars with the OE bolts works.
07119902626 - original bolts for the MAP sensor to secondary air rail. As George Hill noted some time ago these are too short to fit on my MAP sensor adapter, but with them in hand I was able to confirm that these are DIN7984 spec bolts, and have ordered some M6x18mm DIN7984 bolts which will fit perfectly.
Only item (I think) I'm waiting on now is the CSL dipstick tube. I realised I have a bit of a problem when I went downstairs to find something and couldn't even remember what's in all of the boxes of parts on my shelves. Need the Christmas break to come round so that I can get some of this stuff installed!
- Likes 4
Leave a comment:
-
Well look what arrived yesterday, less than 6 weeks after I ordered it! I saw a few months ago that Karbonius had made another mold for the CSL replica airbox to speed up production and certainly would seem to have helped!
Can't really say anything about this piece that hasn't already been said. It's spectacularly good. The memory of the cost simply melts away when you hold it in your hand and look at it.
I'm still waiting on the CSL dipstick tube plus a few minor pieces of hardware, but hopeful of having everything by the time the Christmas break rolls around!
In the meantime all these parts continue to clutter up my spare room!
- Likes 3
Leave a comment:
-
It appears you are correct. I checked back in my excel files and indeed they do look the same. Not sure where I got that from..
- Likes 1
Leave a comment:
-
Originally posted by Bry5on View Post
KF_TIENDE_N_RF are different between euro and CSL tunes that I’m looking at.
1901JD54
0401PD31 (CSL)
Leave a comment:
-
Originally posted by karter16 View Post
I'm curious - aside from KF_TI_N_RF (which I missed out of the list in my post above) the only other Injection/Ignition tables I see differences in are in the warm-up/cat heating/secondary air pump tables for calculating the warm up factors (which I'll not bother with for now).
I do note that in the US map KF_RF_N_AQ_REL and KF_TIENDE_N_RF differ to the CSL map, however these two are the same between my Euro tune and the CSL tune.
Or I'm missing something 😅
Leave a comment:
-
Originally posted by Bry5on View PostI'll let you walk your way there!
In addition, my euro mullet ended up with several little custom changes in the end, rather than pulling straight from euro maps (US fuel likely cause). It'll be more rewarding for you to chase it yourself I think.
For sure, ya don't give me the answers! - I'll keep posting here with updates as I work stuff out. Writing things out helps me spot where I'm doing dumb things!
Sent from my iPhone using Tapatalk
- Likes 1
Leave a comment:
-
I’ll let you walk your way there!
In addition, my euro mullet ended up with several little custom changes in the end, rather than pulling straight from euro maps (US fuel likely cause). It’ll be more rewarding for you to chase it yourself I think.Last edited by Bry5on; 10-30-2024, 07:14 AM.
- Likes 1
Leave a comment:
-
Originally posted by Bry5on View PostThere are a few extra tables that needed dialing in for me but that may be in part because the US fuels are different.
I do note that in the US map KF_RF_N_AQ_REL and KF_TIENDE_N_RF differ to the CSL map, however these two are the same between my Euro tune and the CSL tune.
Or I'm missing something 😅
Leave a comment:
-
Originally posted by karter16 View Post
Hey - the CSL rail part is now, I believe, ready to go. I haven't published the CAD file yet as a bit reluctant to put it out there without having proven it first (I've test fitted it and all seems well, but haven't proven it in operation yet). If you're keen to give it a go let me know and I can send you the CAD file :-)
Sent from my iPhone using Tapatalk
- Likes 1
Leave a comment:
-
Originally posted by ugaexploder View Postalways love the updates, what's happening with the csl rail part by the way?
Sent from my iPhone using Tapatalk
- Likes 1
Leave a comment:
Leave a comment: