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
- On a CANbus Gateway / IOcan configuration, add the BMW OEM Gateway controller.
- Add a CAN bus for the transmission and pair the matching transmission-emulation preset (list below).
- Assign all mandatory inputs, then the optional ones you have.
- Choose a Torque calculation method and fill the maps it needs.
- Route the outputs — the transmission-state set plus the torque-management handshake — to CAN or pins.
- 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 defined — built-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
- 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.)
- 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.
- 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.
- Set Diff ratio and Wheel diameter, and assign the Vehicle speed input so speed emulation works from power-up.
- Route the required outputs; send Cut request, Blip request and Engine torque back to the ECU and configure its torque-reduction / blip strategy.
- 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.
Related
- Controllers — driver catalogue
- Common features: Engine torque estimation · Fuel & injector model · Vehicle & wheel speed · Shift torque management
- OEM PDK Gateway — the same driver family for Porsche PDK
- 8HP: Supported variants · Wiring · Configuration
- DKG: Fxx DCT support · Wiring · Supported variants
- Working with the CAN Bus · Scaling and Maps