BMW OEM Gateway

Applies to: IOcan only. What this means

Overview

The BMW OEM Gateway (app name Gateway BMW OEM) is a controller that lets you keep a factory BMW transmission — a ZF 8HPxx automatic or a DKG (GS7D36) dual-clutch — and its original TCU (mechatronics) while the engine is run by a standalone / aftermarket ECU. The TCU keeps doing the shifting; the gateway gives it the engine torque and other engine signals it expects, and reports gear state back to the car. One controller serves both transmission families — only the paired CAN preset differs.

Use it when you have swapped the engine management (or the whole engine) but want to retain the OEM shift behaviour, quality and diagnostics. It runs on a CANbus Gateway (CGW…) or IOcan (IOC…) device. For the standalone alternatives that drive a gearbox without its TCU, see the DCT Standalone Drivers (DKG) and the standalone ZF 8HPxx direct-control driver (planned).

This page is the field/table reference for the 8HP specifics. The features shared with the other drivers are described once and linked from here: Engine torque estimation · Fuel & injector model · Vehicle & wheel speed · Shift torque management.

Supported transmissions

  • ZF 8HP — 8HP45 / 8HP50 / 8HP70 / 8HP90 and related variants as fitted to BMW F- and G-series, plus Alpina calibrations. See Supported variants.
  • DKG (DCT) — Getrag GS7D36SG / GS7D36BG (F-series) and E-series units. See Fxx DCT support and Supported variants.

The transmission family, platform and generation are selected by the paired CAN preset (see CAN presets).

Prerequisites & hardware

  • A factory 8HP or DKG TCU on the transmission, powered and woken (the gateway drives Transmission wakeup).
  • The transmission's drive CAN wired to a CAN bus on the device. The TCU lives on PT-CAN or PT-CAN2 depending on platform — pick the matching preset.
  • The full set of mandatory engine signals available to the device, from the ECU over CAN or on physical pins — see Inputs.
  • For paddle/selector control, an OEM or emulated shifter — see the BMW F-Series GWS pinout.

Wiring references: 8HPxx connections, DKG connections, BMW F30 Gateway connection guide, CAN Gateway Pinout, OBD Pinout.

Add it in the app

  1. On a CANbus Gateway / IOcan configuration, add the BMW OEM Gateway controller.
  2. Add a CAN bus for the transmission and pair the matching transmission-emulation preset (list below).
  3. Assign all mandatory inputs, then the optional ones you have.
  4. Choose a Torque calculation method and fill the maps it needs.
  5. Route the outputs — the transmission-state set plus the torque-management handshake — to CAN or pins.
  6. Set Diff ratio and Wheel diameter so the speed emulation works.

Inputs

Assign each signal to a source (CAN object, CAN frame, or a pin). If a mandatory signal is not assigned, the controller reports a configuration fault and does not run (see Configuration Concepts). Optional signals fall back to the behaviour listed below.

Engine parameters

Signal Unit Required Notes
Engine RPM 1/min Yes
Throttle position % Yes 0–100
Pedal position % Yes 0–100
Manifold pressure kPa Yes Absolute pressure
Coolant temperature °C Yes
Oil temperature °C Yes
Atmospheric pressure kPa No 100 kPa assumed when unassigned; used by the calculation methods
Intake air temperature °C No 25 °C assumed when unassigned; used by the calculation methods
Lambda λ No Only used with the Lambda efficiency map

Engine torque inputs

Used by the ECU Reported Torque torque method.

Signal Unit Required Notes
No intervention Nm With ECU Reported Torque Driver-demanded torque before traction/stability cuts
Intervention Nm No Actual torque after intervention
Max Nm No Upper limit reported to the TCU
Min Nm No Lower limit
Loses Nm No Friction / accessory losses

Chassis signals

