CAN Bus messages: Difference between revisions

From OpenGK
m (enable table of contents)
m (Dante383 moved page SIMK43 CAN Bus to CAN Bus messages: confirmed that simk41 format matches)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div style="float:right;">__TOC__</div>
CAN Bus on Hyundai Tiburon operates at a speed of 500kb/s and so does the SIMK43 ECU.  
CAN Bus on Hyundai Tiburon operates at a speed of 500kb/s and so does the SIMK43 ECU.  


SIMK43 reads the following messages for operation, if the corresponding module is present in car:
SIMK43 reads the following messages for operation, if the corresponding module is present in car:
*[[CAN_Bus_ID_0x153_ASC1|ARBID 0x153 ASC1 Traction Control]]
*[[CAN Bus ID 0x153 ASC1|ARBID 0x153 ASC1 Traction Control]]
 


SIMK43 sends the following messages:
SIMK43 sends the following messages:
*[[SIMK43_CAN_Bus#DME4_0x545|ARBID 0x545 DME4 Engine Control Unit]]
*[[SIMK43 CAN Bus#DME4 0x545|ARBID 0x545 DME4 Engine Control Unit]]
*[[SIMK43_CAN_Bus#DME2_0x329|ARBID 0x329 DME2 Engine Control Unit]]
*[[SIMK43 CAN Bus#DME2 0x329|ARBID 0x329 DME2 Engine Control Unit]]
*[[SIMK43_CAN_Bus#DME1_0x316|ARBID 0x316 DME1 Engine Control Unit]]
*[[SIMK43 CAN Bus#DME1 0x316|ARBID 0x316 DME1 Engine Control Unit]]


In addition to that, there are messages that are not used by the ECU, but still present on the CAN Bus:
In addition to that, there are messages that are not used by the ECU, but still present on the CAN Bus:
*[[CAN_Bus_ID_0x1F0_ASC2|ARBID 0x1F0 ASC2 Traction Control]]
*[[CAN Bus ID 0x1F0 ASC2|ARBID 0x1F0 ASC2 Traction Control]]
 
[https://www.csselectronics.com/pages/can-dbc-file-database-intro DBC file] of Tiburon's CAN Bus: [https://opengk.org/files/Users/dante383/Tiburon_SIMK43_ESP.dbc Tiburon_SIMK43_ESP.dbc] [https://drive.google.com/file/d/1RxaEK9b12DtS-l0WUpPHeZ6p1i82ay5G/view?usp=sharing <nowiki>[mirror]</nowiki>]
[[File:SavvyCAN candump with DBC.png|none|thumb|1048x1048px|Example of a candump log imported into SavvyCAN with DBC file loaded]]
 
==Connection points==
There is only one CAN bus found in the Tiburons, there are no gateways present.
 
CAN Bus is exposed on the standard pins in the [[Data link connector (OBD2)|OBD2 connector]] as in the following image (vehicle side):
 
[[File:Obd2 canbus pinout.png|center|thumb|Tiburon's OBD2 plug pinout, limited to power and canbus ]]
Depending on vehicle's production date and trim, there are between 1 to 4 modules on the bus.
{| class="wikitable"
|+ Modules connected to the CAN Bus
! rowspan="2" |Module name
! colspan="2" |Connector name
! rowspan="2" |CAN high pin
! rowspan="2" |CAN low pin
! colspan="2" |CAN ID
|-
!2.0
!2.7
!SIMK41
!SIMK43
|-
|[[5WY ECM Identification|ECM]]
|[[Siemens 5WY 2 Connector Pinout|2.0 pinout]]
|[[Siemens 5WY 5 Connector Pinout|2.7 pinout]]
|see pinout
|see pinout
|
|[[SIMK43 CAN Bus|0x545, 0x329, 0x316]]
|-
|TCM
|[[Siemens 5WY 2 Connector Pinout|2.0 pinout]]
|[[Siemens 5WY 5 Connector Pinout|2.7 pinout]]
|see pinout
|see pinout
|
|
|-
| Multigauge unit (if equipped)
| colspan="2" |M42
|7
|1
|
|
|-
|ABS module (if equipped)
| colspan="2" |E37
|11
|10
|
|[[CAN Bus ID 0x153 ASC1|0x153]]
|}


[https://www.csselectronics.com/pages/can-dbc-file-database-intro DBC file] of Tiburon's CAN Bus: [https://drive.google.com/file/d/1eEvwj7wSSmPJuXeJSGywkkAyPGosEbzX/view?usp=sharing Tiburon_SIMK43_ESP.dbc]
==Messages==
====DME1 0x316====
 
===DME1 0x316===
Refresh Rate: 10ms
Refresh Rate: 10ms


*'''Byte 0 -''' unknown
*'''Byte 0 -''' bitfield
*'''Byte 1 - TQI_TQR_CAN'''
**Bit 0 - SWI_IGK_CAN: Terminal 15 –KEY ON
*:Indexed Engine Torque in % of C_TQ_STND  (including ASR/MSR/ETCU/LIM/AMT/GEAR intervention)
**Bit 1 - F_N_ENG_CAN: Error – engine speed signal
**Bit 2 - ACK_TCS_CAN: Acknowledement TCS
**Bit 3 - PUC_STAT: Engine in fuel cut off
**Bit 4 - TQ_COR_STAT_CAN: Status, torque intervention
**Bit 6 - RLY_AC_CAN: Activation, air conditioner compressor relay
**Bit 7 - F_SUB_TQI_CAN: Activation, air conditioner compressor relay
* '''Byte 1 - TQI_TQR_CAN'''  
*: Indexed Engine Torque in % of C_TQ_STND  (including ASR/MSR/ETCU/LIM/AMT/GEAR intervention)
*:Calculation = HEX * 0.39
*:Calculation = HEX * 0.39
*'''Byte 2 - N_ENG [LSB]'''
*'''Byte 2 - N_ENG [LSB]'''
Line 26: Line 88:
*:Engine Speed in rpm
*:Engine Speed in rpm
*:Calculation = ((HEX[MSB] * 256) + HEX[LSB]) * 0.15625
*:Calculation = ((HEX[MSB] * 256) + HEX[LSB]) * 0.15625
*'''Byte 4 - TQI_CAN'''
*'''Byte 4 - TQI_CAN'''  
*:Indicated Engine Torque in % of C_TQ_STND (based on PVS, N, AMP, TIA ,TCO, IGA, PUC so ip_tqi_pvs__n__pvs)
*:Indicated Engine Torque in % of C_TQ_STND (based on PVS, N, AMP, TIA ,TCO, IGA, PUC so ip_tqi_pvs__n__pvs)
*:Calculation = HEX * 0.39
*:Calculation = HEX * 0.39
Line 36: Line 98:
**'''Bit 0 - ERR_AMT_CAN'''
**'''Bit 0 - ERR_AMT_CAN'''
**'''Bit 1 - ERR_AMT_CAN'''
**'''Bit 1 - ERR_AMT_CAN'''
*'''Byte 7 - TQI_MAF_CAN'''
*'''Byte 7 - TQI_MAF_CAN'''  
*:Needs verification
*:Needs verification
*:Theorethical Engine Torque in % of C_TQ_STND after charge intervention (based on MAF & IGA so ip_tqi_maf__n__maf)
*:Theorethical Engine Torque in % of C_TQ_STND after charge intervention (based on MAF & IGA so ip_tqi_maf__n__maf)
*:Calculation = HEX * 0.39
*: Calculation = HEX * 0.39
Example messages: <syntaxhighlight>
05 0B B8 0C 0B 0A 00 77
 
05 0C B8 27 0C 0B 46 80
 
0D 00 84 27 00 0B 31 82
</syntaxhighlight>


====DME2 0x329====
===DME2 0x329 ===
Refresh Rate: 10ms
Refresh Rate: 10ms


*'''Byte 0''' - unknown
* '''Byte 0''' - Bitfield
*:Seems to always be one of 4 values: 0x11, 0x4F, 0x8E, 0xD9
*:* Bit 0 - MUL_INFO: Multiplexed information - CAN Version (CAN_VERS_CAN), - TCU configuration (CONF_TCU_CAN) - OBD freeze frame (OBD_FRF_ACK_CAN) - Torque scaling factor (TQ_STND_CAN) (6 bits long)
*:* Bit 6 - MUL_CODE: Identification of MUL_INFO
*'''Byte 1 - TEMP_ENG'''
*'''Byte 1 - TEMP_ENG'''
*:Engine (Coolant) Temperature in °C
*: Engine (Coolant) Temperature in °C
*:Calculation = (HEX * 0.75) - 48°C
*:Calculation = (HEX * 0.75) - 48°C
*:Init: 0xFF
*:Init: 0xFF
Line 59: Line 129:
*:Max = 0xFE (1106hPa)
*:Max = 0xFE (1106hPa)
*:Error = 0xFF
*:Error = 0xFF
*'''Byte 3''' - unknown
*'''Byte 3''' '''- VB_OFF_ACT_CAN'''
*:Seems to always be 0x10
*:Detection of battery disconnection (0x10 - battery is connected)
*'''Byte 4''' - unknown
*'''Byte 4''' '''- ACK_ES_CAN'''
*:Seems to always be 0x00
*:Acknowledgement „engine stopped“
*'''Byte 5 - TPS_CAN'''
*'''Byte 5 - TPS_CAN'''
*:Accelerator Pedal Position in % of PVS_MAX
*:Accelerator Pedal Position in % of PVS_MAX
Line 71: Line 141:
*:PVS Error = 0xFF
*:PVS Error = 0xFF
*:Values around 10-15% are to be expected for an un-touched pedal
*:Values around 10-15% are to be expected for an un-touched pedal
*'''Byte 6''' - unknown
*'''Byte 6''' '''- ENG_CHR_CAN'''
*:Seems to always be 0xFF
*:Engine Characteristic – Kind of fuel, ETS. 0xFF - gasoline
*'''Byte 7''' - Unused
*'''Byte 7''' - Unused
Example messages:<syntaxhighlight>
4F B2 82 10 00 20 FF


====DME4 0x545====
4F B0 82 10 00 32 FF
 
4F B1 84 10 00 51 FF
</syntaxhighlight>
 
===DME4 0x545===
Refresh Rate: 10ms
Refresh Rate: 10ms


*'''Byte 0''' - unknown
*'''Byte 0''' - Bitfield
*:Seems to have a range of 0xC6 to 0xFE
*:* Bit 0 - IM_AUTHEN_CAN: Authetication "immobilzer" (0/1), 1 bit long
*:* Bit 1 - L_MIL_CAN: Lamp "check engine for OBD" (0/1), 1 bit long
*:* Bit 2 - IM_STAT_CAN: Status "immobilizer" (0/1), 1 bit long
*:* Bit 3 - AMP_CAN: Atmospheric Pressure [mmHg]. 5 bytes long
*'''Byte 1 - FCO[LSB]'''
*'''Byte 1 - FCO[LSB]'''
*'''Byte 2 - FCO[MSB]'''
*'''Byte 2 - FCO[MSB]'''
*:Fuel Consumption. To be verified but there is a correlation between it, rpms and the accelerator pedal position
*:Fuel Consumption in microliters (μl). Formula: HEX * 0,128
*'''Byte 3''' - unknown
*'''Byte 3''' - VB
*:Seems to have a range of 0x7B to 0x8D
*:Battery voltage
*'''Byte 4''' - Unused
*'''Byte 4''' - Unused
*'''Byte 5''' - Unused
*'''Byte 5''' - Unused
*'''Byte 6''' - Unused
*'''Byte 6''' - Unused
*'''Byte 7''' - Unused
*'''Byte 7''' - Unused
Example messages:<syntaxhighlight>
F6 61 01 89
EE FA 02 89
EE 8B 02 88
</syntaxhighlight>
==Example logs==
Here are some example canbus dumps. They were recorded on a 2008 Tiburon, 2.0 (cvvt) with manual transmission, fitted with ABS and ESP.
https://drive.google.com/drive/folders/1j9GmhrkH-Lm7k_E4v4JQ_gHB_lFeJ5_U?usp=sharing
'''2008_2.0_normal_city.log''' - This one features "eco-driving" around the city, without exceeding 40mph.
'''2008_2.0_normal_highway.log''' - eco-driving around the highway, without exceeding 80mph.
'''2008_2.0_spirited_highway.log''' - changing gears near the limiter until getting to the 110mph mark and mostly staying there for the whole duration of the log.
'''2008_2.0_spirited_city.log''' - dynamic stroll through the city. This is the only log during which ESP intervention happened - it's reflected in [[CAN Bus ID 0x153 ASC1|ESP's module CAN messages]].
Rest of the logs should have self-explanatory names.
__FORCETOC__
__FORCETOC__

Latest revision as of 11:04, 13 May 2024

CAN Bus on Hyundai Tiburon operates at a speed of 500kb/s and so does the SIMK43 ECU.

SIMK43 reads the following messages for operation, if the corresponding module is present in car:

SIMK43 sends the following messages:

In addition to that, there are messages that are not used by the ECU, but still present on the CAN Bus:

DBC file of Tiburon's CAN Bus: Tiburon_SIMK43_ESP.dbc [mirror]

Example of a candump log imported into SavvyCAN with DBC file loaded

Connection points

There is only one CAN bus found in the Tiburons, there are no gateways present.

CAN Bus is exposed on the standard pins in the OBD2 connector as in the following image (vehicle side):

Tiburon's OBD2 plug pinout, limited to power and canbus

Depending on vehicle's production date and trim, there are between 1 to 4 modules on the bus.

Modules connected to the CAN Bus
Module name Connector name CAN high pin CAN low pin CAN ID
2.0 2.7 SIMK41 SIMK43
ECM 2.0 pinout 2.7 pinout see pinout see pinout 0x545, 0x329, 0x316
TCM 2.0 pinout 2.7 pinout see pinout see pinout
Multigauge unit (if equipped) M42 7 1
ABS module (if equipped) E37 11 10 0x153

Messages

DME1 0x316

Refresh Rate: 10ms

  • Byte 0 - bitfield
    • Bit 0 - SWI_IGK_CAN: Terminal 15 –KEY ON
    • Bit 1 - F_N_ENG_CAN: Error – engine speed signal
    • Bit 2 - ACK_TCS_CAN: Acknowledement TCS
    • Bit 3 - PUC_STAT: Engine in fuel cut off
    • Bit 4 - TQ_COR_STAT_CAN: Status, torque intervention
    • Bit 6 - RLY_AC_CAN: Activation, air conditioner compressor relay
    • Bit 7 - F_SUB_TQI_CAN: Activation, air conditioner compressor relay
  • Byte 1 - TQI_TQR_CAN
    Indexed Engine Torque in % of C_TQ_STND (including ASR/MSR/ETCU/LIM/AMT/GEAR intervention)
    Calculation = HEX * 0.39
  • Byte 2 - N_ENG [LSB]
  • Byte 3 - N_ENG [MSB]
    Engine Speed in rpm
    Calculation = ((HEX[MSB] * 256) + HEX[LSB]) * 0.15625
  • Byte 4 - TQI_CAN
    Indicated Engine Torque in % of C_TQ_STND (based on PVS, N, AMP, TIA ,TCO, IGA, PUC so ip_tqi_pvs__n__pvs)
    Calculation = HEX * 0.39
  • Byte 5 - TQ_LOSS_CAN
    Needs verification
    Engine Torque Loss (due to engine friction, AC compressor and electrical power consumption) in % of C_TQ_STND
    Calculation = HEX * 0.39
  • Byte 6 - Bitfield
    • Bit 0 - ERR_AMT_CAN
    • Bit 1 - ERR_AMT_CAN
  • Byte 7 - TQI_MAF_CAN
    Needs verification
    Theorethical Engine Torque in % of C_TQ_STND after charge intervention (based on MAF & IGA so ip_tqi_maf__n__maf)
    Calculation = HEX * 0.39

Example messages:

05 0B B8 0C 0B 0A 00 77

05 0C B8 27 0C 0B 46 80

0D 00 84 27 00 0B 31 82

DME2 0x329

Refresh Rate: 10ms

  • Byte 0 - Bitfield
    • Bit 0 - MUL_INFO: Multiplexed information - CAN Version (CAN_VERS_CAN), - TCU configuration (CONF_TCU_CAN) - OBD freeze frame (OBD_FRF_ACK_CAN) - Torque scaling factor (TQ_STND_CAN) (6 bits long)
    • Bit 6 - MUL_CODE: Identification of MUL_INFO
  • Byte 1 - TEMP_ENG
    Engine (Coolant) Temperature in °C
    Calculation = (HEX * 0.75) - 48°C
    Init: 0xFF
    Min: 0x01 (-48°C)
    Max: 0xFF (142.5°C)
  • Byte 2 - AMP_CAN
    Ambient Pressure in hPa
    Calculation = (HEX * 2) + 598hPa
    Init = 0x00
    Min = 0x01 (600hPa)
    Max = 0xFE (1106hPa)
    Error = 0xFF
  • Byte 3 - VB_OFF_ACT_CAN
    Detection of battery disconnection (0x10 - battery is connected)
  • Byte 4 - ACK_ES_CAN
    Acknowledgement „engine stopped“
  • Byte 5 - TPS_CAN
    Accelerator Pedal Position in % of PVS_MAX
    Calculation = HEX * 0.390625
    Init = 0x00
    Min = 0x01 (0%)
    Max = 0xFE (99.2%)
    PVS Error = 0xFF
    Values around 10-15% are to be expected for an un-touched pedal
  • Byte 6 - ENG_CHR_CAN
    Engine Characteristic – Kind of fuel, ETS. 0xFF - gasoline
  • Byte 7 - Unused

Example messages:

4F B2 82 10 00 20 FF

4F B0 82 10 00 32 FF

4F B1 84 10 00 51 FF

DME4 0x545

Refresh Rate: 10ms

  • Byte 0 - Bitfield
    • Bit 0 - IM_AUTHEN_CAN: Authetication "immobilzer" (0/1), 1 bit long
    • Bit 1 - L_MIL_CAN: Lamp "check engine for OBD" (0/1), 1 bit long
    • Bit 2 - IM_STAT_CAN: Status "immobilizer" (0/1), 1 bit long
    • Bit 3 - AMP_CAN: Atmospheric Pressure [mmHg]. 5 bytes long
  • Byte 1 - FCO[LSB]
  • Byte 2 - FCO[MSB]
    Fuel Consumption in microliters (μl). Formula: HEX * 0,128
  • Byte 3 - VB
    Battery voltage
  • Byte 4 - Unused
  • Byte 5 - Unused
  • Byte 6 - Unused
  • Byte 7 - Unused

Example messages:

F6 61 01 89

EE FA 02 89

EE 8B 02 88

Example logs

Here are some example canbus dumps. They were recorded on a 2008 Tiburon, 2.0 (cvvt) with manual transmission, fitted with ABS and ESP.

https://drive.google.com/drive/folders/1j9GmhrkH-Lm7k_E4v4JQ_gHB_lFeJ5_U?usp=sharing

2008_2.0_normal_city.log - This one features "eco-driving" around the city, without exceeding 40mph.

2008_2.0_normal_highway.log - eco-driving around the highway, without exceeding 80mph.

2008_2.0_spirited_highway.log - changing gears near the limiter until getting to the 110mph mark and mostly staying there for the whole duration of the log.

2008_2.0_spirited_city.log - dynamic stroll through the city. This is the only log during which ESP intervention happened - it's reflected in ESP's module CAN messages.

Rest of the logs should have self-explanatory names.