This project is about an On-board diagnostic tool for ECU car made by Mitsubishi around years (90-96). I'm using Arduino as the main devices for the medium of communication. The main focus of this project is to display all the data received on the dashboard of the car by using the LCD display. Beside that, i also have a plan to display it using a mobile phone or tablet.
Protocol
Honestly, It took me a long time to get a proper information regarding communication / protocol between the ECU. This is caused by several factors including the information sought is limited, the lack of equipment and in addition there are also some people do not tend to share information due to commercial factors.
Before the analysis described below is done, I have provided some devices to get more detail on how MMCd Logger communicate with the ECU. Later on, all the information will use as input to develop a logger with Arduino. The devices are:
- ALDL to RS232 adapter as communication tool between ECU and Palm. Download full schematic diagram here. An ALDL voltage describe by Wikipedia as "The signaling of ALDL is very similar to the RS-232 serial data standard; differing in the voltages used to denote logical one (usually 0VDC) and logical zero (either +5VDC or +12VDC), and that unlike RS232, both transmit and receive functions are on the same conductor."
- Palm IIIc
- 8 Channel Logic Analyzer
- MMCd Logger version 1.8
- Logic Analyzer Software
Based on logical analysis software, I found that the communication between the ECU and MMCD Logger is based on; for each 1 byte command was sent, the ECU will respond with
- Serial communications rate is 1920 baud, 8 bits, 1 stop bit, no parity, TTL. (On MMCd web site stated it communicate at 1953 baud rate but both have replies.)
- Communication signal is "Inverted"
- Communication referral as 1 byte sent and
2 bytes1 bytes receive
Table of Mitsubishi ECU Command
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sensor | Address | Data Min | Data Max | Function | Sample | |
============================================================================================================================= | |
Accel Enrichment 0x1D 0x01 == 0% 0xFF == 100% y = 100(x/255) % | |
Coolant Temp 0x07 0x01 == 307deg F 0xFF == -62deg F y = -1.45x + 308 deg F | |
Engine Speed 0x21 0x01 == 31 0xFF == 7969 y = 31.25x rpm | |
Fuel Trim High 0x0E 0x01 == 1% 0xFF == 199% y = .78x % | |
Fuel Trim Low 0x0C 0x01 == 1% 0xFF == 199% y = .78x % | |
Fuel Trim Middle 0x0D 0x01 == 1% 0xFF == 199% y = .78x % | |
Injector Pulse Width 0x29 0x01 == .256ms 0xFF == 65.3ms y = .256x ms | |
Oxygen Feedback Trim 0x0F 0x01 == 1% 0xFF == 199% y = .78x % | |
Oxygen Sensor 0x13 0x01 == .02v 0xFF == 4.98v y = .0195x v | |
Throttle Position 0x17 0x01 == 0% 0xFF == 100% y = 100(x/255) % | |
Air Flow Hz 0x1A 0x01 == 6Hz 0xFF == 1606Hz y = 6.29x Hz | |
Air Temperature 0x3A 0x01 == 356deg F 0xFF == -74deg F y = -1.69x + 358 deg F | |
Air Volume 0x2C 0x01 == 1 0xFF == 255 y = x | |
Barometer 0x15 0x01 == 0bar 0xFF == 1.24bar y = .00486x bar | |
ISC Steps 0x16 0x01 == 1 0xFF == 255 y = x | |
Knock Sum 0x26 0x01 == 1 0xFF == 255 y = x | |
Timing Advance 0x06 0x01 == -9 deg 0xFF == 245 deg y = x - 10 deg | |
Battery 0x14 0x01 == 0.1v 0xFF == 18.7v y = .0733x v | |
EGR Temperature 0x12 0x01 == 595deg F 0xFF == -94deg F y = -2.7x + 597.7 deg F | |
TDC 0x02 0x04 (inverted) | |
Power Steering 0x02 0x08 (inverted) | |
AC Switch 0x02 0x10 (inverted) | |
Park/Neutral 0x02 0x20 (inverted) | |
Idle Switch 0x02 0x80 (inverted) | |
AC Clutch 0x00 0x20 (inverted) |
Notes:
Steve from dsmtuners.com have made a correction on me about the protocol with the ecu. The 2 bytes data that i have mention before is actually an echo of the signal because of using a multiplexed data line.
Reference
- MMCd Logger
- ALDL - RS232 schematic diagram
- ALDL - Wikipedia
Tumpang tanya Tuan, waja lama (bukan campro) guna obd1 atau obd2 ?
ReplyDelete
ReplyDeletehi dear its very first-class and very helpful submit for those who are new and thinking to begin a weblog site.Your posts are very helpful and creative mitsubishi