Signal Unit Required Notes
Brake switch on/off Yes Needed for park/drive interlocks
Brake pressure No When unassigned, a plausible pressure is emulated from the brake switch
Vehicle speed km/h Recommended Fallback speed source — see Vehicle & wheel speed
↳ Front left / right km/h No Overrides the emulated value for that wheel
↳ Rear left / right km/h No Overrides the emulated value for that wheel
KL15 / Ignition on/off Recommended Drives Transmission wakeup — without it the TCU is never woken
Drive Mode enum No Comfort / Sport / etc.; a fixed default mode is used when unassigned

Outputs

Route each output to a CAN message or a pin (see Configuring Outputs); one value can feed several consumers at once. Outputs marked required must be assigned — the controller reports a configuration fault otherwise.

Torque management (handshake to the ECU)

All three are required. See Shift torque management for how to use them — the ECU executes the cut and blip; the gateway relays the TCU's requests.

Signal Notes
Engine torque The torque value the gateway calculated / passed through
Cut request TCU requests a torque cut during an upshift
Blip request TCU requests a throttle blip during a downshift

Transmission parameters

Signal Unit Required Notes
Current gear gear Yes
Current gear / park gear Yes Reserved — assign it, but it reports no data yet
Next gear gear Yes Target gear during a shift
Gearbox mode enum Yes R / P / N / D / M
TCC slip 1/min Yes Torque-converter clutch slip (8HP) — reserved, assign it but it reports no data yet
Gear ratio :1 Yes Active ratio
Turbine speed 1/min Yes Input-shaft speed
Tailshaft speed 1/min Yes Output-shaft speed
Transmission temperature °C Yes
Reverse light on/off Yes Active while the gearbox is in R
Vehicle speed km/h No Emulated road speed — see Vehicle & wheel speed
Wheel RPM 1/min No Emulated wheel speed
Transmission wakeup on/off Recommended Follows the KL15/Ignition input, a few seconds after power-up

Parameters

Engine torque

The Torque calculation method selects how engine torque is produced — the methods themselves are described in Engine torque estimation.

Methods supported by this controller: ECU Reported Torque, Fuel + Air (arbitrated) and Air Model. The other selections (Measured Torque Tables, Throttle + MAP Estimate, Fuel Model) are not implemented for the BMW OEM Gateway — do not select them, the TCU would be left without a usable torque signal.

Parameter Meaning Unit Range Default
Torque calculation method How engine torque is produced enum see above
Idle RPM Expected idle speed, reported to the TCU RPM 0–20000 800 (0 → 900 is used)
Rev limiter Engine rev limit — reported torque is held at its pre-limiter value while on the limiter RPM 0–20000 6500
Cylinder count Number of cylinders (fuel methods) 1–20 6
Displacement Engine displacement (air/fuel methods) cm³ 1–20000 3000
Compression ratio Reserved — not used by the current firmware :1 1–20 10.0
Throttle diameter Reserved — not used by the current firmware mm 1–20000 90
Maximum MAP value Reserved — not used by the current firmware kPa 1–2000 300

Speed calculation

Both are needed for the speed emulation; leaving them at zero raises a warning fault and the emulated wheel speed stays at zero.

Parameter Meaning Unit Range Default
Diff ratio Final-drive ratio :1 1–20 2.7
Wheel diameter Rolling diameter mm 1–20000 640

Primary injector / Secondary injector

Needed by the fuel/air torque methods; the fields are described in Fuel & injector model. The secondary set is optional (staged/auxiliary injection) and has the same fields: Fuel type, Injector pulse width, Injector size, Nominal injector pressure, Deadtime mode/input, Fuel pressure, Fuel temperature, Flex Fuel.

Maps summary

All tables are entered and interpolated as described in Scaling and Maps. Fill only the ones your Torque calculation method uses; empty correction maps simply apply no correction.

