Hello all,
I would like to start a thread on the Bosch BMSK ECU found in BMW Motorrad vehicles.
The model that I own is a 2013 F800R and as such most of the information will refer to this version of ECU.
I would like to include all information about map discovery and known addresses - I hope to eventually include some dyno results and testing in the future when this becomes available to me.
THIS IS NOT GOING TO BE COMPLETE AS TESTING IS STILL ON-GOING AND I AM STILL NEW TO THIS!
Bike : 2013 BMW F800R
HW Version: 08522506
SW Version: 08529612
I will start off what I know with finding maps in these BIN files:
The block of data containing most maps is between;
1E43C0
1F3224
In some cases where you took a full BIN reading I expect more information to be available outside of this data region,
Because I have no interest in taking a full BIN reading and expect many others also aren't I will not be investigating addresses beyond these locations.
all maps I have found at present will have the map dimensions just before the axis data, for example;
| 00007 | 00008 | 00000 | 00128 | 00256 | 00512 | 01024 | 02048 | 04096 | 00000 | 00128 | 00256 | 00512 | 01024 | 02048 | 04096 | 08192
Green = map size = (7 * 8)
Cyan = Axis 1 dataset (0 - 4096)
Magenta = Axis 2 dataset (0 - 8192)
The first dimension will always have its dataset first and the second dimension second.
I have not seen any value that is used as a map function indicator like present on some EDC ECU's. As such you will need to use the dimensions, axis data,
and overall shape to determine what a map actually controls. Access to a dyno and and an AFR gauge will allow me to do more accurate testing.
(I suspect that when it comes time - this will make it extremely difficult to find the use of 2 or single value maps).
Common data Values for Axis data;
RPM = 5000 - 32000 (In decimal view)
= 1000 - 8000RPM
OR = 5000 - 36000 (In decimal view)
= 1000 - 9000RPM
OR = 3200 - 32000 (In decimal view)
= 800 - 8000RPM
I would be suspicious of any axis that increase linearly and ends in either 32000 OR 36000,
I would also be suspicious of any maps that have large datasets low in what would be the RPM range. (For idle, anti-stall, and low load situations)
Throttle Position = 0 - 4096
Throttle Position = 0 - 32768
Throttle Position = 0 - 65535 (Is not actually a power of 2 but rounding would make it)
Throttle Position = 0 - 28160
As a rule of thumb I would be suspicious of any axis that starts at 0,
I would also be suspicious of any axis that ends in a value divisible by 8 (Or is a power of 2) 256, 512, 1024, 2048, 4096 etc.
Most maps will be 16bit, but a few will be in 8bit. (WinOLS is good at finding maps but majority appear to be duds (No map dimensions))
All of the maps that I can see will be most visible in Hi/Lo bit organization.
Common factor offsets;
RPM = Value * 0.25
TPS = 1 / (Max Value * 0.01)
MORE RESEARCH REQUIRED HERE! Will need to investigate more to find factor offsets for air volume, temperature, etc.
Also need to add images (Or links to).
I Will attach an XDF file kindly donated to me by my buddies at OST (Antique skeleton Tuners).
There is no password for the XDF
In my opinion there are only a limited number of maps defined by them and that is a part of the reason I will be looking so heavily into this and publishing the information.
If you have any information to add please feel free to add it below, it would be excellent if this was reciprocal and everyone can share their insight.
I will continue adding information to this as it is found!
Edit: Original BIN file uploaded 'Read2.rar'
Regards,
Gavin
Bookmarks