Main page

From BMWeb Wiki

Welcome to BMWeb Wiki

What we learned about E46-era BMW control units while building BMWeb: memory maps, CAN messages, programming sessions and the checks behind fault codes, each with where the fact comes from.

Control units

Siemens MS45.1 DME
MPC555 and external flash map, the boot loader's programming session and what it will never touch, what makes a flash valid, the checksum that resets the car, the programming log, the immobiliser's ISN, line speeds.
Siemens MS43 DME
Fault 134 and the 0x43D gearbox frame: every STATE_ERR_AMT value, the checksum, the idle and shift frames.
GS20 automatic gearbox
C167 layout, identification, the programming session and why a bad program boot-loops.

Topics

Diagnostics and the K line
DS2 and KWP2000 telegrams, answer codes, timing, what cables and adapters can carry, and the traps in BMW's own flash descriptions.
Coding
How the factory coding jobs talk to an E46 cluster, what the factory tool writes and how it addresses blocks, and the traps in coding files.
Gearbox swaps
Everything about running an SMG2 behind an engine computer it did not come with.

Where the facts come from

Every claim carries a tag saying how it was established. Where two sources disagree, the higher one in this list wins.

TagMeans
carSeen on a real car or module, usually in a wire log.
emulatorMeasured by running the unit's own firmware in an emulator, against BMWeb or a scripted tester.
firmwareRead from the disassembly of the named software release, not yet seen on a car.
BMW dataRead from BMW's own data files: the diagnostic descriptions (SGBD), coding files and scripts, run offline where they are programs.
field reportReported by another owner testing on their car. Plausible, not reproduced by us.

Byte numbers count from 0, and bit 0 is the least significant bit. A telegram is written as hex bytes as they go on the wire.

Before you use any of this

These pages describe how the units behave, not a procedure that is safe on your car. A write to a control unit can leave it unable to start. Read the unit's own data back before you change it, keep a copy, and expect that a software release other than the one named may differ.

What BMWeb itself will and will not write is in the documentation.