# A Study on Development of Engine Fault Diagnostic System

Authors: Hwa-seon Kim; Seong-jin Jang; Jong-wook Jang
Journal: Mathematical Problems in Engineering
 (2015)

---

## Abstract

This study implemented a mobile diagnosing system that provides user-centered interfaces for more precisely estimating and diagnosing engine conditions through communications with the self-developed ECU only for industrial CRDI engine use. For the implemented system, a new protocol was designed and applied based on OBD-II standard to receive engine data values of the developed ECU. The designed protocol consists of a message structure to request data transmission from a smartphone to ECU and a response message structure for ECU to send data to a smartphone. It transmits 31 pieces of engine condition information simultaneously and sends the trouble diagnostic code. Because the diagnostic system enables real-time communication through modules, the engine condition information can be checked at any time. Thus, because when troubles take place on the engine, users can check them right away, quick response and resolution are possible, and stable system management can be expected.


---

## Body

## 1. Introduction

ECU in CRDI system enables an engine to operate under optimal conditions by analyzing sensor information. The program and data parts of this ECU can be changed only by the manufacturer. Therefore, with respect to a diagnostic device for engines, it is not easy to use or understand the content without an expert. In order to solve these problems, this study independently developed ECU dedicated for an industrial CRDI engine. This study suggested an appropriate protocol for the developed ECU with the application of OBD-II standard in order to collect data values of the developed ECU and developed user-centered diagnostic devices for a mobile by receiving an input of data through communication after application.The diagnostic devices provide user-centered diagnostic services and prevents accidents caused due to the engine malfunction by providing real-time communications with the use of wired system and Bluetooth module as a wireless system [1, 2] to transmit and receive engine fault diagnosis signals and sensor output signals and air pollution such as excessive gas exhaust and emission of incomplete combustion gas by controlling to operate an engine under the optimal conditions through the knocking diagnosis. Therefore, it is expected to contribute to eco industry which has received attention recently.


## 2. Development Engine Fault Diagnosis System

This study developed a mobile diagnostic system based on OBD-II for the industrial CRDI engine. Figure1 shows that this system is able to verify engine information and existence of malfunction therein by Bluetooth communication between the ECUs using OBD-II protocol.Figure 1
Diagnosis schematic diagram.With creation of the mobile application for engine diagnostic system, an administrator may confirm automotive information in real time without other devices. Drivers may always check the status of engine with smartphone which they always carry and may promptly respond to the malfunction in engine if any occurs.For this experiment, an automotive simulator with which communication test could be conducted in the same way as an actual car was developed and tested.This study developed a mobile diagnostic system based on OBD-II for the industrial CRDI engine. This system is able to verify engine information and existence of malfunction therein by Bluetooth communication between the ECUs using OBD-II protocol.With creation of the mobile application for engine diagnostic system, an administrator may confirm automotive information in real time without other devices. Drivers may always check the status of engine with smartphone which they always carry and may promptly respond to the malfunction in engine if any occurs.This study developed a mobile diagnostic system based on OBD-II for the industrial CRDI engine. This system is able to verify engine information and existence of malfunction therein by Bluetooth communication between the ECUs using OBD-II protocol.For this experiment, an automotive simulator with which communication test could be conducted in the same way as an actual car was developed and tested. Figure2 shows the OBD-II simulator which was personally manufactured. This consists of dongles for Bluetooth communication and OBD-II connector. Figure 3 is the screen which the developed ECU is equipped in the actual engine.Figure 2
OBD-II simulator.Figure 3
Apply the actual engine test.


### 2.1. Design of Bluetooth OBD-II Protocol Structure

