MBE 941 ECU Knowledge Base
941 MBE ECU Knowledge Base
A wiki page to share knowledge about the 941 MBE ECU.
I'm happy to share knowledge about how to communicate with the 941.
1. Technical Details
2. Versions
3. Current diagnostic software solutions
4. Communication
5. Simple python program to query ECU
6. Throttle Pot lookup Table
7. Water Temperature lookup Table
Asking the ECU for any info takes a few lines of Python.
1. Technical Details
Serial type MBE ECUs Pin Out & Related Wiring Information from SBD Motorsport
The 941 ECU has an 8-bit bus
Each 8 bit memory locaton can be used to store a value from 0-256 or 0x00 - 0xFF
2. Versions
[ Juddder]The version number is an 8 digit code stored in the ECU EPROM and is referred to in the Original ECU Diagnostic software without the 3rd number (presumably to allow wildcard versions)
Known versions that are dumped are shown with the extra number in the brackets and the engine type at the end
- 9280240 = 928[x]0240 [v8]
- 9280270 = 928[1]0270 [v8]
- 9410034 = 941[x]0034 [v8]
- 9410035 = 941[1]0035 [v8]
- 9410090 = 941[x]0090 [s6]
- 9410100 = 941[x]0100 [s6]
- 9410101 = 941[3]0101 [s6]
- 9410101 = 941[3]0116 [s6]
Later ECU software appears to have additional logging such as BuzzLogger, SpeedLogger, WaterLogger etc. including an OilLogger, even on the V8 at version #941[1]0035
3. Current diagnostic software solutions
...
4. Communication
...
5. Simple python program to query ECU
The current state of each ECU parameter (Throttle position, Lambda sensors, etc..) is stored in the ECU at a specific memory location.
The ECU Diagnostic Software simply queries and displays these memory locations.
Communication with the ECU is a simple serial connection. All you need to do is open a socket with the correct baud rate and you can freely query any memory location you like. So, to ask the ECU for the contents of a memory location, you just write the desired memory location on the socket are read the response.
There are some extra files bundled with the Original ECU diagnostic software.
If you look in one that ends in .ECF you will see something like this:
\#Title,legend,units,max,min,command,SamplingInterval
WaterTemp,WaterTemp, C, 130.0, -30,C0
Throttle1,Throttle1, %, 100.0, 9.48,9C
Throttle2,Throttle2, %, 100.0, 9.48,94
What that says is: Throttle 1 is a percentage value ranging from 9.48% to 100% and it is stored in memory location 9C.
Or WaterTemp is a value ranging from -30 to 130.0 and is stored in memory location C0.
So, if you connect to your ecu and ask it for the contents of WaterTemp memory location "C0" and it gives you "BD" it means that the water temperature is 88.6 degrees. There is a table of values to reverse lookup the values stored for water temp.
Here is some example python code, that queries the ECU for its serial number and current water temperature.
It is example code only.
#!/usr/bin/python
import sys
import time
import serial
import string
# configure the serial connection.
ser = serial.Serial(
port='/dev/ttyS0',
baudrate=4800,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.isOpen()
len = ser.inWaiting()
while len == 0:
len = ser.inWaiting()
if len == 0:
ser.write('\r')
time.sleep(0.1)
out = ser.read(len)
print "Serial Number of ECU:" + out
len = ser.inWaiting()
ser.write('\xC0') # Water Temp Op Code
while len == 0:
len = ser.inWaiting()
time.sleep(0.1)
out = ser.read(len)
while len !=0:
print "LOOK->%02X" %ord(out[len-1])
len -=1
sys.exit(0)
6 Throttle Pot lookup Table
0x00, 9.5
0x01, 9.8
0x02,10.2
0x03,10.5
0x04,10.9
0x05,11.3
0x06,11.6
0x07,12.0
0x08,12.3
0x09,12.7
0x0A,13.0
0x0B,13.4
0x0C,13.7
0x0D,14.1
0x0E,14.4
0x0F,14.8
0x10,14.8
0x11,15.5
0x12,15.9
0x13,16.2
0x14,16.2
0x15,16.9
0x16,17.3
0x17,17.6
0x18,17.6
0x19,18.4
0x1A,18.7
0x1B,19.1
0x1C,19.1
0x1D,19.8
0x1E,20.1
0x1F,20.5
0x20,20.5
0x21,21.2
0x22,21.2
0x23,21.9
0x24,21.9
0x25,22.6
0x26,22.6
0x27,23.3
0x28,23.3
0x29,24.0
0x2A,24.0
0x2B,24.7
0x2C,24.7
0x2D,25.5
0x2E,25.5
0x2F,26.2
0x30,26.2
0x31,26.9
0x32,27.2
0x33,27.6
0x34,27.6
0x35,28.3
0x36,28.6
0x37,29.0
0x38,29.0
0x39,29.7
0x3A,30.1
0x3B,30.4
0x3C,30.4
0x3D,31.1
0x3E,31.5
0x3F,31.8
0x40,31.8
0x41,32.6
0x42,32.9
0x43,33.3
0x44,33.3
0x45,34.0
0x46,34.3
0x47,34.7
0x48,34.7
0x49,35.4
0x4A,35.7
0x4B,36.1
0x4C,36.1
0x4D,36.8
0x4E,37.2
0x4F,37.5
0x50,37.9
0x51,38.2
0x52,38.6
0x53,38.9
0x54,39.3
0x55,39.7
0x56,40.0
0x57,40.4
0x58,40.7
0x59,41.1
0x5A,41.4
0x5B,41.8
0x5C,42.1
0x5D,42.5
0x5E,42.8
0x5F,43.2
0x60,43.6
0x61,43.9
0x62,44.3
0x63,44.6
0x64,45.0
0x65,45.3
0x66,45.7
0x67,46.0
0x68,46.4
0x69,46.8
0x6A,47.1
0x6B,47.5
0x6C,47.8
0x6D,48.2
0x6E,48.5
0x6F,48.9
0x70,49.2
0x71,49.6
0x72,49.9
0x73,50.3
0x74,50.7
0x75,51.0
0x76,51.4
0x77,51.7
0x78,52.1
0x79,52.4
0x7A,52.8
0x7B,53.1
0x7C,53.5
0x7D,53.9
0x7E,54.2
0x7F,54.6
0x80,54.9
0x81,55.3
0x82,55.6
0x83,56.0
0x84,56.3
0x85,56.7
0x86,57.0
0x87,57.4
0x88,57.8
0x89,58.1
0x8A,58.5
0x8B,58.8
0x8C,59.2
0x8D,59.5
0x8E,59.9
0x8F,60.2
0x90,60.6
0x91,61.0
0x92,61.3
0x93,61.7
0x94,62.0
0x95,62.4
0x96,62.7
0x97,63.1
0x98,63.4
0x99,63.8
0x9A,64.1
0x9B,64.5
0x9C,64.9
0x9D,65.2
0x9E,65.6
0x9F,65.9
0xA0,66.3
0xA1,66.6
0xA2,67.0
0xA3,67.3
0xA4,67.7
0xA5,68.1
0xA6,68.4
0xA7,68.8
0xA8,69.1
0xA9,69.5
0xAA,69.8
0xAB,70.2
0xAC,70.5
0xAD,70.9
0xAE,71.2
0xAF,71.6
0xB0,72.0
0xB1,72.3
0xB2,72.7
0xB3,73.0
0xB4,73.4
0xB5,73.7
0xB6,74.1
0xB7,74.4
0xB8,74.8
0xB9,75.2
0xBA,75.5
0xBB,75.9
0xBC,76.2
0xBD,76.6
0xBE,76.9
0xBF,77.3
0xC0,77.6
0xC1,78.0
0xC2,78.3
0xC3,78.7
0xC4,79.1
0xC5,79.4
0xC6,79.8
0xC7,80.1
0xC8,80.5
0xC9,80.8
0xCA,81.2
0xCB,81.5
0xCC,81.9
0xCD,82.3
0xCE,82.6
0xCF,83.0
0xD0,83.3
0xD1,83.7
0xD2,84.0
0xD3,84.4
0xD4,84.7
0xD5,85.1
0xD6,85.4
0xD7,85.8
0xD8,86.2
0xD9,86.5
0xDA,86.9
0xDB,87.2
0xDC,87.6
0xDD,87.9
0xDE,88.3
0xDF,88.6
0xE0,89.0
0xE1,89.4
0xE2,89.7
0xE3,90.1
0xE4,90.4
0xE5,90.8
0xE6,91.1
0xE7,91.5
0xE8,91.8
0xE9,92.2
0xEA,92.5
0xEB,92.9
0xEC,93.3
0xED,93.6
0xEE,94.0
0xEF,94.3
0xF0,94.7
7 Water Termperature lookup Table
[ Juddder]Formula: (160 ÷ 255) × [value] + −30
(Total Range available / Total Values possible) x Current Value - Minimum adjustment as starts at less than 0
0x01 1 -29.4
0x02 2 -28.7
0x03 3 -28.1
0x04 4 -27.5
0x05 5 -26.9
0x06 6 -26.2
0x07 7 -25.6
0x08 8 -25
0x09 9 -24.4
0x0A 10 -23.7
0x0B 11 -23.1
0x0C 12 -22.5
0x0D 13 -21.8
0x0E 14 -21.2
0x0F 15 -20.6
0x10 16 -20
0x11 17 -19.3
0x12 18 -18.7
0x13 19 -18.1
0x14 20 -17.5
0x15 21 -16.8
0x16 22 -16.2
0x17 23 -15.6
0x18 24 -14.9
0x19 25 -14.3
0x1A 26 -13.7
0x1B 27 -13.1
0x1C 28 -12.4
0x1D 29 -11.8
0x1E 30 -11.2
0x1F 31 -10.5
0x20 32 -9.9
0x21 33 -9.3
0x22 34 -8.7
0x23 35 -8
0x24 36 -7.4
0x25 37 -6.8
0x26 38 -6.2
0x27 39 -5.5
0x28 40 -4.9
0x29 41 -4.3
0x2A 42 -3.6
0x2B 43 -3
0x2C 44 -2.4
0x2D 45 -1.8
0x2E 46 -1.1
0x2F 47 -0.5
0x30 48 0.1
0x31 49 0.7
0x32 50 1.4
0x33 51 2
0x34 52 2.6
0x35 53 3.3
0x36 54 3.9
0x37 55 4.5
0x38 56 5.1
0x39 57 5.8
0x3A 58 6.4
0x3B 59 7
0x3C 60 7.6
0x3D 61 8.3
0x3E 62 8.9
0x3F 63 9.5
0x40 64 10.2
0x41 65 10.8
0x42 66 11.4
0x43 67 12
0x44 68 12.7
0x45 69 13.3
0x46 70 13.9
0x47 71 14.5
0x48 72 15.2
0x49 73 15.8
0x4A 74 16.4
0x4B 75 17.1
0x4C 76 17.7
0x4D 77 18.3
0x4E 78 18.9
0x4F 79 19.6
0x50 80 20.2
0x51 81 20.8
0x52 82 21.5
0x53 83 22.1
0x54 84 22.7
0x55 85 23.3
0x56 86 24
0x57 87 24.6
0x58 88 25.2
0x59 89 25.8
0x5A 90 26.5
0x5B 91 27.1
0x5C 92 27.7
0x5D 93 28.4
0x5E 94 29
0x5F 95 29.6
0x60 96 30.2
0x61 97 30.9
0x62 98 31.5
0x63 99 32.1
0x64 100 32.7
0x65 101 33.4
0x66 102 34
0x67 103 34.6
0x68 104 35.3
0x69 105 35.9
0x6A 106 36.5
0x6B 107 37.1
0x6C 108 37.8
0x6D 109 38.4
0x6E 110 39
0x6F 111 39.6
0x70 112 40.3
0x71 113 40.9
0x72 114 41.5
0x73 115 42.2
0x74 116 42.8
0x75 117 43.4
0x76 118 44
0x77 119 44.7
0x78 120 45.3
0x79 121 45.9
0x7A 122 46.5
0x7B 123 47.2
0x7C 124 47.8
0x7D 125 48.4
0x7E 126 49.1
0x7F 127 49.7
0x80 128 50.3
0x81 129 50.9
0x82 130 51.6
0x83 131 52.2
0x84 132 52.8
0x85 133 53.5
0x86 134 54.1
0x87 135 54.7
0x88 136 55.3
0x89 137 56
0x8A 138 56.6
0x8B 139 57.2
0x8C 140 57.8
0x8D 141 58.5
0x8E 142 59.1
0x8F 143 59.7
0x90 144 60.4
0x91 145 61
0x92 146 61.6
0x93 147 62.2
0x94 148 62.9
0x95 149 63.5
0x96 150 64.1
0x97 151 64.7
0x98 152 65.4
0x99 153 66
0x9A 154 66.6
0x9B 155 67.3
0x9C 156 67.9
0x9D 157 68.5
0x9E 158 69.1
0x9F 159 69.8
0xA0 160 70.4
0xA1 161 71
0xA2 162 71.6
0xA3 163 72.3
0xA4 164 72.9
0xA5 165 73.5
0xA6 166 74.2
0xA7 167 74.8
0xA8 168 75.4
0xA9 169 76
0xAA 170 76.7
0xAB 171 77.3
0xAC 172 77.9
0xAD 173 78.5
0xAE 174 79.2
0xAF 175 79.8
0xB0 176 80.4
0xB1 177 81.1
0xB2 178 81.7
0xB3 179 82.3
0xB4 180 82.9
0xB5 181 83.6
0xB6 182 84.2
0xB7 183 84.8
0xB8 184 85.5
0xB9 185 86.1
0xBA 186 86.7
0xBB 187 87.3
0xBC 188 88
0xBD 189 88.6
0xBE 190 89.2
0xBF 191 89.8
0xC0 192 90.5
0xC1 193 91.1
0xC2 194 91.7
0xC3 195 92.4
0xC4 196 93
0xC5 197 93.6
0xC6 198 94.2
0xC7 199 94.9
0xC8 200 95.5
0xC9 201 96.1
0xCA 202 96.7
0xCB 203 97.4
0xCC 204 98
0xCD 205 98.6
0xCE 206 99.3
0xCF 207 99.9
0xD0 208 100.5
0xD1 209 101.1
0xD2 210 101.8
0xD3 211 102.4
0xD4 212 103
0xD5 213 103.6
0xD6 214 104.3
0xD7 215 104.9
0xD8 216 105.5
0xD9 217 106.2
0xDA 218 106.8
0xDB 219 107.4
0xDC 220 108
0xDD 221 108.7
0xDE 222 109.3
0xDF 223 109.9
0xE0 224 110.5
0xE1 225 111.2
0xE2 226 111.8
0xE3 227 112.4
0xE4 228 113.1
0xE5 229 113.7
0xE6 230 114.3
0xE7 231 114.9
0xE8 232 115.6
0xE9 233 116.2
0xEA 234 116.8
0xEB 235 117.5
0xEC 236 118.1
0xED 237 118.7
0xEE 238 119.3
0xEF 239 120
0xF0 240 120.6
0xF1 241 121.2
0xF2 242 121.8
0xF3 243 122.5
0xF4 244 123.1
0xF5 245 123.7
0xF6 246 124.4
0xF7 247 125
0xF8 248 125.6
0xF9 249 126.2
0xFA 250 126.9
0xFB 251 127.5
0xFC 252 128.1
0xFD 253 128.7
0xFE 254 129.4
0xFF 255 130