@ -17,6 +17,7 @@ class SteerLimitParams:
class CAR :
class CAR :
ELANTRA = " HYUNDAI ELANTRA LIMITED ULTIMATE 2017 "
ELANTRA = " HYUNDAI ELANTRA LIMITED ULTIMATE 2017 "
ELANTRA_GT_I30 = " HYUNDAI I30 N LINE 2019 & GT 2018 DCT "
ELANTRA_GT_I30 = " HYUNDAI I30 N LINE 2019 & GT 2018 DCT "
GENESIS_G70 = " GENESIS G70 2018 "
GENESIS_G80 = " GENESIS G80 2017 "
GENESIS_G80 = " GENESIS G80 2017 "
GENESIS_G90 = " GENESIS G90 2017 "
GENESIS_G90 = " GENESIS G90 2017 "
HYUNDAI_GENESIS = " HYUNDAI GENESIS 2015-2016 "
HYUNDAI_GENESIS = " HYUNDAI GENESIS 2015-2016 "
@ -98,6 +99,9 @@ FINGERPRINTS = {
CAR . KIA_STINGER : [ {
CAR . KIA_STINGER : [ {
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 359 : 8 , 544 : 8 , 576 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1281 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1371 : 8 , 1378 : 4 , 1379 : 8 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1456 : 4 , 1470 : 8
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 359 : 8 , 544 : 8 , 576 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1265 : 4 , 1280 : 1 , 1281 : 4 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1371 : 8 , 1378 : 4 , 1379 : 8 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1456 : 4 , 1470 : 8
} ] ,
} ] ,
CAR . GENESIS_G70 : [ {
67 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 544 : 8 , 576 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 909 : 8 , 916 : 8 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1064 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1156 : 8 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1186 : 2 , 1191 : 2 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1379 : 8 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1427 : 6 , 1456 : 4 , 1470 : 8 , 1988 : 8 , 1996 : 8 , 2000 : 8 , 2004 : 8 , 2008 : 8 , 2012 : 8 , 2015 : 8
} ] ,
CAR . GENESIS_G80 : [ {
CAR . GENESIS_G80 : [ {
67 : 8 , 68 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 903 : 8 , 916 : 8 , 1024 : 2 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1156 : 8 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1191 : 2 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1371 : 8 , 1378 : 4 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1434 : 2 , 1456 : 4 , 1470 : 8
67 : 8 , 68 : 8 , 127 : 8 , 304 : 8 , 320 : 8 , 339 : 8 , 356 : 4 , 358 : 6 , 544 : 8 , 593 : 8 , 608 : 8 , 688 : 5 , 809 : 8 , 832 : 8 , 854 : 7 , 870 : 7 , 871 : 8 , 872 : 8 , 897 : 8 , 902 : 8 , 903 : 8 , 916 : 8 , 1024 : 2 , 1040 : 8 , 1042 : 8 , 1056 : 8 , 1057 : 8 , 1078 : 4 , 1107 : 5 , 1136 : 8 , 1151 : 6 , 1156 : 8 , 1168 : 7 , 1170 : 8 , 1173 : 8 , 1184 : 8 , 1191 : 2 , 1265 : 4 , 1280 : 1 , 1287 : 4 , 1290 : 8 , 1292 : 8 , 1294 : 8 , 1312 : 8 , 1322 : 8 , 1342 : 6 , 1345 : 8 , 1348 : 8 , 1363 : 8 , 1369 : 8 , 1370 : 8 , 1371 : 8 , 1378 : 4 , 1384 : 8 , 1407 : 8 , 1419 : 8 , 1425 : 2 , 1427 : 6 , 1434 : 2 , 1456 : 4 , 1470 : 8
} ,
} ,
@ -144,7 +148,7 @@ ECU_FINGERPRINT = {
}
}
# Don't use these fingerprints for fingerprinting, they are still used for ECU detection
# Don't use these fingerprints for fingerprinting, they are still used for ECU detection
IGNORED_FINGERPRINTS = [ CAR . VELOSTER ]
IGNORED_FINGERPRINTS = [ CAR . VELOSTER , CAR . GENESIS_G70 ]
FW_VERSIONS = {
FW_VERSIONS = {
CAR . SONATA : {
CAR . SONATA : {
@ -223,6 +227,14 @@ FW_VERSIONS = {
( Ecu . eps , 0x7d4 , None ) : [ b ' \xf1 \x00 JSL MDPS C 1.00 1.03 56340-J3000 8308 ' , ] ,
( Ecu . eps , 0x7d4 , None ) : [ b ' \xf1 \x00 JSL MDPS C 1.00 1.03 56340-J3000 8308 ' , ] ,
( Ecu . fwdCamera , 0x7c4 , None ) : [ b ' \xf1 \x00 JS LKAS AT USA LHD 1.00 1.02 95740-J3000 K32 ' , ] ,
( Ecu . fwdCamera , 0x7c4 , None ) : [ b ' \xf1 \x00 JS LKAS AT USA LHD 1.00 1.02 95740-J3000 K32 ' , ] ,
( Ecu . transmission , 0x7e1 , None ) : [ b ' \xf1 \x81 6U2V8051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2V8051 \x00 \x00 DJS0T16NS1 \xba \x02 \xb8 \x80 ' , ] ,
( Ecu . transmission , 0x7e1 , None ) : [ b ' \xf1 \x81 6U2V8051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2V8051 \x00 \x00 DJS0T16NS1 \xba \x02 \xb8 \x80 ' , ] ,
} ,
CAR . GENESIS_G70 : {
( Ecu . fwdRadar , 0x7d0 , None ) : [ b ' \xf1 \x00 IK__ SCC F-CUP 1.00 1.02 96400-G9100 \xf1 \xa0 1.02 ' , ] ,
( Ecu . esp , 0x7d1 , None ) : [ b ' \xf1 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' , ] ,
( Ecu . engine , 0x7e0 , None ) : [ b ' \xf1 \x81 640F0051 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' , ] ,
( Ecu . eps , 0x7d4 , None ) : [ b ' \xf1 \x00 IK MDPS R 1.00 1.06 57700-G9420 4I4VL106 ' , ] ,
( Ecu . fwdCamera , 0x7c4 , None ) : [ b ' \xf1 \x00 IK MFC AT USA LHD 1.00 1.01 95740-G9000 170920 ' , ] ,
( Ecu . transmission , 0x7e1 , None ) : [ b ' \xf1 \x87 VDJLT17895112DN4 \x88 fVf \x99 \x88 \x88 \x88 \x87 fVe \x88 vhwwUFU \x97 eFex \x99 \xff \xb7 \x82 \xf1 \x81 E25 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \xf1 \x00 bcsh8p54 E25 \x00 \x00 \x00 \x00 \x00 \x00 \x00 SIK0T33NB2 \x11 \x1a m \xda ' , ] ,
}
}
}
}
@ -238,9 +250,9 @@ FEATURES = {
" use_elect_gears " : set ( [ CAR . KIA_OPTIMA_H , CAR . IONIQ_EV_LTD , CAR . KONA_EV , CAR . IONIQ ] ) ,
" use_elect_gears " : set ( [ CAR . KIA_OPTIMA_H , CAR . IONIQ_EV_LTD , CAR . KONA_EV , CAR . IONIQ ] ) ,
# these cars use the FCA11 message for the AEB and FCW signals, all others use SCC12
# these cars use the FCA11 message for the AEB and FCW signals, all others use SCC12
" use_fca " : set ( [ CAR . SONATA , CAR . ELANTRA , CAR . ELANTRA_GT_I30 , CAR . KIA_STINGER , CAR . IONIQ , CAR . KONA_EV , CAR . KIA_FORTE , CAR . PALISADE ] ) ,
" use_fca " : set ( [ CAR . SONATA , CAR . ELANTRA , CAR . ELANTRA_GT_I30 , CAR . KIA_STINGER , CAR . IONIQ , CAR . KONA_EV , CAR . KIA_FORTE , CAR . PALISADE , CAR . GENESIS_G70 ] ) ,
" use_bsm " : set ( [ CAR . SONATA , CAR . PALISADE , CAR . HYUNDAI_GENESIS , CAR . GENESIS_G80 , CAR . GENESIS_G90 ] ) ,
" use_bsm " : set ( [ CAR . SONATA , CAR . PALISADE , CAR . HYUNDAI_GENESIS , CAR . GENESIS_G70 , CAR . GENESIS_G 80 , CAR . GENESIS_G90 ] ) ,
}
}
EV_HYBRID = set ( [ CAR . IONIQ_EV_LTD , CAR . IONIQ , CAR . KONA_EV ] )
EV_HYBRID = set ( [ CAR . IONIQ_EV_LTD , CAR . IONIQ , CAR . KONA_EV ] )
@ -248,6 +260,7 @@ EV_HYBRID = set([CAR.IONIQ_EV_LTD, CAR.IONIQ, CAR.KONA_EV])
DBC = {
DBC = {
CAR . ELANTRA : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . ELANTRA : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . ELANTRA_GT_I30 : 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_G80 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS_G80 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS_G90 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . GENESIS_G90 : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . HYUNDAI_GENESIS : dbc_dict ( ' hyundai_kia_generic ' , None ) ,
CAR . HYUNDAI_GENESIS : dbc_dict ( ' hyundai_kia_generic ' , None ) ,