Arduino-Based Automotive Diagnostic Tester
Arduino-Based Automotive Diagnostic Tester
2478/sbeef-2024-0006
Abstract. The work presented introduces a system that operational principles align with the 'IPO - Introduction
encompasses general notions about the dashboard computer Processing Cutting' principle [1].
and Arduino platform, used to create an automotive
diagnostic tool through the OBDII port. This involves To capture values, the ECU relies on sensors measuring
establishing a connection between the Arduino platform, a
Bluetooth module, and a Bluetooth adapter that
variables such as speed, pressure, temperature, etc. These
communicates with the Engine Control Unit (ECU), values are then either calculated or compared with stored
transmitting information displayed on an LCD screen. To values within the electronic control unit. If the measured
highlight the system's performance, a comparison of results values deviate, the command centre adjusts them through
was conducted with an authorized automotive tester from an a physical process, ensuring synchronization with the
auto service, using two different vehicle models. values stored in the ECU (refer to Figure 2).
31
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
32
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
Some functions of the Launch X431 V4.0 automotive 3. SIMULATION AND IMPLEMENTATION OF
tester include: THE PROPOSED SYSTEM
• Brake reset.
• Service/oil light reset. 3.1 Simulation
• Steering angle.
• TPMS reset. The Proteus Design Suite is a software tool suite
• DPF regeneration. primarily used for automating electronic design. The
• Adaptive Front Light System (AFS) reset. software is mainly employed by engineers and
technicians in electronic design to create electronic
• Crankshaft position finding.
schematics used in the fabrication of printed circuit
• Automatic gearbox adaptation.
boards. More recently, a dedicated IDE for simulation
• Immobilizer.
was added in 2011, and MCAD import/export was
• Injector coding. included in 2015. High-speed design support was added
• Throttle reset. in 2017. Product feature releases are typically biannual,
• Suspension height adjustment, etc. while maintenance-based service packs are released as
needed [10].
Diagnostic Trouble Codes (DTCs) are clearly displayed
with a comprehensive description, and with a single The proposed circuit designed for implementation and
click, error code information can be shown in various analysis is depicted in Figure 8.
alternate languages.
33
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
We need to program the Arduino platform with this code Case 2 – If the temperature sensor detects over 90
by selecting and uploading the file with the extension degrees Celsius, the oil pressure sensor detects over 90
.ino.hex (see Figure 10): pounds per square inch (psi), and the water level sensor
indicates that the water level is 'Empty,' then the LCD
will display 'High Oil Pressure,' 'High Water
Temperature,' 'Water Level: Empty.' LEDs D1 (for the
temperature sensor), D2 (for the oil pressure sensor), and
D3 (for the water level sensor) will be turned on, as all
sensors detect abnormal parameters. This is evident in
Figures 13 and 14:
Figure 11. System simulation – case 1 Figure 14. System simulation – case 2
In this case, both the water level sensor and the water
temperature sensor could have the same issue, as the
water tank being empty would cause the water
temperature to rise. This problem can be addressed by
filling the water tank and checking the pipes and hoses to
prevent future liquid (water) losses.
34
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
- Poor-quality oil (Another reason for inadequate oil Case 1 – testing with the implemented system. System
pressure could be the use of very low-quality initialization and the cars are with the engine off (data
engine oil). reading in cold conditions with the ignition on, see
- Contaminated oil filter (The oil filter is crucial, Figures 17-20):
ensuring that clean oil reaches the engine. Over
time, the oil filter can become dirty, with dust
depositing on it, causing a decrease in the quality of
oil reaching the engine. Therefore, the issue could
be related to the oil filter).
3.2 Arduino
Communication between the Arduino platform and the For each of the codes above, 01 is the code for accessing
vehicle was established through the ELM327 connected real-time parameters. Then we have 05, 04, 0B, and 0C,
to the OBD II interface (see Figure 16). which are IDs, as each requested parameter also needs an
ID or PID (Parameter ID), to know where to retrieve the
information. For example,
35
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
64H = 100(10)
100 – 40 = 60 0C
For the code 0104, the response is 41 04 7F. The Figure 19. Data acquisitions from a Toyota car
response consists of two bytes identifying it as a
response to request 01 (real-time parameters), PID 04
(41 04), and an additional byte with the value 'Engine
load.' To obtain the actual value, we convert the
hexadecimal number to decimal, divide it by 255, and
multiply it by 100%:
7FH = 127(10)
(127 / 255) * 100 % = 0.498 * 100 % = 49.8%
0FH = 15(10)
A0H = 160(10)
((15 * 256) + 160 ) / 4 = (3840 + 160) / 4 = 4000 / 4 =
1000 rpm Figure 21. Values for Peugeot
36
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
37
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
38
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
39
Scientific Bulletin of the Electrical Engineering Faculty – Year 24 No.1 (50) ISSN 2286-2455
5. REFERENCES
40