DSM/On-Board Diagnostics: Difference between revisions
Jump to navigation
Jump to search
(6 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
* https://www.dsmtuners.com/threads/on-board-diagnostic-between-mitsubishi-ecu-using-arduino.464711/ | * https://www.dsmtuners.com/threads/on-board-diagnostic-between-mitsubishi-ecu-using-arduino.464711/ | ||
* http://mitsuduino.blogspot.com/?m=1 | * http://mitsuduino.blogspot.com/?m=1 | ||
* https://gist.github.com/anonymous/5696499/forks | |||
* https://gist.github.com/rizal-azalli/b5b7af16187f2f4d731f#file-obdcodetablevalue | |||
= | {| class="wikitable" | ||
!|Sensor | |||
!|Address | |||
!|Data Min | |||
!|Data Max | |||
!|Function | |||
!|Unit | |||
|- | |||
|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) | |||
|} | |||
==Downloads== | {| class="wikitable" | ||
!|Byte from | |||
!|Byte to | |||
!|Description | |||
|- | |||
|$00 | |||
|$3d | |||
|Regular queries, return the value of the | |||
variables showed in obdTable located below, | |||
see each variable definition... First value in table | |||
correspond to obd query code $00, increases by 1 | |||
for each table value | |||
|- | |||
|$3e | |||
|$3f | |||
|Converted to $3d, see that obd code | |||
|- | |||
|$40 | |||
|$c9 | |||
|Returns what is stored in that ram address | |||
|- | |||
|$ca | |||
|$ca | |||
|Erase all fault codes and returns $00 if | |||
engine not rotating. If engine is rotating, all | |||
actuators/injector commands are reset and $ff | |||
is returned. | |||
|- | |||
|$cb | |||
|$f0 | |||
|Returns what is stored in that ram address | |||
|- | |||
|$f1 | |||
|$fc | |||
|Injector/actuators commands, returns $ff if successfull | |||
|- | |||
!colspan="2"|Byte | |||
!|Description | |||
|- | |||
|colspan="2"|$f1 | |||
|Activate boost control solenoid | |||
|- | |||
|colspan="2"|$f2 | |||
|Unused in code | |||
|- | |||
|colspan="2"|$f3 | |||
|Activate egr solenoid | |||
|- | |||
|colspan="2"|$f4 | |||
|Activate fuel pressure solenoid | |||
|- | |||
|colspan="2"|$f5 | |||
|Activate purge solenoid | |||
|- | |||
|colspan="2"|$f6 | |||
|Turn on fuel pump | |||
|- | |||
|colspan="2"|$f7 | |||
|Disable injector #6 (inoperative in code) | |||
|- | |||
|colspan="2"|$f8 | |||
|Disable injector #5 (inoperative in code) | |||
|- | |||
|colspan="2"|$f9 | |||
|Disable injector #4 | |||
|- | |||
|colspan="2"|$fa | |||
|Disable injector #3 | |||
|- | |||
|colspan="2"|$fb | |||
|Disable injector #2 | |||
|- | |||
|colspan="2"|$fc | |||
|Disable injector #1 | |||
|- | |||
!|Byte from | |||
!|Byte to | |||
!|Description | |||
|- | |||
|$f1 | |||
|$ff | |||
|Special queries | |||
|- | |||
!colspan="2"|Byte | |||
!|Description | |||
|- | |||
|colspan="2"|$fd | |||
|Serial link test, returns $b5 (E931) or $b7 (E932) | |||
|- | |||
|colspan="2"|$fe | |||
|resistor strapping low word from t_strap3 | |||
|- | |||
|colspan="2"|$ff | |||
|resistor strapping high word from t_strap3 | |||
|} | |||
=Scantool= | |||
* http://lcdbc.xp3.biz/Scantool.pdf | |||
=MUT= | |||
* https://evoecu.logic.net/wiki/MUT_Protocol | |||
==MUT-III== | |||
===Downloads=== | |||
* http://blog.obdii365.com/2019/10/04/mitsubishi-mut-iii-software-download-install-review/ | * http://blog.obdii365.com/2019/10/04/mitsubishi-mut-iii-software-download-install-review/ |
Latest revision as of 21:55, 20 September 2021
OBD/OBDI/OBD1/ALDL
ALDL Adapter
Mitsuduino
- https://www.dsmtuners.com/threads/on-board-diagnostic-between-mitsubishi-ecu-using-arduino.464711/
- http://mitsuduino.blogspot.com/?m=1
- https://gist.github.com/anonymous/5696499/forks
- https://gist.github.com/rizal-azalli/b5b7af16187f2f4d731f#file-obdcodetablevalue
Sensor | Address | Data Min | Data Max | Function | Unit |
---|---|---|---|---|---|
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) |
Byte from | Byte to | Description |
---|---|---|
$00 | $3d | Regular queries, return the value of the
variables showed in obdTable located below, see each variable definition... First value in table correspond to obd query code $00, increases by 1 for each table value |
$3e | $3f | Converted to $3d, see that obd code |
$40 | $c9 | Returns what is stored in that ram address |
$ca | $ca | Erase all fault codes and returns $00 if
engine not rotating. If engine is rotating, all actuators/injector commands are reset and $ff is returned. |
$cb | $f0 | Returns what is stored in that ram address |
$f1 | $fc | Injector/actuators commands, returns $ff if successfull |
Byte | Description | |
$f1 | Activate boost control solenoid | |
$f2 | Unused in code | |
$f3 | Activate egr solenoid | |
$f4 | Activate fuel pressure solenoid | |
$f5 | Activate purge solenoid | |
$f6 | Turn on fuel pump | |
$f7 | Disable injector #6 (inoperative in code) | |
$f8 | Disable injector #5 (inoperative in code) | |
$f9 | Disable injector #4 | |
$fa | Disable injector #3 | |
$fb | Disable injector #2 | |
$fc | Disable injector #1 | |
Byte from | Byte to | Description |
$f1 | $ff | Special queries |
Byte | Description | |
$fd | Serial link test, returns $b5 (E931) or $b7 (E932) | |
$fe | resistor strapping low word from t_strap3 | |
$ff | resistor strapping high word from t_strap3 |