Announcement

Collapse
No announcement yet.

SAP and Cat heating sequence delete

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

    SAP and Cat heating sequence delete

    Hey guys,
    Does anyone know where to find the offset/values to disable the cat heating sequence?
    I found this related to SAP delete on m3forum.net using Wayback Machine

    I'm now looking to know how to delete the cat heating sequence, as my car starts and runs rough since I removed the cats for the first 5-10 seconds, then quiets down.

    This howto will explain the relatively simple procedure of disabling the secondary air pump and its associated DTCs.

    The first thing to understand is where to find the configuration values for these variables within your DME. To do this, you MUST know what version your DME is. Please see this thread about how to make that determination.

    The next step is to set both K_SLS_UB_MIN and K_SLS_UB_MAX to the same voltage values, sufficiently high that they're never reached in any normal circumstance. These values are sequential; thus, the offset given is the start of K_SLS_UB_MIN. Another bit that can be set is the K_SLS_OBD. Typically, it is set to 1, which reports the condition via OBD. Setting this to 0 will instruct it to remain quiet.
    211321000502 MSS52 0x74B4 0x74B8 9.0 V 16.0 V
    211321000901 MSS52 0x74B4 0x74B8 10.0 V 15.0 V
    211321001301 MSS52 0x74C4 0x74C8 10.0 V 15.0 V
    211321001401 MSS52 0x74C4 0x74C8 10.0 V 15.0 V
    211321001501 MSS52 0x74C4 0x74C8 10.0 V 15.0 V
    211321001601 MSS52 0x74C4 0x74C8 10.0 V 15.0 V
    211321001701 MSS52 0x74C4 0x74C8 10.0 V 15.0 V
    211322000701 MSS54 0x7506 0x750A 9.0 V 16.0 V
    211322000901 MSS54 0x75C6 0x75CA 9.5 V 17.0 V
    211322001101 MSS54 0x75E6 0x75EA 7.0 V 17.0 V
    211322001301 MSS54 0x75C4 0x75C8 7.0 V 17.0 V
    211322001501 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211322001701 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211322002101 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211322002401 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211322002601 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211322002801 MSS54 0x75D4 0x75D8 9.5 V 17.0 V
    211323001601 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323001801 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323001901 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323002001 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323002301 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323002501 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211323002701 MSS54HP 0xC100 0xC104 9.5 V 17.0 V
    211325000301 MSS54HP {csl} 0xC100 0xC104 9.5 V 17.0 V
    211325000401 MSS54HP {csl} 0xC100 0xC104 9.5 V 17.0 V
    Typically, the following code will be seen (E46 M3), the byte in BLUE represents the K_SLS_OBD switch, and the bytes in RED represent the K_SLS_UB_MIN and K_SLS_UB_MAX values respectively:

    01 FF 04 B0 5F AA

    Typically, the following code will be seen (E39 M5) with the same colour designations:

    01 FF 04 B0 64 96

    To get the voltage value, convert the hexadecimal value to decimal, then divide it by ten, thus, for all commonly found values:


    0x5A = 90 / 10 = 9.0 V
    0x5F = 95 / 10 = 9.5 V
    0x64 = 100 / 10 = 10.0 V
    0x96 = 150 / 10 = 15.0 V
    0xA0 = 160 / 10 = 16.0 V
    0xAA = 170 / 10 = 17.0 V


    To prevent the SAP from starting, simply set these values to a sufficiently-high number. 18.5 V is a popular suggestion from SliM3 and has been confirmed, thus:

    18.5 * 10 = 185 = 0xB9

    So, rewrite the string with the following two bytes changed:

    01 FF 04 B0 B9 B9

    If you plan to fully disconnect your Secondary Air Pump, you'll also need to delete DTC 0xAA. Please see this thread for information regarding DTC suppression.

    In addition to the modification of the K_SLS_UB_MIN and K_SLS_UB_MAX values, the K_SLS_OBD value can also be easily disabled. This is performed by further modifying the string as follows by changing the '01' to '00':

    00 FF 04 B0 B9 B9

    For reference, the block-off plate part number is 11121438086, its accompanying gasket is 11727514860.​​

    #2
    I've a couple of questions related to my post above
    1. Does the change from 01 FF 04 B0 5F AA​ --- to ---> 00 FF 04 B0 B9 B9​ suggested affects the cat heating sequence or does it just prevent the SAP from starting (or is it the same thing?). I read somewhere else that cat heating sequence is not just the SAP but also retarded timing, causing fuel to heat up the cats. Is that true?
    2. What does the voltages K_SLS_UB_MIN/MAX represent physically and why is 18.5 a good value?
    3. The text says that the first byte is to enable/disable obd reporting, what's that? is that any useful?

    Comment


      #3
      Cat heating is a separate mechanism. If you want to disable cat heating I believe the easiest way is to zero out the second column in KL_KATH_T_AKTIV

      Click image for larger version

