8HP OEM Gateway¶
Overview¶
The 8HP OEM Gateway (app name Gateway BMW OEM) is a controller that lets you
keep a factory BMW / ZF 8HPxx automatic 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.
Use it when you have swapped the engine management (or the whole engine) but want to
retain the OEM 8HP behaviour, shift quality and diagnostics. It runs on a CANbus
Gateway (CGW…) or IOcan (IOC…) device. For the standalone alternative that
drives an 8HP without its TCU, see the GCU ZF 8HPxx driver.
This is an OEM gateway driver. Read
Controllers → OEM gateway drivers for the
shared concepts (engine-torque estimation, DBW Modifier, fuel model) — this page
covers the 8HP specifics and the full field/table reference.
Supported transmissions¶
ZF 8HP45 / 8HP50 / 8HP70 / 8HP90 and related variants as fitted to BMW F- and
G-series, plus Alpina calibrations. The correct generation is selected by
the paired CAN preset (see CAN presets). See
8HPxx and Supported transmissions.
Prerequisites & hardware¶
- A factory 8HP 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 8HP TCU lives on PT-CAN or PT-CAN2 depending on platform — pick
the matching preset. - Engine signals available to the device (from the ECU over CAN, or on physical
pins) — at minimum engine RPM and a torque source; see Inputs. - For paddle/selector control, an OEM or emulated shifter — see the
BMW F-Series GWS pinout.
Wiring references: 8HPxx connections,
BMW F30 Gateway connection guide,
CAN Gateway Pinout, OBD Pinout.
Add it in the app¶
- On a CANbus Gateway / IOcan configuration, add the 8HP OEM Gateway controller.
- Add a CAN bus for the transmission and pair the
matching transmission-emulation preset (list below). - Assign the engine inputs (RPM, throttle/pedal, MAP, temperatures,
and a torque source). - Choose a Torque calculation method and fill the
tables it needs. - Route the outputs you need (gear display, reverse light, vehicle
speed, torque-management handshake) to CAN or pins.
Inputs¶
Assign each signal to a source (CAN object,
CAN frame, or a pin). Mandatory signals missing → the controller
faults and the transmission will not run; optional signals fall back to an internal
value (see Configuration Concepts).
Engine parameters¶
| Signal | Unit | Notes |
|---|---|---|
| Engine RPM | 1/min | Mandatory. |
| Throttle position | % | 0–100. |
| Pedal position | % | 0–100. |
| Manifold pressure | kPa | For air-model torque. |
| Atmospheric pressure | kPa | Barometric reference. |
| Coolant temperature | °C | |
| Oil temperature | °C | |
| Lambda | λ | Mixture correction for torque. |
Engine torque¶
Used directly by the External Inputs method and as a sanity reference for the
others.
| Signal | Unit | Notes |
|---|---|---|
| No intervention | Nm | Driver-demanded torque before traction/stability cuts. |
| Intervention | Nm | Actual torque after intervention. |
| Max | Nm | Upper limit reported to the TCU. |
| Min | Nm | Lower limit. |
| Loses | Nm | Friction / accessory losses. |
Chassis signals¶
| Signal | Unit | Notes |
|---|---|---|
| Brake switch | on/off | Needed for park/drive interlocks. |
| Brake pressure | — | Optional analogue brake input. |
| Vehicle speed | km/h | Or derived from the wheel speeds below. |
| ↳ Front left / right | km/h | Per-wheel speed. |
| ↳ Rear left / right | km/h | Per-wheel speed. |
| KL15 / Ignition | on/off | Wake / ignition state. |
| Drive Mode | enum | Comfort / Sport / etc. drive-mode select. |
Outputs¶
Outputs do nothing until routed to a CAN message or a pin and driven by this
controller (see Configuring Outputs). Each can feed several
consumers at once via a splitter output.
Torque management (handshake to the ECU)¶
| Signal | Notes |
|---|---|
| Engine torque | Torque the TCU is requesting/expects. |
| Cut request | Torque-cut request during an upshift. |
| Blip request | Throttle-blip request during a downshift. |
Transmission parameters¶
| Signal | Unit | Notes |
|---|---|---|
| Current gear | gear | |
| Current gear / park | gear | Includes P. |
| Next gear | gear | Target gear during a shift. |
| Gearbox mode | enum | R / P / N / D / M. |
| TCC slip | 1/min | Torque-converter clutch slip. |
| Gear ratio | :1 | Active ratio. |
| Turbine speed | 1/min | Input-shaft speed. |
| Tailshaft speed | 1/min | Output-shaft speed. |
| Transmission temperature | °C | |
| Vehicle speed | km/h | |
| Wheel RPM | 1/min | |
| Reverse light | on/off | |
| Transmission wakeup | on/off | Keeps the TCU awake. |
Parameters¶
Engine torque calculation¶
| Parameter | Meaning | Unit | Range | Default |
|---|---|---|---|---|
| Torque calculation method | How engine torque is produced — see methods | enum | Torque Tables · External Inputs · Internal Calculation · Fuel Calculation · Fuel Calculation v2 · Fuel Only Calculation · Air only calculation | Torque Tables |
| Idle RPM | Expected idle speed | RPM | 0–20000 | 800 |
| Rev limiter | Engine rev limit | RPM | 0–20000 | 6500 |
| Cylinder count | Number of cylinders | — | 1–20 | 6 |
| Displacement | Engine displacement | cm³ | 1–20000 | 3000 |
| Compression ratio | Geometric compression | :1 | 1–20 | 10.0 |
| Throttle diameter | Throttle-body bore | mm | 1–20000 | 90 |
| Maximum MAP value | Full-scale manifold pressure | kPa | 1–2000 | 300 |
Primary injector / Secondary injector¶
The secondary set is optional (staged/auxiliary injection) and has the same fields.
| Parameter | Meaning | Unit | Range | Default |
|---|---|---|---|---|
| Fuel type | Fuel selection | enum | Gasoline · Flex Fuel · Ethanol 100 · Ethanol 85 · Methanol · Diesel · User defined | Gasoline |
| Injector pulse width | Live injection-time input | — | — | — |
| Injector size | Static flow | cm³/min | 1–20000 | 600 |
| Nominal injector pressure | Rating pressure | kPa | 1–200000 | 350 |
| Deadtime mode | Source of injector dead time | enum | Do not use · Input · User defined | Do not use |
| Deadtime input | Live dead-time input | — | — | — |
| Fuel pressure | Live fuel-pressure input | — | — | — |
| Fuel temperature | Live fuel-temperature input | — | — | — |
| Flex Fuel | Live ethanol-content input | — | — | — |
Speed calculation¶
| Parameter | Meaning | Unit | Range | Default |
|---|---|---|---|---|
| Diff ratio | Final-drive ratio | :1 | 1–20 | 2.7 |
| Wheel diameter | Rolling diameter | mm | 1–20000 | 640 |
DBW Modifier¶
Clutchless-shift throttle override — see concept.
| Parameter | Meaning | Unit | Range | Default |
|---|---|---|---|---|
| Mode | Enable the modifier | enum | No DBW Modifier · DBW Modifier | No DBW Modifier |
| PPS A in / B in | Raw pedal-sensor inputs | — | — | — |
| PPS A out / B out | Modified pedal outputs to the throttle | — | — | — |
| Cut time limit | Max duration of an upshift cut | ms | 1–20000 | 200 |
| Blip time limit | Max duration of a downshift blip | ms | 1–20000 | 200 |
Calibration tables (maps)¶
All tables are entered and interpolated as described in
Scaling and Maps. Fill only the tables required by your
Torque calculation method plus the DBW tables if the modifier is enabled.
DBW Modifier — Cut (upshift)¶
Axes: Gear × Torque.
| Table | Calibrates |
|---|---|
| Limit pos | Pedal/throttle target during the cut |
| Ramp in time | How fast the cut is applied |
| Ramp out time | How fast torque is restored |
DBW Modifier — Blip (downshift)¶
Axes: Gear × ΔRPM (rev-match need).
| Table | Calibrates |
|---|---|
| Target pos | Pedal/throttle target for the blip |
| Ramp in time | How fast the blip is applied |
| Ramp out time | How fast it is removed |
| Time | Blip hold duration |
Torque tables (method: Torque Tables)¶
| Table | Calibrates | Axes |
|---|---|---|
| Engine torque TPS-RPM | Torque from throttle and RPM | TPS × RPM |
| Engine torque MAP-RPM | Torque from manifold pressure and RPM | MAP × RPM |
VE tables (method: Internal / Air calculation)¶
| Table | Calibrates | Axes |
|---|---|---|
| VE Speed-Density | Volumetric efficiency vs load and RPM | MAP × RPM |
| VE Alpha-N | Volumetric efficiency vs throttle and RPM | TPS × RPM |
| VE Blending | Blend between Speed-Density and Alpha-N | MAP (1D) |
Drag / efficiency maps¶
Correct the estimate for engine braking and mixture (1-row maps).
| Table | Calibrates | Axis |
|---|---|---|
| Engine speed drag map | Engine-braking torque vs RPM | RPM |
| Throttle drag map | Drag correction vs throttle | TPS |
| Manifold pressure drag map | Drag correction vs MAP | MAP |
| Lambda efficiency | Torque efficiency vs lambda | λ |
Injector / fuel tables (methods: Fuel calculation)¶
The primary and secondary injectors each have the same four tables.
| Table | Calibrates | Axes |
|---|---|---|
| Deadtime | Injector dead time | Voltage × Fuel pressure |
| Fuel density | Density vs ethanol and temperature | Flex fuel × Temperature |
| Stochiometric AFR | Stoich AFR vs ethanol | Flex fuel (1D) |
| Fuel energy | Energy content vs ethanol | Flex fuel (1D) |
CAN presets to pair¶
Pair the driver with the transmission-emulation preset for your platform and
generation (Transmission Emulation category). The preset implements the on-wire 8HP
protocol on the chosen bus; the driver provides the signals.
| 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 |
Also available: BMW PT_CAN Forwarder and BMW ISO TP Gateway (diagnostic/
bridging). BMW DKG (dual-clutch) uses the same gateway with the DKG presets and
is documented with the DCT drivers.
Example — engine-swapped F30 with an aftermarket ECU¶
- Add the 8HP OEM Gateway on a CANbus Gateway; add a CAN bus on PT-CAN and
pair BMW 8HP PT_CAN Fxx Gen1. - Map Engine RPM, Throttle, Pedal, MAP, Coolant/Oil temp from
the ECU's CAN stream via CAN Object Inputs. - Set Torque calculation method = Torque Tables; fill Engine torque TPS-RPM
from the engine's torque data. Set Cylinder count, Displacement, Rev
limiter. - Set Diff ratio and Wheel diameter so Vehicle speed reads correctly.
- Enable the DBW Modifier, wire PPS A/B in from the pedal and PPS A/B out
to the throttle, and fill the Cut and Blip tables. - Route Current gear, Gearbox mode and Reverse light to the cluster/CAN.
Troubleshooting¶
-
Transmission won't engage / faults at start: a mandatory input (RPM or a torque
source) is unassigned — check input rules. -
Harsh or lazy shifts: the TCU is getting a poor engine torque value — verify
the torque method and its tables; cross-check against the torque inputs. -
Shifts but no rev-match / driveline shock on manual shifts: enable and calibrate
the DBW Modifier Cut/Blip tables. - Wrong road speed: check Diff ratio and Wheel diameter.
- TCU keeps sleeping: route and drive Transmission wakeup.
Related¶
- Controllers — driver catalogue and shared OEM-gateway concepts
- OEM PDK Gateway — the same driver family for Porsche PDK
-
8HPxx · 8HPxx connections ·
Supported transmissions -
Working with the CAN Bus ·
Scaling and Maps
Updated by Adam Klama 1 day ago · 1 revisions