AT/SST/CVT MUT communication
#16
Evolved Member
Thread Starter
Join Date: Mar 2008
Location: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Posts: 730
Likes: 0
Received 3 Likes
on
2 Posts
The MUT requests above are actual processor input pin states, so unless the wire is physically connected, the flags will not be set. The question is if they propagate to something common for both AT/MT ECU, frankly I have not had a look yet.
#18
Evolved Member
Thread Starter
Join Date: Mar 2008
Location: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Posts: 730
Likes: 0
Received 3 Likes
on
2 Posts
I have found the Init byte for AT MUT, credit goes to Ceddy for idea of sending all 256 values at 5 baud.)
The init code is 0x3, so incredibly simple
Then switching to 15625 and sending AT MUT requests.
I believe my quest is now finished, until some interest is shown (nads, mattjin still around?) and Hamish will incorporate it to EvoScan :P
@Hamish, here is a class that you may find useful (C#)
and code example
The init code is 0x3, so incredibly simple
Then switching to 15625 and sending AT MUT requests.
I believe my quest is now finished, until some interest is shown (nads, mattjin still around?) and Hamish will incorporate it to EvoScan :P
@Hamish, here is a class that you may find useful (C#)
Code:
public class FiveBaudRateSender { private SerialPort serialPort { get; set; } public FiveBaudRateSender(SerialPort aPort) { serialPort = aPort; } public void SendByte(byte aByte) { SendStartBit(); SendBits(aByte); SendStopBit(); SendPause(); } private void SendPause() { serialPort.BreakState = false; Thread.Sleep(50); } private void SendStopBit() { byte[] aBytes = new byte[1] { 1 }; BitArray aBA = new BitArray( aBytes ); Transmit( aBA, 1 ); } private void SendStartBit() { byte[] aBytes = new byte[1] { 0 }; BitArray aBA = new BitArray( aBytes ); Transmit( aBA, 1 ); } private void SendBits(byte aByte) { byte[] aBytes = new byte[1] { aByte }; BitArray aBA = new BitArray( aBytes ); Transmit( aBA, 8 ); } private void Transmit(BitArray aList, int aWidth) { for ( int i = 0; i <= aWidth-1; i++) { serialPort.BreakState=!aList[i]; Thread.Sleep(200); } } }
Code:
if(serialPort.IsOpen) { FiveBaudRateSender aSender = new FiveBaudRateSender(serialPort); aSender.SendByte((byte)0x3); }
#19
Evolved Member
iTrader: (2)
Code:
class OBDInit: BAUD = 10500 INITBYTE = 0x33 INITBAUD = 5 def __init__(self, fd): self.fd = fd # s/b serial.Serial() self.fd.setBaudRate(self.BAUD) self.fd.setByteSize(8) self.fd.setParity('N') self.fd.setStopbits(1) self.fd.flush() bits = self.INITBYTE initdelay = 1.0/self.INITBAUD for _ in range(9): # 9 gives implicit stop bit w/shifting. if bits & 1: self.fd.setRTS(True) self.fd.setDTR(True) else: self.fd.setDTR(False) self.fd.setRTS(False) bits >>= 1 time.sleep(initdelay) [...snip...] class MUTInit(OBDInit): BAUD = 15625 INITBYTE = 0x01 INITBAUD = 5
#20
Evolved Member
Thread Starter
Join Date: Mar 2008
Location: Lattitude 48.38°, Longitude 17.58°, Altitude 146m = Slovakia, for common dude
Posts: 730
Likes: 0
Received 3 Likes
on
2 Posts
Yes the same thing, but you are obviously forgetting about the start bit and pause
Last edited by acamus; Dec 1, 2009 at 10:39 PM.
Thread
Thread Starter
Forum
Replies
Last Post
5baud, automatic transmission, baud, bitbang, ecu, evo, identification, init, iso, j1850, mitsubishi, mut, setting, sst, tables, transmission