The OBD-II is a standard that visualizes the information on main system of vehicles or on failure transmitted from sensors attached to a vehicle to ECU from a center console or external device by using the serial communication function [3].The OBD-II message format consists of 1-byte priority, target address, source address header, 7-byte data, and checksum and is basically used as a protocol for SAE-J1850 and ISO [4–6]. The CAN OBD message format consists of ID bits (11 or 29), DLC, 7 data bytes, and checksum (CRC-15 processing method) [7–9]. Table 1 shows OBD-II message format [10–12].Table 1
OBD-II message format.
Priority/type (1 byte)
Target address (1 byte)
Source address (1 byte)
Data byte (7 byte)
ChecksumThe developed OBD-II protocol has been manufactured based on the existing OBD-II standard. This differs from the existing OBD-II standard protocol structure. In case of the OBD-II protocol standard, automotive information of only one PID which was requested and can be read and responded. However, the developed industrial automotive OBD-II protocol read all the automotive information and transmits such information at once.


#### 2.1.1. OBD-II Protocol Structure for Obtaining Engine Status Information

The OBD-II message may be obtained from the automotive ECU by using automotive diagnostic tools. Figures4 and 5 are proposed OBD-II protocol for this study. As seen in Table 2, the message consists of header, data, and checksum and saves 12 bytes of data in total and uses HEX codes.Table 2
Proposed OBD-II protocol request message structure.
Command STX
Command ID
Info.
Opt 1
Opt 2
Checksum
Command ETXFigure 4
Flowchart of engine status information collection algorithm.Figure 5
Flowchart of diagnostic trouble code collection algorithm.In case of the proposed OBD-II protocol, it is designed to read the whole sensor information of vehicle by a response message at once when automotive information is requested to ECU. ECU provides 31 types of sensor information which actual service centers practically use. Table3 shows the proposed OBD-II protocol response message structure.Table 3
Proposed OBD-II protocol response message structure.
Data STX
Data 1
⋯
Data 31
Checksum
Data ETXTable4 is detailed code of OBD-II protocol status information request message.Table 4
Detailed code of OBD-II protocol status information request message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x14
0x31
0x34
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEC
0x45
0x43
Command ETX
0x03
0x03


#### 2.1.2. OBD-II Protocol Structure for Obtaining Engine Trouble Code

There is a function to inform drivers that there is malfunction in the electronic control engine by lighting up the malfunction indicator lamp (MIL) and to set diagnostic trouble code (DTC) according to the details of malfunction and to automatically record such codes in the RAM of ECU if there is malfunction in electronic control engine or in exhaust gas related parts [13, 14]. This function was originally to set the OBD in order to easily verify the location to be inspected if automotive malfunction occurs but, thanks to speedy development of computers, it came to play a role of conducting ready-test (monitoring of exhaust gas equipment) as well as making freeze frame (function to record DTC on ECU) when malfunction occurs in input and output of ECU (computer) [15–17].Therefore, a self-diagnosis function is the priority to be inspected when malfunction occurs in the car equipped with electronic control engine.If disconnection or short circuit occurs in a sensor or actuator, ECU makes a comparison with preset voltage value and judges existence of malfunction and memorizes the preset DTC on the RAM. Such DTC information is memorized on the RAM of ECU (computer), so unless power provided for ECU is cut, such information is not deleted.Table5 shows the structure of DTC response message of ECU and Table 6 shows detailed code of OBD-II protocol DTC response message.Table 5
ECU DTC response message structure.
Command STX
Command ID
MODE
DTC code
Checksum
Command ETXTable 6
Detailed code of OBD-II protocol DTC reponse message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x15
0x31
0x35
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEB
0x45
0x42
Command ETX
0x03
0x03


### 2.2. ECU Information Collection Algorithm

#### 2.2.1. Algorithm for Obtaining Engine Status Information

In order to collect the information of ECU, data are transmitted through the process as described in Figure4.First of all, if Bluetooth communication is connected, a data request message is transmitted to ECU. If the input request message is identical to 023134303030303030454303, ECU transmits OBD-II response message of 130 bytes to temporary buffers. All the data between STX and ETX are converted into HEX codes and sent. The calculation of checksum is of longitudinal redundancy check (LRC) and the lower byte of the sum of data between STX and ETX and checksum should be zero. If the response message is ACK(0x06) and the checksum value is 0x00, 31 automotive data of 130 bytes are finally saved.