Map Axes Used by Notes
Engine speed drag map RPM Fuel + Air · Air Model Engine-braking torque vs RPM
Throttle drag map TPS Fuel + Air · Air Model Pumping-loss correction
Manifold pressure drag map MAP Fuel + Air · Air Model Pumping-loss correction
Lambda efficiency λ Fuel + Air · Air Model Needs the Lambda input
VE Speed-Density MAP × RPM Fuel + Air · Air Model Fill all three VE maps as a set
VE Alpha-N TPS × RPM Fuel + Air · Air Model
VE Blending MAP (1D) Fuel + Air · Air Model
Deadtime (per injector) Voltage × fuel pressure Fuel methods Only with Deadtime mode = User defined
Fuel density (per injector) Ethanol % × temperature Fuel methods Only with Fuel type = User definedbuilt-in otherwise
Stoichiometric AFR (per injector) Ethanol % (1D) Fuel/air methods Only with Fuel type = User defined
Fuel energy (per injector) Ethanol % (1D) Fuel/air methods Only with Fuel type = User defined

This controller has no torque tables and no DBW cut/blip tables — torque comes from the methods above, and shift-time cut/blip is executed by the ECU via the request outputs.

CAN presets to pair

Pair the driver with the transmission-emulation preset for your transmission family, platform and generation (Transmission Emulation category). The preset implements the on-wire protocol on the chosen bus; the driver provides the signals.

For a ZF 8HP:

Platform PT-CAN PT-CAN2
F-series 8HP, Gen 1 BMW 8HP PT_CAN Fxx Gen1 BMW 8HP PT_CAN2 Fxx Gen1
F-series 8HP, Gen 2 BMW 8HP PT_CAN Fxx Gen2 BMW 8HP PT_CAN2 Fxx Gen2
G-series 8HP, Gen 2 BMW 8HP PT_CAN Gxx Gen2 BMW 8HP PT_CAN2 Gxx Gen2
G-series 8HP, Gen 3 BMW 8HP PT_CAN Gxx Gen3 BMW 8HP PT_CAN2 Gxx Gen3

For a DKG, pair the DKG transmission-emulation preset for your platform instead — see Fxx DCT support.

Also available: BMW PT_CAN Forwarder and BMW ISO TP Gateway (diagnostic/ bridging).

Example — engine-swapped F30 (8HP) with an aftermarket ECU

  1. Add the BMW OEM Gateway on a CANbus Gateway; add a CAN bus on PT-CAN and pair BMW 8HP PT_CAN Fxx Gen1. (For a DKG car the workflow is identical with the DKG preset.)
  2. Map the mandatory inputs — Engine RPM, Throttle, Pedal, MAP, Coolant/Oil temp, Brake switch — from the ECU's CAN stream via CAN Object Inputs, plus KL15/Ignition.
  3. The ECU broadcasts torque, so set Torque calculation method = External Inputs and assign the No intervention torque input. Set Rev limiter and Idle RPM to match the engine.
  4. Set Diff ratio and Wheel diameter, and assign the Vehicle speed input so speed emulation works from power-up.
  5. Route the required outputs; send Cut request, Blip request and Engine torque back to the ECU and configure its torque-reduction / blip strategy.
  6. Route Current gear, Gearbox mode and Reverse light to the cluster/CAN, and Transmission wakeup to the TCU wakeup line.

Troubleshooting

  • Controller faults at start / transmission won't run: a mandatory input or output is unassigned — the fault entry names the missing item. Check the tables above and input rules.
  • Harsh or lazy shifts: the TCU is getting a poor engine torque value — check that a supported method is selected and its inputs and maps are in place; with the fuel methods, verify the Injector pulse width input is alive.
  • Shifts but no rev-match / driveline shock on manual downshifts: the ECU is not acting on the Cut/Blip request outputs — see Shift torque management.
  • Wrong or zero road speed: check Diff ratio, Wheel diameter and the vehicle-speed input scaling — see Vehicle & wheel speed.
  • Speed warning faults (stale / stuck at zero / implausible): the TCU's speed signal and your vehicle-speed input disagree — causes and fixes.
  • TCU keeps sleeping: assign the KL15/Ignition input and route the Transmission wakeup output; note it comes up a few seconds after power-on.