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.
| Tag | Means |
|---|---|
| car | Seen on a real car or module, usually in a wire log. |
| emulator | Measured by running the unit's own firmware in an emulator, against BMWeb or a scripted tester. |
| firmware | Read from the disassembly of the named software release, not yet seen on a car. |
| BMW data | Read from BMW's own data files: the diagnostic descriptions (SGBD), coding files and scripts, run offline where they are programs. |
| field report | Reported 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.