#### 2.2.2. Algorithm for Obtaining Engine Diagnostic Code

In order to collect DTC of ECU, such codes are transmitted through the process as described in Figure5.Collection process of ECU diagnostic trouble codes is similar to the automotive information collection algorithm as explained above. First of all, if Bluetooth communication is connected, data request message is sent to ECU. If the input request message is identical to 023135303030303030454203, ECU transmits OBD-II response message of 14 bytes to temporary buffers. Then, if response message is ACK(0x06) and the checksum is 0x00, automotive information of 14 bytes becomes finally saved.


## 2.1. Design of Bluetooth OBD-II Protocol Structure

The OBD-II is a standard that visualizes the information on main system of vehicles or on failure transmitted from sensors attached to a vehicle to ECU from a center console or external device by using the serial communication function [3].The OBD-II message format consists of 1-byte priority, target address, source address header, 7-byte data, and checksum and is basically used as a protocol for SAE-J1850 and ISO [4–6]. The CAN OBD message format consists of ID bits (11 or 29), DLC, 7 data bytes, and checksum (CRC-15 processing method) [7–9]. Table 1 shows OBD-II message format [10–12].Table 1
OBD-II message format.
Priority/type (1 byte)
Target address (1 byte)
Source address (1 byte)
Data byte (7 byte)
ChecksumThe developed OBD-II protocol has been manufactured based on the existing OBD-II standard. This differs from the existing OBD-II standard protocol structure. In case of the OBD-II protocol standard, automotive information of only one PID which was requested and can be read and responded. However, the developed industrial automotive OBD-II protocol read all the automotive information and transmits such information at once.


### 2.1.1. OBD-II Protocol Structure for Obtaining Engine Status Information

The OBD-II message may be obtained from the automotive ECU by using automotive diagnostic tools. Figures4 and 5 are proposed OBD-II protocol for this study. As seen in Table 2, the message consists of header, data, and checksum and saves 12 bytes of data in total and uses HEX codes.Table 2
Proposed OBD-II protocol request message structure.
Command STX
Command ID
Info.
Opt 1
Opt 2
Checksum
Command ETXFigure 4
Flowchart of engine status information collection algorithm.Figure 5
Flowchart of diagnostic trouble code collection algorithm.In case of the proposed OBD-II protocol, it is designed to read the whole sensor information of vehicle by a response message at once when automotive information is requested to ECU. ECU provides 31 types of sensor information which actual service centers practically use. Table3 shows the proposed OBD-II protocol response message structure.Table 3
Proposed OBD-II protocol response message structure.
Data STX
Data 1
⋯
Data 31
Checksum
Data ETXTable4 is detailed code of OBD-II protocol status information request message.Table 4
Detailed code of OBD-II protocol status information request message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x14
0x31
0x34
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEC
0x45
0x43
Command ETX
0x03
0x03


### 2.1.2. OBD-II Protocol Structure for Obtaining Engine Trouble Code

There is a function to inform drivers that there is malfunction in the electronic control engine by lighting up the malfunction indicator lamp (MIL) and to set diagnostic trouble code (DTC) according to the details of malfunction and to automatically record such codes in the RAM of ECU if there is malfunction in electronic control engine or in exhaust gas related parts [13, 14]. This function was originally to set the OBD in order to easily verify the location to be inspected if automotive malfunction occurs but, thanks to speedy development of computers, it came to play a role of conducting ready-test (monitoring of exhaust gas equipment) as well as making freeze frame (function to record DTC on ECU) when malfunction occurs in input and output of ECU (computer) [15–17].Therefore, a self-diagnosis function is the priority to be inspected when malfunction occurs in the car equipped with electronic control engine.If disconnection or short circuit occurs in a sensor or actuator, ECU makes a comparison with preset voltage value and judges existence of malfunction and memorizes the preset DTC on the RAM. Such DTC information is memorized on the RAM of ECU (computer), so unless power provided for ECU is cut, such information is not deleted.Table5 shows the structure of DTC response message of ECU and Table 6 shows detailed code of OBD-II protocol DTC response message.Table 5
ECU DTC response message structure.
Command STX
Command ID
MODE
DTC code
Checksum
Command ETXTable 6
Detailed code of OBD-II protocol DTC reponse message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x15
0x31
0x35
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEB
0x45
0x42
Command ETX
0x03
0x03


