@ -34,7 +34,7 @@ class CarControllerParams:
# To determine the limit for your car, find the maximum value that the stock LKAS will request.
# If the max stock LKAS request is <384, add your car to this list.
elif CP . carFingerprint in ( CAR . GENESIS_G80 , CAR . GENESIS_G90 , CAR . ELANTRA , CAR . HYUNDAI_GENESIS , CAR . ELANTRA_GT_I30 , CAR . IONIQ ,
elif CP . carFingerprint in ( CAR . GENESIS_G80 , CAR . GENESIS_G90 , CAR . ELANTRA , CAR . HYUNDAI_GENESIS , CAR . IONIQ ,
CAR . IONIQ_EV_LTD , CAR . SANTA_FE_PHEV_2022 , CAR . SONATA_LF , CAR . KIA_FORTE , CAR . KIA_NIRO_PHEV ,
CAR . KIA_OPTIMA_H , CAR . KIA_SORENTO ) :
self . STEER_MAX = 255
@ -54,7 +54,6 @@ class CAR:
ELANTRA = " HYUNDAI ELANTRA 2017 "
ELANTRA_2021 = " HYUNDAI ELANTRA 2021 "
ELANTRA_HEV_2021 = " HYUNDAI ELANTRA HYBRID 2021 "
ELANTRA_GT_I30 = " HYUNDAI I30 N LINE 2019 & GT 2018 DCT "
HYUNDAI_GENESIS = " HYUNDAI GENESIS 2015-2016 "
IONIQ = " HYUNDAI IONIQ HYBRID 2017-2019 "
IONIQ_HEV_2022 = " HYUNDAI IONIQ HYBRID 2020-2022 "
@ -108,13 +107,13 @@ class HyundaiCarInfo(CarInfo):
CAR_INFO : Dict [ str , Optional [ Union [ HyundaiCarInfo , List [ HyundaiCarInfo ] ] ] ] = {
CAR . ELANTRA : HyundaiCarInfo ( " Hyundai Elantra 2017-19 " , min_enable_speed = 19 * CV . MPH_TO_MS , harness = Harness . hyundai_b ) ,
CAR . ELANTRA_2021 : HyundaiCarInfo ( " Hyundai Elantra 2021-22 " , video_link = " https://youtu.be/_EdYQtV52-c " , harness = Harness . hyundai_k ) ,
CAR . ELANTRA_HEV_2021 : HyundaiCarInfo ( " Hyundai Elantra Hybrid 2021-23 " , video_link = " https://youtu.be/_EdYQtV52-c " , harness = Harness . hyundai_k ) ,
CAR . ELANTRA_GT_I30 : [
CAR . ELANTRA : [
HyundaiCarInfo ( " Hyundai Elantra 2017-19 " , min_enable_speed = 19 * CV . MPH_TO_MS , harness = Harness . hyundai_b ) ,
HyundaiCarInfo ( " Hyundai Elantra GT 2017-19 " , harness = Harness . hyundai_e ) ,
HyundaiCarInfo ( " Hyundai i30 2019 " , harness = Harness . hyundai_e ) ,
] ,
CAR . ELANTRA_2021 : HyundaiCarInfo ( " Hyundai Elantra 2021-22 " , video_link = " https://youtu.be/_EdYQtV52-c " , harness = Harness . hyundai_k ) ,
CAR . ELANTRA_HEV_2021 : HyundaiCarInfo ( " Hyundai Elantra Hybrid 2021-23 " , video_link = " https://youtu.be/_EdYQtV52-c " , harness = Harness . hyundai_k ) ,
CAR . HYUNDAI_GENESIS : HyundaiCarInfo ( " Hyundai Genesis 2015-16 " , min_enable_speed = 19 * CV . MPH_TO_MS , harness = Harness . hyundai_j ) , # TODO: check 2015 packages
CAR . IONIQ : HyundaiCarInfo ( " Hyundai Ioniq Hybrid 2017-19 " , harness = Harness . hyundai_c ) ,
CAR . IONIQ_HEV_2022 : HyundaiCarInfo ( " Hyundai Ioniq Hybrid 2020-22 " , harness = Harness . hyundai_h ) , # TODO: confirm 2020-21 harness
@ -199,15 +198,6 @@ FINGERPRINTS = {
CAR . ELANTRA : [ {
66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 356 : 4 , 399 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 897 : 8 , 832 : 8 , 899 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1170 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1314 : 8 , 1322 : 8 , 1345 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1363 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1415 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1440 : 8 , 1456 : 4 , 1472 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1530 : 8 , 1532 : 5 , 2001 : 8 , 2003 : 8 , 2004 : 8 , 2009 : 8 , 2012 : 8 , 2016 : 8 , 2017 : 8 , 2024 : 8 , 2025 : 8
} ] ,
CAR . ELANTRA_GT_I30 : [ {
66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 128 : 8 , 129 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 354 : 3 , 356 : 4 , 399 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 884 : 8 , 897 : 8 , 899 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1193 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1345 : 8 , 1348 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1356 : 8 , 1363 : 8 , 1365 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1414 : 3 , 1415 : 8 , 1427 : 6 , 1440 : 8 , 1456 : 4 , 1470 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1530 : 8 , 1952 : 8 , 1960 : 8 , 1988 : 8 , 2000 : 8 , 2001 : 8 , 2005 : 8 , 2008 : 8 , 2009 : 8 , 2013 : 8 , 2017 : 8 , 2025 : 8
} ,
{
66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 128 : 8 , 129 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 354 : 3 , 356 : 4 , 399 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 832 : 8 , 897 : 8 , 899 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1356 : 8 , 1363 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1414 : 3 , 1415 : 8 , 1419 : 8 , 1440 : 8 , 1456 : 4 , 1470 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1530 : 8
} ,
{
66 : 8 , 67 : 8 , 68 : 8 , 127 : 8 , 128 : 8 , 129 : 8 , 273 : 8 , 274 : 8 , 275 : 8 , 339 : 8 , 354 : 3 , 356 : 4 , 399 : 8 , 512 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 790 : 8 , 809 : 8 , 832 : 8 , 897 : 8 , 899 : 8 , 902 : 8 , 903 : 8 , 905 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1265 : 4 , 1280 : 1 , 1282 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1349 : 8 , 1351 : 8 , 1353 : 8 , 1356 : 8 , 1363 : 8 , 1366 : 8 , 1367 : 8 , 1369 : 8 , 1407 : 8 , 1414 : 3 , 1419 : 8 , 1427 : 6 , 1440 : 8 , 1456 : 4 , 1470 : 8 , 1486 : 8 , 1487 : 8 , 1491 : 8 , 1960 : 8 , 1990 : 8 , 1998 : 8 , 2000 : 8 , 2001 : 8 , 2004 : 8 , 2005 : 8 , 2008 : 8 , 2009 : 8 , 2012 : 8 , 2013 : 8 , 2015 : 8 , 2016 : 8 , 2017 : 8 , 2024 : 8 , 2025 : 8
} ] ,
CAR . HYUNDAI_GENESIS : [ {
67 : 8 , 68 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 544 : 7 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 5 , 897 : 8 , 902 : 8 , 903 : 6 , 916 : 8 , 1024 : 2 , 1040 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1292 : 8 , 1312 : 8 , 1322 : 8 , 1331 : 8 , 1332 : 8 , 1333 : 8 , 1334 : 8 , 1335 : 8 , 1342 : 6 , 1345 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1371 : 8 , 1378 : 4 , 1384 : 5 , 1407 : 8 , 1419 : 8 , 1427 : 6 , 1434 : 2 , 1456 : 4
} ,
@ -791,6 +781,7 @@ FW_VERSIONS = {
} ,
CAR . PALISADE : {
( Ecu . fwdRadar , 0x7d0 , None ) : [
b ' \xf1 \x00 LX2_ SCC F-CUP 1.00 1.04 99110-S8100 ' ,
b ' \xf1 \x00 LX2_ SCC F-CUP 1.00 1.05 99110-S8100 ' ,
b ' \xf1 \x00 LX2 SCC FHCUP 1.00 1.04 99110-S8100 ' ,
b ' \xf1 \x00 LX2_ SCC FHCU- 1.00 1.05 99110-S8100 ' ,
@ -804,6 +795,7 @@ FW_VERSIONS = {
b ' \xf1 \x00 LX ESC \x01 1031 \t \x10 58910-S8360 ' ,
b ' \xf1 \x00 LX ESC \x0b 101 \x19 \x03 \x17 58910-S8330 ' ,
b ' \xf1 \x00 LX ESC \x0b 102 \x19 \x05 \x07 58910-S8330 ' ,
b ' \xf1 \x00 LX ESC \x0b 103 \x19 \t \t 58910-S8350 ' ,
b ' \xf1 \x00 LX ESC \x0b 103 \x19 \t \x07 58910-S8330 ' ,
b ' \xf1 \x00 LX ESC \x0b 103 \x19 \t \x10 58910-S8360 ' ,
b ' \xf1 \x00 LX ESC \x0b 104 \x10 \x16 58910-S8360 ' ,
@ -818,6 +810,7 @@ FW_VERSIONS = {
] ,
( Ecu . eps , 0x7d4 , None ) : [
b ' \xf1 \x00 LX2 MDPS C 1,00 1,03 56310-S8020 4LXDC103 ' ,
b ' \xf1 \x00 LX2 MDPS C 1.00 1.03 56310-S8000 4LXDC103 ' ,
b ' \xf1 \x00 LX2 MDPS C 1.00 1.03 56310-S8020 4LXDC103 ' ,
b ' \xf1 \x00 LX2 MDPS C 1.00 1.04 56310-S8020 4LXDC104 ' ,
b ' \xf1 \x00 ON MDPS C 1.00 1.00 56340-S9000 8B13 ' ,
@ -834,6 +827,7 @@ FW_VERSIONS = {
] ,
( Ecu . transmission , 0x7e1 , None ) : [
b ' \xf1 \x00 bcsh8p54 U872 \x00 \x00 \x00 \x00 \x00 \x00 TON4G38NB1 \x96 z28 ' ,
b ' \xf1 \x00 bcsh8p54 U891 \x00 \x00 \x00 \x00 \x00 \x00 SLX4G38NB3X \xa8 \xc0 8 ' ,
b ' \xf1 \x00 bcsh8p54 U903 \x00 \x00 \x00 \x00 \x00 \x00 TON4G38NB2[v \\ \xb6 ' ,
b ' \xf1 \x87 LBLUFN591307KF25vgvw \x97 wwwy \x99 \xa7 \x99 \x99 \xaa \xa9 \x9a f \x88 \x96 h \x95 o \xf7 \xff \x99 f/ \xff \xe4 c \xf1 \x81 U891 \x00 \x00 \x00 \x00 \x00 \x00 \xf1 \x00 bcsh8p54 U891 \x00 \x00 \x00 \x00 \x00 \x00 SLX2G38NB2 \xd7 \xc1 / \xd1 ' ,
b ' \xf1 \x87 LBLUFN650868KF36 \xa9 \x98 \x89 \x88 \xa8 \x88 \x88 \x88 h \x99 \xa6 \x89 fw \x86 gw \x88 \x97 x \xaa \x7f \xf6 \xff \xbb \xbb \x8f \xff + \x82 \xf1 \x81 U891 \x00 \x00 \x00 \x00 \x00 \x00 \xf1 \x00 bcsh8p54 U891 \x00 \x00 \x00 \x00 \x00 \x00 SLX2G38NB3 \xd1 \xc3 \xf8 \xa8 ' ,
@ -1210,6 +1204,23 @@ FW_VERSIONS = {
b ' \xf1 \x87 \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xff \xf1 \x81 6T6B8051 \x00 \x00 \xf1 \x00 6T6H0_C2 \x00 \x00 6T6B8051 \x00 \x00 TJFSG24NH27 \xa7 \xc2 \xb4 ' ,
] ,
} ,
CAR . ELANTRA : {
( Ecu . fwdCamera , 0x7c4 , None ) : [
b ' \xf1 \x00 PD LKAS AT USA LHD 1.01 1.01 95740-G3100 A54 ' ,
] ,
( Ecu . transmission , 0x7e1 , None ) : [
b ' \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VA051 \x00 \x00 DPD0H16NS0e \x0e \xcd \x8e ' ,
] ,
( Ecu . eps , 0x7d4 , None ) : [
b ' \xf1 \x00 PD MDPS C 1.00 1.04 56310/G3300 4PDDC104 ' ,
] ,
( Ecu . abs , 0x7d1 , None ) : [
b ' \xf1 \x00 PD ESC \x0b 104 \x18 \t \x03 58920-G3350 ' ,
] ,
( Ecu . fwdRadar , 0x7d0 , None ) : [
b ' \xf1 \x00 PD__ SCC F-CUP 1.00 1.00 96400-G3300 ' ,
] ,
} ,
CAR . ELANTRA_2021 : {
( Ecu . fwdRadar , 0x7d0 , None ) : [
b ' \xf1 \x00 CN7_ SCC F-CUP 1.00 1.01 99110-AA000 ' ,
@ -1390,12 +1401,12 @@ CHECKSUM = {
FEATURES = {
# which message has the gear
" use_cluster_gears " : { CAR . ELANTRA , CAR . ELANTRA_GT_I30 , CAR . KONA } ,
" use_cluster_gears " : { CAR . ELANTRA , CAR . KONA } ,
" use_tcu_gears " : { CAR . KIA_OPTIMA_G4 , CAR . KIA_OPTIMA_G4_FL , CAR . SONATA_LF , CAR . VELOSTER , CAR . TUCSON } ,
" use_elect_gears " : { CAR . KIA_NIRO_EV , CAR . KIA_NIRO_PHEV , CAR . KIA_NIRO_HEV_2021 , CAR . KIA_OPTIMA_H , CAR . IONIQ_EV_LTD , CAR . KONA_EV , CAR . IONIQ , CAR . IONIQ_EV_2020 , CAR . IONIQ_PHEV , CAR . ELANTRA_HEV_2021 , CAR . SONATA_HYBRID , CAR . KONA_HEV , CAR . IONIQ_HEV_2022 , CAR . SANTA_FE_HEV_2022 , CAR . SANTA_FE_PHEV_2022 , CAR . IONIQ_PHEV_2019 , CAR . KONA_EV_2022 } ,
# these cars use the FCA11 message for the AEB and FCW signals, all others use SCC12
" use_fca " : { CAR . SONATA , CAR . SONATA_HYBRID , CAR . ELANTRA , CAR . ELANTRA_2021 , CAR . ELANTRA_HEV_2021 , CAR . ELANTRA_GT_I30 , CAR . KIA_STINGER , CAR . IONIQ_EV_2020 , CAR . IONIQ_PHEV , CAR . KONA_EV , CAR . KIA_FORTE , CAR . KIA_NIRO_EV , CAR . PALISADE , CAR . GENESIS_G70 , CAR . GENESIS_G70_2020 , CAR . KONA , CAR . SANTA_FE , CAR . KIA_SELTOS , CAR . KONA_HEV , CAR . SANTA_FE_2022 , CAR . KIA_K5_2021 , CAR . IONIQ_HEV_2022 , CAR . SANTA_FE_HEV_2022 , CAR . SANTA_FE_PHEV_2022 , CAR . TUCSON , CAR . KONA_EV_2022 } ,
" use_fca " : { CAR . SONATA , CAR . SONATA_HYBRID , CAR . ELANTRA , CAR . ELANTRA_2021 , CAR . ELANTRA_HEV_2021 , CAR . KIA_STINGER , CAR . IONIQ_EV_2020 , CAR . IONIQ_PHEV , CAR . KONA_EV , CAR . KIA_FORTE , CAR . KIA_NIRO_EV , CAR . PALISADE , CAR . GENESIS_G70 , CAR . GENESIS_G70_2020 , CAR . KONA , CAR . SANTA_FE , CAR . KIA_SELTOS , CAR . KONA_HEV , CAR . SANTA_FE_2022 , CAR . KIA_K5_2021 , CAR . IONIQ_HEV_2022 , CAR . SANTA_FE_HEV_2022 , CAR . SANTA_FE_PHEV_2022 , CAR . TUCSON , CAR . KONA_EV_2022 } ,
}
CANFD_CAR = { CAR . KIA_EV6 , CAR . IONIQ_5 , CAR . TUCSON_HYBRID_4TH_GEN , CAR . KIA_SPORTAGE_HYBRID_5TH_GEN }
@ -1415,7 +1426,6 @@ DBC = {
CAR . ELANTRA : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . ELANTRA_2021 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . ELANTRA_HEV_2021 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . ELANTRA_GT_I30 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS_G70 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS_G70_2020 : dbc_dict ( ' hyundai_kia_generic ' , ' hyundai_kia_mando_front_radar_generated ' ) ,
CAR . GENESIS_G80 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,