Copy from p0lar on the old M3F
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 enough 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.
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:
Typically, the following code will be seen (E39 M5) with the same colour designations:
To get the voltage value, convert the hexadecimal value to decimal, then divide it by ten, thus, for all commonly found values:
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:
So, rewrite the string with the following two bytes changed:
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':
For reference, the block-off plate part number is 11121438086, its accompanying gasket is 11727514860.
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 enough 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.
Version 211321000502 |
DME Type MSS52 |
K_SLS_OBD Offset 0x74B4 |
K_SLS_UB_MIN Offset 0x74B8 |
OEM Voltage Min 9.0 V |
OEM Voltage Max 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 |
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000][COLOR=Blue][B]01[/B][/COLOR] FF 04 B0 [B][COLOR=Red]5F AA[/COLOR][/B][/COLOR][/FONT][/COLOR]
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000][COLOR=Blue][B]01[/B][/COLOR] FF 04 B0 [B][COLOR=Red]64 96[/COLOR][/B][/COLOR][/FONT][/COLOR]
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000]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[/COLOR][/FONT][/COLOR]
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000]18.5 * 10 = 185 = 0xB9[/COLOR][/FONT][/COLOR]
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000]01 FF 04 B0 [B][COLOR=Red]B9 B9[/COLOR][/B][/COLOR][/FONT][/COLOR]
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':
Code:
[COLOR=#000000][FONT=verdana][COLOR=#000000][COLOR=Blue][B]00[/B][/COLOR] FF 04 B0 [B][COLOR=Red]B9 B9[/COLOR][/B][/COLOR][/FONT][/COLOR]
Comment