MUT Protocol

From EvoEcu
Jump to: navigation, search

MUT

Quoted from http://www.myrollingroad.com/showthread.php?t=60 CLaNZeR@MyRollingRoad]:

Okay the Mut Protocol Init is alot like the ISO9141-2 Init.
We will be using 1 of the Pins from the OBD-II Connector for communicating.
Pin7 K line
If you take a Pin HIGH this means you are applying 12Volts to it.
If you take the Pin LOW you are applying 0V
The first thing that you need to do is to initialise the ECU so it knows you want to communicate.
This is done with the following routine:
'Slow Init
Take K Line High
Pause 300ms
'Send 0x01 (00000001) at rate of 5 baud (LSB) with a Start Bit and a Stop bit
'Send Startbit
Set K line low (0)
Pause 200ms
'Now to send out 0x01
'Send out bit0
Set K line high (1)
pause 200ms
'Send out bit1
Set K line low (0)
pause 200ms
'Send out bit2
Set K line low (0)
pause 200ms
'Send out bit3
Set K line low (0)
pause 200ms
'Send out bit4
Set K line low (0)
pause 200ms
'Send out bit5
Set K line low (0)
pause 200ms
'Send out bit6
Set K line low (0)
pause 200ms
'Send out bit7
Set K line low (0)
pause 200ms
'Send Stopbit
Set K line high (1)
Pause 200ms
Switch to 15625 baud
Receive C0 55 EF 85
send FE
Receive E4 ' First Byte of ECU ID
Send FF
Receive B3 ' Second byte of ECU ID
Send FE
Receive E4 ' First Byte of ECU ID
Send FF
Receive B3 ' Second Byte of ECU ID
Send FD
Receive 20
Send FD
Receive 20
Send FD
Receive 20
The ECU is now initialised and you can start sending requests depending on the info you want back.
For example if you wanted to know the RPM of the engine.
Send 21 and it will reply with a answer, then simply do a calculation on that result to get the true answer.
The calculation for RPM is 31.25*x
Will sort out a list of know Request ID's and their calculations next.

Followup post:

I have now been informed that after you do the 5 baud Init and then change Baud rate to Receive C0 55 EF 85, you can start sending request bytes straight away.

MUT over OBD-II (Hybrid)

See acamus' post about using ELM-style loggers (in his case, a bluetooth logger:

Here is little how to
1. Open COM port of BT key, e.g. COM6 via HyperTerminal or write simple application
2. Set baudrate to 19200
3. Send ATSP0<CR><LF>
4. Wait for reply OK - (Bus Init..... OK)
5. Send A0<MUT ID><CR><LF> e.g. A032
6. Parse reply E0 <value> e.g. E0 80, so value is 0x80
7. Use formula to get the scaled value