N42 softboost project introduction

Since the end last year, quite a few months after conversion of my BMW 318i from auto to manual, I have been looking at ways to improve the power output from the 2liter engine. Through the research the best way to see significant output is to force induce the engine, that is to force air into the engine instead of relying on the cylinders to pull air in.

Two ways to do force induction is supercharging or turbocharging. Chose turbocharging as it is more flexible in term of boost level. The target of this project is to run a relatively low and safe boost level. This means with stock internals and compression ratio thus the term softboost.

The earlier posts relating to OBD was due to the previous plan to control boost level using a wastegate solenoid and varying the boost depending on engine RPM. After the initial findings, it is concluded that there is too much latency between RPM of the engine and the one on interpreted by the microcontroller.

The engine to be turbocharged is BMW N42B20 in a facelifted BMW E46 chassis

Follow me through the journey of this project. Thanks for reading. All of this project related posts will be tagged with “softboost”

Supported PIDs listed

Mode
PID Data bytes returned Description Min value Max value Units Formula
(hex) (hex)
1 0 4 PIDs supported [01 – 20] Bit encoded [A7..D0] == [PID $01..PID $20]   See below.
1 1 4 Monitor status since DTCs   cleared. (Includes malfunction indicator lamp (MIL) status and number of   DTCs.) Bit encoded. See below.
1 3 2 Fuel system status Bit encoded. See below.
1 4 1 Calculated engine load value 0 100 % A*100/255
1 5 1 Engine coolant temperature -40 215 °C A-40
1 6 1 Short term fuel % trim—Bank 1 -100 Subtracting Fuel (Rich   Condition) 99.22 Adding Fuel (Lean Condition) % (A-128) * 100/128
1 7 1 Long term fuel % trim—Bank 1 -100 Subtracting Fuel (Rich   Condition) 99.22 Adding Fuel (Lean Condition) % (A-128) * 100/128
1 8 1 Short term fuel % trim—Bank 2 -100 Subtracting Fuel (Rich   Condition) 99.22 Adding Fuel (Lean Condition) % (A-128) * 100/128
1 9 1 Long term fuel % trim—Bank 2 -100 Subtracting Fuel (Rich   Condition) 99.22 Adding Fuel (Lean Condition) % (A-128) * 100/128
1 0C 2 Engine RPM 0 16,383.75 rpm ((A*256)+B)/4
1 0D 1 Vehicle speed 0 255 km/h A
1 0E 1 Timing advance -64 63.5 ° relative to #1 cylinder A/2 – 64
1 0F 1 Intake air temperature -40 215 °C A-40
1 10 2 MAF air flow rate 0 655.35 grams/sec ((A*256)+B) / 100
1 11 1 Throttle position 0 100 % A*100/255
1 12 1 Commanded secondary air status Bit encoded. See below.
1 13 1 Oxygen sensors present [A0..A3] == Bank 1, Sensors 1-4.   [A4..A7] == Bank 2…
1 15 2 Bank 1, Sensor 2: Volts A/200
Oxygen   sensor voltage, 0 1.275 % (B-128) * 100/128 (if B==$FF,   sensor is not used in trim calc)
Short   term fuel trim -100(lean) 99.2(rich)
1 16 2 Bank 1, Sensor 3: Volts A/200
Oxygen   sensor voltage, 0 1.275 % (B-128) * 100/128 (if B==$FF,   sensor is not used in trim calc)
Short   term fuel trim -100(lean) 99.2(rich)
1 1C 1 OBD standards this vehicle   conforms to Bit encoded. See below.
1 20 4 PIDs supported [21 – 40] Bit encoded [A7..D0] == [PID $21..PID $40]   See below.
1 22 2 Fuel Rail Pressure (relative to   manifold vacuum) 0 5177.265 kPa ((A*256)+B) * 0.079
1 34 4 O2S1_WR_lambda(1): 0 1.999 N/A ((A*256)+B)/32,768
Equivalence   Ratio -128 127.99 mA ((C*256)+D)/256 – 128
Current
1 38 4 O2S5_WR_lambda(1): 0 2 N/A ((A*256)+B)/32,768
Equivalence   Ratio -128 128 mA ((C*256)+D)/256 – 128
Current