| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -39,6 +39,7 @@ class CAR: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_NIRO_EV = "KIA NIRO EV 2020" | 
					 | 
					 | 
					 | 
					  KIA_NIRO_EV = "KIA NIRO EV 2020" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_OPTIMA = "KIA OPTIMA SX 2019 & 2016" | 
					 | 
					 | 
					 | 
					  KIA_OPTIMA = "KIA OPTIMA SX 2019 & 2016" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_OPTIMA_H = "KIA OPTIMA HYBRID 2017 & SPORTS 2019" | 
					 | 
					 | 
					 | 
					  KIA_OPTIMA_H = "KIA OPTIMA HYBRID 2017 & SPORTS 2019" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  KIA_SELTOS = "KIA SELTOS 2021" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_SORENTO = "KIA SORENTO GT LINE 2018" | 
					 | 
					 | 
					 | 
					  KIA_SORENTO = "KIA SORENTO GT LINE 2018" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_STINGER = "KIA STINGER GT2 2018" | 
					 | 
					 | 
					 | 
					  KIA_STINGER = "KIA STINGER GT2 2018" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  KIA_CEED = "KIA CEED INTRO ED 2019" | 
					 | 
					 | 
					 | 
					  KIA_CEED = "KIA CEED INTRO ED 2019" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -153,6 +154,9 @@ FINGERPRINTS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  { | 
					 | 
					 | 
					 | 
					  { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    68: 8, 127: 8, 304: 8, 320: 8, 339: 8, 352: 8, 356: 4, 544: 8, 576: 8, 593: 8, 688: 5, 881: 8, 882: 8, 897: 8, 902: 8, 903: 8, 909: 8, 912: 7, 916: 8, 1040: 8, 1056: 8, 1057: 8, 1078: 4, 1136: 6, 1151: 6, 1168: 7, 1173: 8, 1180: 8, 1186: 2, 1191: 2, 1265: 4, 1268: 8, 1280: 1, 1287: 4, 1290: 8, 1291: 8, 1292: 8, 1294: 8, 1312: 8, 1322: 8, 1342: 6, 1345: 8, 1348: 8, 1355: 8, 1363: 8, 1369: 8, 1371: 8, 1407: 8, 1419: 8, 1420: 8, 1425: 2, 1427: 6, 1429: 8, 1430: 8, 1448: 8, 1456: 4, 1470: 8, 1476: 8, 1535: 8 | 
					 | 
					 | 
					 | 
					    68: 8, 127: 8, 304: 8, 320: 8, 339: 8, 352: 8, 356: 4, 544: 8, 576: 8, 593: 8, 688: 5, 881: 8, 882: 8, 897: 8, 902: 8, 903: 8, 909: 8, 912: 7, 916: 8, 1040: 8, 1056: 8, 1057: 8, 1078: 4, 1136: 6, 1151: 6, 1168: 7, 1173: 8, 1180: 8, 1186: 2, 1191: 2, 1265: 4, 1268: 8, 1280: 1, 1287: 4, 1290: 8, 1291: 8, 1292: 8, 1294: 8, 1312: 8, 1322: 8, 1342: 6, 1345: 8, 1348: 8, 1355: 8, 1363: 8, 1369: 8, 1371: 8, 1407: 8, 1419: 8, 1420: 8, 1425: 2, 1427: 6, 1429: 8, 1430: 8, 1448: 8, 1456: 4, 1470: 8, 1476: 8, 1535: 8 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }], | 
					 | 
					 | 
					 | 
					  }], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.KIA_SELTOS: [{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    67: 8, 127: 8, 304: 8, 320: 8, 339: 8, 356: 4, 524: 8, 544: 8, 593: 8, 608: 8, 688: 6, 809: 8, 832: 8, 854: 8, 870: 7, 871: 8, 872: 8, 897: 8, 902: 8, 905: 8, 909: 8, 910: 5, 911: 5, 913: 8, 916: 8, 1040: 8, 1042: 8, 1056: 8, 1057: 8, 1064: 8, 1078: 4, 1102: 8, 1107: 5, 1114: 8, 1136: 8, 1145: 8, 1151: 8, 1155: 8, 1156: 8, 1157: 4, 1162: 8, 1164: 8, 1168: 8, 1170: 8, 1173: 8, 1186: 2, 1191: 2, 1225: 8, 1265: 4, 1280: 8, 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, 1394: 8, 1407: 8, 1419: 8, 1427: 6, 1446: 8, 1456: 4, 1470: 8, 1485: 8, 1988: 8, 1996: 8, 2000: 8, 2004: 8, 2008: 8, 2012: 8, 2015: 8 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  }], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.PALISADE: [{ | 
					 | 
					 | 
					 | 
					  CAR.PALISADE: [{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    67: 8, 127: 8, 304: 8, 320: 8, 339: 8, 356: 4, 544: 8, 546: 8, 547: 8, 548: 8, 549: 8, 576: 8, 593: 8, 608: 8, 688: 6, 809: 8, 832: 8, 854: 7, 870: 7, 871: 8, 872: 8, 897: 8, 902: 8, 903: 8, 905: 8, 909: 8, 913: 8, 916: 8, 1040: 8, 1042: 8, 1056: 8, 1057: 8, 1064: 8, 1078: 4, 1107: 5, 1123: 8, 1136: 8, 1151: 6, 1155: 8, 1156: 8, 1157: 4, 1162: 8, 1164: 8, 1168: 7, 1170: 8, 1173: 8, 1180: 8, 1186: 2, 1191: 2, 1193: 8, 1210: 8, 1225: 8, 1227: 8, 1265: 4, 1280: 8, 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: 8, 1384: 8, 1407: 8, 1419: 8, 1427: 6, 1456: 4, 1470: 8, 1988: 8, 1996: 8, 2000: 8, 2004: 8, 2005: 8, 2008: 8, 2012: 8 | 
					 | 
					 | 
					 | 
					    67: 8, 127: 8, 304: 8, 320: 8, 339: 8, 356: 4, 544: 8, 546: 8, 547: 8, 548: 8, 549: 8, 576: 8, 593: 8, 608: 8, 688: 6, 809: 8, 832: 8, 854: 7, 870: 7, 871: 8, 872: 8, 897: 8, 902: 8, 903: 8, 905: 8, 909: 8, 913: 8, 916: 8, 1040: 8, 1042: 8, 1056: 8, 1057: 8, 1064: 8, 1078: 4, 1107: 5, 1123: 8, 1136: 8, 1151: 6, 1155: 8, 1156: 8, 1157: 4, 1162: 8, 1164: 8, 1168: 7, 1170: 8, 1173: 8, 1180: 8, 1186: 2, 1191: 2, 1193: 8, 1210: 8, 1225: 8, 1227: 8, 1265: 4, 1280: 8, 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: 8, 1384: 8, 1407: 8, 1419: 8, 1427: 6, 1456: 4, 1470: 8, 1988: 8, 1996: 8, 2000: 8, 2004: 8, 2005: 8, 2008: 8, 2012: 8 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }], | 
					 | 
					 | 
					 | 
					  }], | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -162,7 +166,7 @@ FINGERPRINTS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# 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, CAR.GENESIS_G70, CAR.KONA, CAR.KIA_CEED] | 
					 | 
					 | 
					 | 
					IGNORED_FINGERPRINTS = [CAR.VELOSTER, CAR.GENESIS_G70, CAR.KONA, CAR.KIA_CEED, CAR.KIA_SELTOS] | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					FW_VERSIONS = { | 
					 | 
					 | 
					 | 
					FW_VERSIONS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.IONIQ_EV_2020: { | 
					 | 
					 | 
					 | 
					  CAR.IONIQ_EV_2020: { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -390,6 +394,14 @@ FW_VERSIONS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      b'\xf1\x00DEE MFC  AT EUR LHD 1.00 1.00 99211-Q4000 191211', | 
					 | 
					 | 
					 | 
					      b'\xf1\x00DEE MFC  AT EUR LHD 1.00 1.00 99211-Q4000 191211', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ], | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }, | 
					 | 
					 | 
					 | 
					  }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.KIA_SELTOS: { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.fwdRadar, 0x7d0, None): [b'\xf1\x8799110Q5100\xf1\000SP2_ SCC FHCUP      1.01 1.05 99110-Q5100         \xf1\xa01.05',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.esp, 0x7d1, None): [b'\xf1\x8758910-Q5450\xf1\000SP ESC \t 101\031\t\005 58910-Q5450\xf1\xa01.01',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.engine, 0x7e0, None): [b'\xf1\x81616D2051\000\000\000\000\000\000\000\000',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.eps, 0x7d4, None): [b'\xf1\000SP2 MDPS C 1.00 1.04 56300Q5200          ',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.fwdCamera, 0x7c4, None): [b'\xf1\000SP2 MFC  AT USA LHD 1.00 1.04 99210-Q5000 191114',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.transmission, 0x7e1, None): [b'\xf1\x87CZLUB49370612JF7h\xa8y\x87\x99\xa7hv\x99\x97fv\x88\x87x\x89x\x96O\xff\x88\xff\xff\xff.@\xf1\x816V2C2051\000\000\xf1\0006V2B0_C2\000\0006V2C2051\000\000CSP4N20NS3\000\000\000\000',], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA: { | 
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA: { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    (Ecu.fwdRadar, 0x7d0, None): [b'\xf1\x00JF__ SCC F-CUP      1.00 1.00 96400-D4110         '], | 
					 | 
					 | 
					 | 
					    (Ecu.fwdRadar, 0x7d0, None): [b'\xf1\x00JF__ SCC F-CUP      1.00 1.00 96400-D4110         '], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    (Ecu.esp, 0x7d1, None): [b'\xf1\x00JF ESC \v 11 \x18\x030 58920-D5180',], | 
					 | 
					 | 
					 | 
					    (Ecu.esp, 0x7d1, None): [b'\xf1\x00JF ESC \v 11 \x18\x030 58920-D5180',], | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -401,7 +413,7 @@ FW_VERSIONS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					CHECKSUM = { | 
					 | 
					 | 
					 | 
					CHECKSUM = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "crc8": [CAR.SANTA_FE, CAR.SONATA, CAR.PALISADE], | 
					 | 
					 | 
					 | 
					  "crc8": [CAR.SANTA_FE, CAR.SONATA, CAR.PALISADE, CAR.KIA_SELTOS], | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "6B": [CAR.KIA_SORENTO, CAR.HYUNDAI_GENESIS], | 
					 | 
					 | 
					 | 
					  "6B": [CAR.KIA_SORENTO, CAR.HYUNDAI_GENESIS], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -412,11 +424,11 @@ FEATURES = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "use_elect_gears": set([CAR.KIA_NIRO_EV, CAR.KIA_OPTIMA_H, CAR.IONIQ_EV_LTD, CAR.KONA_EV, CAR.IONIQ, CAR.IONIQ_EV_2020]), | 
					 | 
					 | 
					 | 
					  "use_elect_gears": set([CAR.KIA_NIRO_EV, CAR.KIA_OPTIMA_H, CAR.IONIQ_EV_LTD, CAR.KONA_EV, CAR.IONIQ, CAR.IONIQ_EV_2020]), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  # 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.IONIQ_EV_2020, CAR.KONA_EV, CAR.KIA_FORTE, CAR.KIA_NIRO_EV, CAR.PALISADE, CAR.GENESIS_G70, CAR.KONA, CAR.SANTA_FE]), | 
					 | 
					 | 
					 | 
					  "use_fca": set([CAR.SONATA, CAR.ELANTRA, CAR.ELANTRA_GT_I30, CAR.KIA_STINGER, CAR.IONIQ, CAR.IONIQ_EV_2020, CAR.KONA_EV, CAR.KIA_FORTE, CAR.KIA_NIRO_EV, CAR.PALISADE, CAR.GENESIS_G70, CAR.KONA, CAR.SANTA_FE, CAR.KIA_SELTOS]), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "use_bsm": set([CAR.SONATA, CAR.PALISADE, CAR.HYUNDAI_GENESIS, CAR.GENESIS_G70, | 
					 | 
					 | 
					 | 
					  "use_bsm": set([CAR.SONATA, CAR.PALISADE, CAR.HYUNDAI_GENESIS, CAR.GENESIS_G70, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  CAR.GENESIS_G80, CAR.GENESIS_G90, CAR.KONA, CAR.IONIQ_EV_2020, | 
					 | 
					 | 
					 | 
					                  CAR.GENESIS_G80, CAR.GENESIS_G90, CAR.KONA, CAR.IONIQ_EV_2020, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  CAR.SANTA_FE, CAR.KIA_NIRO_EV]), | 
					 | 
					 | 
					 | 
					                  CAR.SANTA_FE, CAR.KIA_NIRO_EV, CAR.KIA_SELTOS]), | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					EV_HYBRID = set([CAR.IONIQ_EV_2020, CAR.IONIQ_EV_LTD, CAR.IONIQ, CAR.KONA_EV, CAR.KIA_NIRO_EV]) | 
					 | 
					 | 
					 | 
					EV_HYBRID = set([CAR.IONIQ_EV_2020, CAR.IONIQ_EV_LTD, CAR.IONIQ, CAR.KONA_EV, CAR.KIA_NIRO_EV]) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -435,6 +447,7 @@ DBC = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_NIRO_EV: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KIA_NIRO_EV: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA_H: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KIA_OPTIMA_H: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.KIA_SELTOS: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_SORENTO: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KIA_SORENTO: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KIA_STINGER: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KIA_STINGER: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.KONA: dbc_dict('hyundai_kia_generic', None), | 
					 | 
					 | 
					 | 
					  CAR.KONA: dbc_dict('hyundai_kia_generic', None), | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |