FunCar about M3.1 software
Posted: Sun May 04, 2025 1:48 am
About firmware using the example of BOSCH M3.1.
Part 1.
First, about identification.
There are many identifiers for firmware and brains.
For example, we have a brain with a bunch of stickers, on the block, on the memory chip (EPROM), with these numbers.
BOSCH M3.1
0 261 200 405
1 267 356 548
1 735 614
1 738 124
First, we will describe the identifiers of the block manufacturer (the manufacturer is BOSCH, not BMW)
1. The hardware platform identifier in this case is M3.1 - all M3.1 blocks are similar in hardware, processor type and memory capacity.
2. A 10-digit number describing the hardware. The number usually starts with 0 261 ... (for example 0261200405). This number more accurately describes the hardware differences of the platform.
3. 10-digit number describing the program version 1 267 356 548, in fact, this number describes only part of the program, actually part of the control logic, but not the settings responsible for the engine capacity and automatic/manual transmission settings, fuel type, etc. That is, firmware with this number can be both for 2.0 and 2.5 liter engines - having Bosch numbers, we can say that this block/firmware kit is intended for the M50 engine, but these numbers do not describe what engine capacity and what gearbox.
Now BMW company identifiers, like any numbers from the spare parts catalog of 7-11 characters, are the main signs by which you can find out exactly what body/engine/gearbox the block/firmware is intended for.
In BMW terminology, there are two main identifiers.
1. The base unit number. In this case, 1,735,614. This number describes the same thing as 1,267,356,548 for Bosch, the version of part of the software logic. And by this number, you can order a unit (subject to programming with the corresponding set of data after installation on the car - when programming, a piece containing the engine settings is added to the empty part of the memory)
There can be a large number of data sets for this number (see below).
2. The number of the programmable unit (1,738,124). In fact, a set of engine settings, this part of the program describes the settings - ignition angle maps, fuel maps, component presence flags (catalytic converter, lambda probe, gearbox type). By this number, you can order (previously it was definitely possible) an already programmed unit for a specific car and configuration.
Since BMW already liked to update programs, there is a set of settings for each base number.
All these numbers can be found in the contents of any firmware. Bosch numbers are in clear text form, and can be found by opening the file even with a notepad, the only thing is that they are written backwards (5040021620 8456537621).
BMW numbers are next to each other, but in hexadecimal format (hex).
1 735 614 (dec) = 1A7BBE (hex). They can also be seen, but only after opening the firmware with a hexadecimal editor (for example, I really like hexworkshop).
There are also numbers for both Bosch and BMW, but for our purposes they are not important - for example, the build number, the number of the file containing the program - they are also in the firmware (BMW really likes to assign numbers to everything).
Part 1.
First, about identification.
There are many identifiers for firmware and brains.
For example, we have a brain with a bunch of stickers, on the block, on the memory chip (EPROM), with these numbers.
BOSCH M3.1
0 261 200 405
1 267 356 548
1 735 614
1 738 124
First, we will describe the identifiers of the block manufacturer (the manufacturer is BOSCH, not BMW)
1. The hardware platform identifier in this case is M3.1 - all M3.1 blocks are similar in hardware, processor type and memory capacity.
2. A 10-digit number describing the hardware. The number usually starts with 0 261 ... (for example 0261200405). This number more accurately describes the hardware differences of the platform.
3. 10-digit number describing the program version 1 267 356 548, in fact, this number describes only part of the program, actually part of the control logic, but not the settings responsible for the engine capacity and automatic/manual transmission settings, fuel type, etc. That is, firmware with this number can be both for 2.0 and 2.5 liter engines - having Bosch numbers, we can say that this block/firmware kit is intended for the M50 engine, but these numbers do not describe what engine capacity and what gearbox.
Now BMW company identifiers, like any numbers from the spare parts catalog of 7-11 characters, are the main signs by which you can find out exactly what body/engine/gearbox the block/firmware is intended for.
In BMW terminology, there are two main identifiers.
1. The base unit number. In this case, 1,735,614. This number describes the same thing as 1,267,356,548 for Bosch, the version of part of the software logic. And by this number, you can order a unit (subject to programming with the corresponding set of data after installation on the car - when programming, a piece containing the engine settings is added to the empty part of the memory)
There can be a large number of data sets for this number (see below).
2. The number of the programmable unit (1,738,124). In fact, a set of engine settings, this part of the program describes the settings - ignition angle maps, fuel maps, component presence flags (catalytic converter, lambda probe, gearbox type). By this number, you can order (previously it was definitely possible) an already programmed unit for a specific car and configuration.
Since BMW already liked to update programs, there is a set of settings for each base number.
All these numbers can be found in the contents of any firmware. Bosch numbers are in clear text form, and can be found by opening the file even with a notepad, the only thing is that they are written backwards (5040021620 8456537621).
BMW numbers are next to each other, but in hexadecimal format (hex).
1 735 614 (dec) = 1A7BBE (hex). They can also be seen, but only after opening the firmware with a hexadecimal editor (for example, I really like hexworkshop).
There are also numbers for both Bosch and BMW, but for our purposes they are not important - for example, the build number, the number of the file containing the program - they are also in the firmware (BMW really likes to assign numbers to everything).