ECU Model | Connection | OBD2 Parameters | Fault Codes | Documentation |
---|---|---|---|---|
Autodetect OBD2 | K-Line or CAN bus (14 protocols) | 194 | 2435 | Wikipedia OBD2 |
ECU Model | Connection | Vendor Parameters | Flashing | Manual | More Details |
---|---|---|---|---|---|
Delphi MT05 and MT05.2 | K-Line ISO 14230 | 115 | YES | Delphi MT05 & MC21 Manual.pdf | |
Kohler Engines MT05 | K-Line ISO 14230 | 136 | YES | Delphi MT05 & MC21 Manual.pdf | |
Briggs & Stratton MT05 | K-Line ISO 14230 | 136 | YES | Delphi MT05 & MC21 Manual.pdf | |
Rongmao MT05 | K-Line ISO 14230 | 115 | NO | Delphi MT05 & MC21 Manual.pdf | See Appendix 2 |
Delphi MT05.3 | CAN ISO 15765 | 130 | NO | Delphi MT05 & MC21 Manual.pdf | See Appendix 1 |
Chinese Fake MT05 | K-Line + CAN ISO | Only OBD2 | NO | Delphi MT05 & MC21 Manual.pdf | See Appendix 3 |
Bosch MSE 3.0 | K-Line ISO 14230 | 41 | NO | Bosch MSE 3.0 Manual.pdf | |
Bosch MSE 6.0 | K-Line ISO 14230 | 70 | NO | Bosch MSE 6.0 Manual.pdf | |
Deni E1700 | CAN Raw proprietary | 55 | NO | Deni EXX00 Manual.pdf | |
Lifan EFI 9 Euro 4 | K-Line ISO 14230 | 40 | NO | Lifan EFI 9 Euro 4 Manual.pdf | |
Liteon MC21 | K-Line ISO 14230 | 80 | NO | Delphi MT05 & MC21 Manual.pdf | |
Motion SE08 | K-Line ISO 14230 | 130 | NO | Motion SE08 & DE08 Manual.pdf | |
Motion DE08 | K-Line ISO 14230 | 130 | NO | Motion SE08 & DE08 Manual.pdf | |
Yeson 28S-06 and 28S-16 | K-Line ISO 9141 | 51 | NO | Yeson 28S Manual.pdf |
ECU Model | Connection | Parameters | Flashing | Manual | More | Details |
---|---|---|---|---|---|---|
Bosch MSE 8.0 | CAN ISO 15765 | OBD2 only | NO | Bosch MSE 8.0 Manual.pdf | ||
Deni E0900 | K-Line + CAN Raw | OBD2 only | NO | Deni EXX00 Manual.pdf | ||
Deni E1900 | K-Line | OBD2 only | NO | Deni EXX00 Manual.pdf | ||
Rojo GY6-125 | CAN Raw | Proprietary | NO | Rojo GY6 Manual.pdf | ||
FAI | CAN Raw | Proprietary | NO | Fai Manual.pdf |
Cars |
---|
Great Wall Pickup |
Chevrolet Sail & Cruze |
JAC Motors J3, J6 |
Lifan 320, 520 |
Nanjing Yuejin Soyat NJ7150 |
Motorbikes | ATV's (All Terrain Vehicles) | Other |
---|---|---|
AJP PR7 Benelli BN600 (Italy) Bullit Hero 125 Geon Invader 350 Hanway NK125S Hawk DLX Hunter Bobber 350 (Australia) Hyosung GT650RC Jawa Bobber 350 (Argentina) Jialing JH200-8 Johnny Pag Spyder 300 (USA) Junak M16 320 (Polonia) Keeway RKF 125 Leonart Daytona 350 (Spain) Lifan LF250-P Mash Seventy Five Mondial 100 SFC Snapy XI Regal Raptor 350 Revolt RS7 Riya scooters RKS Spontini Scomadi scooters Quadro scooters Zhejiang TR125 Zongshen RX3 Zontes 250 | Aeon Cobra Baltmotors Jumbo Bennche Bighorn 400 CFmoto Terralander X8 HiSUN 700 EFI Hytrack (french rebranding) Linhai T-BOSS 550 Masai (french rebranding) Massimo Alligator 700 Odes 800 Qlink FrontRunner 700 SMC MBX 850 Speed Gear Buggy 600 Stels 800 Guepard Trapper 500 Wels ATV 800 | Briggs & Stratton (Lawn Mowers, Marine motors, Generators) Kohler Engines (Lawn mowers) |
Pin | Type | Usage Options |
---|---|---|
J1-2 | Output | ECP valve or Start motor disable relay or AC cooling fan relay or Head light relay or Second air injection valve |
J1-3 | Output | MIL Lamp or Misfire generation status of cylinder 1 |
J1-4 | Output | O2 heater B or AC cooling fan relay or Head light relay or Second air injection valve |
J1-5 | Input | O2 Sensor B or Analog input 1 |
J1-6 | Output | Tacho (RPM) or Toggle signal when MAP is read or Output of TPS duty cycle signal to second ECU (4 cylinder engines) |
J1-14 | Input | Rollover Sensor Input or Power adding switch input |
J1-15 | Input | O2 Sensor B or Analog input 2 or Input for TPS duty cycle signal from first ECU (4 cylinder engines) |
J1-16 | Input | Reset EEprom by short to ground or Idle RPM adjust or Differential lock |
J1-18 | Input | Clutch/Neutral switch or Reverse gear switch |
J2-3 | Output | K-Line communication or Head light relay or Second air injection valve |
J2-6 | Output | Injector B or Second air injection valve or Cooling fan relay |
J2-12 | Input | TPS sensor input or MAP sensor only system |
K-Line / VAG Adapter | J2534 Adapter | ELM327 / OBDLink Adapter | |
---|---|---|---|
Connection | Only K-Line | K-Line + CAN bus | K-Line + CAN bus |
Advantage | As there is no intelligence in the adapter even the counterfeit are working perfectly. You can also make your own cheap DIY adapter with 2 transitors. | Professional adapters for scanning and flashing. They are technically the best choice. | Hobbyist adapters. Bluetooth and WIFI versions available. There is no advantage over J2534 adapters. |
Disadvantage | No support for CAN bus. Cannot measure battery voltage. Timing depends on computer speed. | The genuine are expensive but chinese clones exist which do work. | Misdesigned (see below) ECU Emulator and CAN Raw protocol do not work. All ELM327 adapters in internet are fake, except genuine OBDLink, ScanTool. |
Summary | OK (limited use) | recommended | deprecated |
Price Genuine | $5 USD | $180 … $500 USD | OBDLink: $40 USD |
Price Counterfeit | $5 USD Do NOT buy Ross-Tech | VISLONE: $33 USD is OK Do NOT buy Mini-VCI fake | $10 USD Do NOT buy cheap fake! |
Then you can either use a crimping plier or solder the wires to the contacts and build your cable as shown in this video.
5-Baud Initialization | |||
---|---|---|---|
Sender | Data | Baudrate | Meaning |
Tester | 0x33 | 5 Baud | Address |
ECU | 0x55 | 10400 Baud | Synchronization |
ECU | 0x08 (0x94) | 10400 Baud | Keyword 1 |
ECU | 0x08 (0x94) | 10400 Baud | Keyword 2 |
Tester | 0xF7 (0x6B) | 10400 Baud | Keyword 2 (inverted: F7 = 08 XOR FF) |
ECU | 0xCC | 10400 Baud | Address (inverted: CC = 33 XOR FF) |
Tester | Packet | 10400 Baud | First Command |
Command (from PC): 68 6A F1 ( 01 00 ) C4 Response (from ECU): 48 6B 11 ( 41 00 BE 36 B0 03 ) A9
OBD2 Command '01 00' | Response (1…7 data bytes) | ||||
---|---|---|---|---|---|
Header 1 | 68 | Fix value | Header 1 | 48 | Fix value |
Header 2 | 6A | Fix value | Header 2 | 6B | Fix value |
Header 3 | F1 | Source address (Tester) | Header 3 | 11 | Source address (ECU) |
Payload 1 | 01 | OBD2 Service 1 | Payload 1 | 41 | Service confirmation = 01 + 40 |
Payload 2 | 00 | PID 0 | Payload 2 | 00 | PID confirmation |
Checksum | C4 | 68+6A+F1+01+00 = C4 | Payload 3 | BE | 8 Bits encoding supported PID's |
Payload 4 | 36 | 8 Bits encoding supported PID's | |||
Payload 5 | B0 | 8 Bits encoding supported PID's | |||
Payload 6 | 03 | 8 Bits encoding supported PID's | |||
Checksum | A9 | 48+6B+11+41+00+BE+36+B0+03 = A9 |
Command (from PC): 81 11 F1 ( 81 ) 04 Response (from ECU): 83 F1 11 ( C1 EF 8F ) C4
Command 'Start Communication' | Response Short (1…63 data bytes) | ||||
---|---|---|---|---|---|
Header 1 | 81 | 80 + length of data (1 byte) | Header 1 | 83 | 80 + length of data (3 bytes) |
Header 2 | 11 | Destination address (ECU) | Header 2 | F1 | Destination address (tester) |
Header 3 | F1 | Source address (tester) | Header 3 | 11 | Source address (ECU) |
Payload 1 | 81 | Service 'Start Communication' | Payload 1 | C1 | Service confirmation = 81 + 40 |
Checksum | 04 | 81+11+F1+81 = 04 | Payload 2 | EF | Key byte 1 (bit flags) |
Payload 3 | 8F | Key byte 2 (always 0x8F) | |||
Checksum | C4 | 83+F1+11+C1+EF+8F = C4 |
Command 'Read Data' | Response Long (64…255 data bytes) | ||||
---|---|---|---|---|---|
Header 1 | 82 | 80 + length of data (2 byte) | Header 1 | 80 | Extra length byte follows |
Header 2 | 11 | Destination address (ECU) | Header 2 | F1 | Destination address (tester) |
Header 3 | F1 | Source address (tester) | Header 3 | 11 | Source address (ECU) |
Payload 1 | 21 | Service 'Read Data' | Header 4 | 66 | Length of data (102 byte) |
Payload 2 | 01 | Subfunction 1 | Payload 1 | 61 | Service confirmation = 21 + 40 |
Checksum | A6 | 82+11+F1+21+01 = A6 | Payload 2 | 01 | Subfunction confirmation = 01 |
Payload 3 | … | Parameter raw data byte 1 | |||
Payload 102 | … | Parameter raw data byte 100 | |||
Checksum | … | 80+F1+11+66+61+01+… |
Example 1 | Example 2 | Example 3 | |
---|---|---|---|
Field 'Response ID' | 7E8 = 111 1110 1000 | 7EX = 111 1110 XXXX | empty |
Field 'Response Filter' | 7E8 = 111 1110 1000 | 7E0 = 111 1110 0000 | 7E8 = 111 1110 1000 |
Field 'Response Mask' | 7FF = 111 1111 1111 | 7F0 = 111 1111 0000 | 7FC = 111 1111 1100 |
Received ID's that match the filter and mask | 7E8 = 111 1110 1000 only 1 ID matches | 7E0 = 111 1110 0000 7E1 = 111 1110 0001 7E2 = 111 1110 0010 7E3 = 111 1110 0011 7E4 = 111 1110 0100 7E5 = 111 1110 0101 7E6 = 111 1110 0110 7E7 = 111 1110 0111 7E8 = 111 1110 1000 7E9 = 111 1110 1001 7EA = 111 1110 1010 7EB = 111 1110 1011 7EC = 111 1110 1100 7ED = 111 1110 1101 7EE = 111 1110 1110 7EF = 111 1110 1111 16 ID's match | 7E8 = 111 1110 1000 7E9 = 111 1110 1001 7EA = 111 1110 1010 7EB = 111 1110 1011 4 ID's match |
Processor | Delphi MT05 | Delphi MT05.2 |
---|---|---|
Model | SAK-XC164CM-16F40F | SAK-XC164CS-32F40BB |
Flash Memory | 128 kB | 256 kB |
RAM | 8 kB | 12 kB |
Clock | 32 MHz | 32 MHz |
Flash Memory | Delphi MT05 | Delphi MT05.2 | ||
---|---|---|---|---|
Bootloader | 000000 - 003FFF | 16 kB | 000000 - 003FFF | 16 kB |
Configuration Data | 004000 - 004FFF | 4 kB | 004000 - 004FFF | 4 kB |
Calibration Tables | 005000 - 007FFF | 12 kB | 005000 - 00AFFF | 24 kB |
Firmware | 008000 - 01FFFF | 96 kB | 00B000 - 03FFFF | 212 kB |
However HUD ECU Hacker does this analysis in less than a second. Here you see a snippet of the huge Delphi code:
c1768e f2 fc f8 f7 mov r12,[0xF7F8] c17692 f2 fd fc f7 mov r13,[0xF7FC] c17696 d7 40 01 03 extp #0x301, #1 c1769a f2 fe 22 29 mov r14,[0x2922] c1769e da c1 f8 14 calls FUN_c114f8 c176a2 f0 c4 mov r12,r4 c176a4 f6 fc f8 f7 mov [0xF7F8],r12 c176a8 f2 fd fc f7 mov r13,[0xF7FC] c176ac 42 fd f8 f7 cmp r13,[0xF7F8] c176b0 fd 08 jmpr cc_ULE,LAB_c176c2 c176b2 22 fd f8 f7 sub r13,[0xF7F8] c176b6 f6 fd f6 f7 mov [0xF7F6],r13 c176ba e1 12 movb RL1,#0x1 c176bc f7 f2 e6 f7 movb [0xF7E6],RL1 c176c0 0d 08 jmpr cc_UC,LAB_c176d2
MAP | TPS | < 1900 | < 2800 | < 3750 | < 4500 | < 5800 | < 7200 | < 9000 | > 9000 rpm |
---|---|---|---|---|---|---|---|---|---|
< 30 kPa | < 4 % | Cell 0 | Cell 1 | Cell 2 | Cell 3 | Cell 4 | Cell 5 | Cell 6 | Cell 7 |
< 46 kPa | < 10 % | Cell 8 | Cell 9 | Cell 10 | Cell 11 | Cell 12 | Cell 13 | Cell 14 | Cell 15 |
< 62 kPa | < 19 % | Cell 16 | Cell 17 | Cell 18 | Cell 19 | Cell 20 | Cell 21 | Cell 22 | Cell 23 |
> 62 kPa | > 19 % | Cell 24 | Cell 25 | Cell 26 | Cell 27 | Cell 28 | Cell 29 | Cell 30 | Cell 31 |
Rolling Idle Cells | |||
---|---|---|---|
Cell 32 | Cell 33 | Cell 34 | Cell 35 |