## 2.1.1. OBD-II Protocol Structure for Obtaining Engine Status Information

The OBD-II message may be obtained from the automotive ECU by using automotive diagnostic tools. Figures4 and 5 are proposed OBD-II protocol for this study. As seen in Table 2, the message consists of header, data, and checksum and saves 12 bytes of data in total and uses HEX codes.Table 2
Proposed OBD-II protocol request message structure.
Command STX
Command ID
Info.
Opt 1
Opt 2
Checksum
Command ETXFigure 4
Flowchart of engine status information collection algorithm.Figure 5
Flowchart of diagnostic trouble code collection algorithm.In case of the proposed OBD-II protocol, it is designed to read the whole sensor information of vehicle by a response message at once when automotive information is requested to ECU. ECU provides 31 types of sensor information which actual service centers practically use. Table3 shows the proposed OBD-II protocol response message structure.Table 3
Proposed OBD-II protocol response message structure.
Data STX
Data 1
⋯
Data 31
Checksum
Data ETXTable4 is detailed code of OBD-II protocol status information request message.Table 4
Detailed code of OBD-II protocol status information request message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x14
0x31
0x34
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEC
0x45
0x43
Command ETX
0x03
0x03


## 2.1.2. OBD-II Protocol Structure for Obtaining Engine Trouble Code

There is a function to inform drivers that there is malfunction in the electronic control engine by lighting up the malfunction indicator lamp (MIL) and to set diagnostic trouble code (DTC) according to the details of malfunction and to automatically record such codes in the RAM of ECU if there is malfunction in electronic control engine or in exhaust gas related parts [13, 14]. This function was originally to set the OBD in order to easily verify the location to be inspected if automotive malfunction occurs but, thanks to speedy development of computers, it came to play a role of conducting ready-test (monitoring of exhaust gas equipment) as well as making freeze frame (function to record DTC on ECU) when malfunction occurs in input and output of ECU (computer) [15–17].Therefore, a self-diagnosis function is the priority to be inspected when malfunction occurs in the car equipped with electronic control engine.If disconnection or short circuit occurs in a sensor or actuator, ECU makes a comparison with preset voltage value and judges existence of malfunction and memorizes the preset DTC on the RAM. Such DTC information is memorized on the RAM of ECU (computer), so unless power provided for ECU is cut, such information is not deleted.Table5 shows the structure of DTC response message of ECU and Table 6 shows detailed code of OBD-II protocol DTC response message.Table 5
ECU DTC response message structure.
Command STX
Command ID
MODE
DTC code
Checksum
Command ETXTable 6
Detailed code of OBD-II protocol DTC reponse message.
Content
BYTE information
HEX code
Command STX
0x02
0x02
Command ID
0x15
0x31
0x35
Info.
0x00
0x30
0x30
Opt 1
0x00
0x30
0x30
Opt 2
0x00
0x30
0x30
Checksum
0xEB
0x45
0x42
Command ETX
0x03
0x03


## 2.2. ECU Information Collection Algorithm

### 2.2.1. Algorithm for Obtaining Engine Status Information

In order to collect the information of ECU, data are transmitted through the process as described in Figure4.First of all, if Bluetooth communication is connected, a data request message is transmitted to ECU. If the input request message is identical to 023134303030303030454303, ECU transmits OBD-II response message of 130 bytes to temporary buffers. All the data between STX and ETX are converted into HEX codes and sent. The calculation of checksum is of longitudinal redundancy check (LRC) and the lower byte of the sum of data between STX and ETX and checksum should be zero. If the response message is ACK(0x06) and the checksum value is 0x00, 31 automotive data of 130 bytes are finally saved.


### 2.2.2. Algorithm for Obtaining Engine Diagnostic Code