Name:	Screenshot 2026-07-03 at 11.24.08 AM.png
Views:	96
Size:	17.1 KB
ID:	360218

      This table is used to calculate the duration of the cat heating period, setting it to 0 means it never starts.

      K_SLS_UB_MIN/MAX: UB is supply voltage (from the battery/alternator). Essentially if it's outside of allowed bounds then the SLS system will not operate. By setting the minimum value excessively high it ensures that the SLS system never operates.

      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


        #4
        nice, thanks! Do you know anything about cat protection? My car has no cats, as it's a track car I'm setting up. Is it worth disabling? I heard of k_ti_f_kats_max​, but the fact that is has "max" in the name and that typically cat protection involves fuel and ignition makes me think that setting this to 1.0 as suggested in https://nam3forum.com/forums/forum/s...cat-protection may be an incomplete solution.

        I'm also not sure if it's needed, or if in normal track conditions I may never reach the threshold temperature to get into protection mode.

        Comment


          #5
          Originally posted by karter16 View Post
          Cat heating is a separate mechanism. If you want to disable cat heating I believe the easiest way is to zero out the second column in KL_KATH_T_AKTIV

          Click image for larger version

Name:	Screenshot 2026-07-03 at 11.24.08 AM.png
Views:	96
Size:	17.1 KB
ID:	360218

          This table is used to calculate the duration of the cat heating period, setting it to 0 means it never starts.

          K_SLS_UB_MIN/MAX: UB is supply voltage (from the battery/alternator). Essentially if it's outside of allowed bounds then the SLS system will not operate. By setting the minimum value excessively high it ensures that the SLS system never operates.
          Is there also a third component to the cold start routine?

          Is it timing or fuel enrichment?

          Comment


            #6
            Originally posted by ac427 View Post
            Is there also a third component to the cold start routine?

            Is it timing or fuel enrichment?
            There's quite a few components to the cold start routine as a whole. Timing, Fuelling, Secondary air pump, cat heating, VANOS, Lambda control, Torque manager (mostly torque reserve), filling, electronic throttle. Possibly others, but those are the ones I can think of off the top of my head.
            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


              #7
              Originally posted by E46m3zcp View Post
              nice, thanks! Do you know anything about cat protection? My car has no cats, as it's a track car I'm setting up. Is it worth disabling? I heard of k_ti_f_kats_max​, but the fact that is has "max" in the name and that typically cat protection involves fuel and ignition makes me think that setting this to 1.0 as suggested in https://nam3forum.com/forums/forum/s...cat-protection may be an incomplete solution.

              I'm also not sure if it's needed, or if in normal track conditions I may never reach the threshold temperature to get into protection mode.
              heinzboehmer's explanation in that post is correct. ti_f_kats_1/2 are multiplicative factors for overall fuelling. setting k_ti_f_kats_max to 1.0 means that these factors are always limited to exactly 1.0 and therefore have no effect on overall fuelling.

              Re timing, as far as I can tell there is no ignition intervention as part of cat protection. It appears the approach taken is to simply dump more fuel to cool the catalyst.

              If you set k_ti_f_kats_max to 1.0 I don't believe there's any additional benefit messing with the threshold temp.
              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


                #8
                Ok, just to make it obvious, can we confirm what cat protection actually is? My mental model: it's something completely separate from cat heating on startup. It kicks off if the egt goes above a certain threshold to avoid damage to the cats due to high tempertatures. It protects the cats by adjusting the mixture by a multiplicative factor set to 1.35 from factory. What the factor exactly means in term of air fuel mixture is unknown but as of any such factor, setting it to 1.0 cancels its effect.

                Note: what I mean by "we don't know" is that we don't really know what it multiplies/divides. A 35% variation in AFR is very unlikely. Disassembly of the binary might tell us.
                Last edited by E46m3zcp; Yesterday, 03:39 AM.

                Comment


                  #9
                  Following thread to stay educated

                  Comment


                    #10
                    Originally posted by E46m3zcp View Post
                    Ok, just to make it obvious, can we confirm what cat protection actually is? My mental model: it's something completely separate from cat heating on startup. It kicks off if the egt goes above a certain threshold to avoid damage to the cats due to high tempertatures. It protects the cats by adjusting the mixture by a multiplicative factor set to 1.35 from factory. What the factor exactly means in term of air fuel mixture is unknown but as of any such factor, setting it to 1.0 cancels its effect.

                    Note: what I mean by "we don't know" is that we don't really know what it multiplies/divides. A 35% variation in AFR is very unlikely. Disassembly of the binary might tell us.
                    Correct. It is entirely separate from cat heating mechanism and is to avoid damage at high temps as you state. It is a multiplicative factor applied to injection time.

                    Click image for larger version

Name:	Screenshot 2026-07-14 at 8.42.07 PM.png
Views:	0
Size:	20.1 KB
ID:	361030
                    TI_F_KATS1/2 is the multiplicative factor for cat protection.

                    It in turn is an input factor into calculating injection time which is a composite of TI_VORST (pre-injection time), TI_F_ADAPT1/2 (adaption factor) and TI_F_KATS1/2 (cat protection factor).

                    Click image for larger version

Name:	Screenshot 2026-07-14 at 8.44.08 PM.png
Views:	0
Size:	17.3 KB
ID:	361031
                    That value is then used to calculate injection time for each cylinder. K_TI_F_KATS_MAX therefore limits a maximum increase of injection time by 35% for the purpose of cat protection.
                    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

                    Working...
                    X