In order to collect DTC of ECU, such codes are transmitted through the process as described in Figure5.Collection process of ECU diagnostic trouble codes is similar to the automotive information collection algorithm as explained above. First of all, if Bluetooth communication is connected, data request message is sent to ECU. If the input request message is identical to 023135303030303030454203, ECU transmits OBD-II response message of 14 bytes to temporary buffers. Then, if response message is ACK(0x06) and the checksum is 0x00, automotive information of 14 bytes becomes finally saved.


## 2.2.1. Algorithm for Obtaining Engine Status Information

In order to collect the information of ECU, data are transmitted through the process as described in Figure4.First of all, if Bluetooth communication is connected, a data request message is transmitted to ECU. If the input request message is identical to 023134303030303030454303, ECU transmits OBD-II response message of 130 bytes to temporary buffers. All the data between STX and ETX are converted into HEX codes and sent. The calculation of checksum is of longitudinal redundancy check (LRC) and the lower byte of the sum of data between STX and ETX and checksum should be zero. If the response message is ACK(0x06) and the checksum value is 0x00, 31 automotive data of 130 bytes are finally saved.


## 2.2.2. Algorithm for Obtaining Engine Diagnostic Code

In order to collect DTC of ECU, such codes are transmitted through the process as described in Figure5.Collection process of ECU diagnostic trouble codes is similar to the automotive information collection algorithm as explained above. First of all, if Bluetooth communication is connected, data request message is sent to ECU. If the input request message is identical to 023135303030303030454203, ECU transmits OBD-II response message of 14 bytes to temporary buffers. Then, if response message is ACK(0x06) and the checksum is 0x00, automotive information of 14 bytes becomes finally saved.


## 3. Bluetooth Mobile Application Software for OBD-II Protocol Diagnosis

The following shows a screen used for communication between devices. If clicking the button named “Data Request” in order for application to request the connected device for automotive status information, the connected device transmits the status information to the application. Figure6 shows status information communication between devices. If phone orders ECU to read status information through communication protocol, ECU sends out a data response. In order to disconnect the communication between devices for a while, if clicking the “Stop” button, such intercommunication becomes suspended. If clicking the “Clear” button, the screen showing transmission of codes becomes wiped out. In order to reconnect the communication, if clicking the “Request” button, the communication between devices restarts. The communication between devices is made with HEX codes, so it is difficult for a user to verify the information instinctively. In order to make a user promptly understand the status information, such information was made through parsing process so that it may be shown on the screen as in Figure 7.Figure 6
Status information communication between devices.Figure 7
Status information.Figure8 is a screen showing DTC information transmission between devices. When malfunction occurs in ECU, the concerned trouble codes are searched and if the data which are identical to codes saved in DB exist, information related to such codes are notified. If DTC is found, such found DTC is shown on the screen as in Figure 9. If clicking DTC, the concerned DTC information is shown on the screen.Figure 8
DTC information transmission between devices.Figure 9
DTC information.


## 4. Conclusion

In this study, with OBD-II protocol, a smart phone engine diagnostic system using Bluetooth communication was developed. In this study, instead of handling information that can be controlled only by manufacturing companies, it was made possible to select necessary information only and take control at first hand.It is unnecessary to passively receive and deal with all the data including even needless one, so the administrator may handle information satisfying his needs only. Therefore, with this system it was made possible that information of engine condition may be identified in real time and that if engine has malfunction, by notifying diagnostic trouble codes and information, the user and administrator may promptly respond to such malfunction. In other words, the diagnostic devices provide user-centered diagnostic services and prevents accidents caused due to the engine malfunction by providing real-time communications with the use of wired system and Bluetooth module as a wireless system to transmit and receive engine fault diagnosis signals and sensor output signals and air pollution such as excessive exhaust gas emission and emission of incomplete combustion gas by controlling to operate an engine under the optimal conditions through the knocking diagnosis. Therefore, it is expected to contribute to eco industry which has received attention recently.



---

*Source: 271374-2015-07-27.xml*