@ -85,7 +85,8 @@ class CAR: 
			
		
	
		
			
				
					  KIA_NIRO_EV  =  " KIA NIRO EV 2020 "   
			
		
	
		
			
				
					  KIA_NIRO_PHEV  =  " KIA NIRO HYBRID 2019 "   
			
		
	
		
			
				
					  KIA_NIRO_HEV_2021  =  " KIA NIRO HYBRID 2021 "   
			
		
	
		
			
				
					  KIA_OPTIMA  =  " KIA OPTIMA SX 2019 & 2016 "   
			
		
	
		
			
				
					  KIA_OPTIMA  =  " KIA OPTIMA 2016 "   
			
		
	
		
			
				
					  KIA_OPTIMA_2019  =  " KIA OPTIMA 2019 "   
			
		
	
		
			
				
					  KIA_OPTIMA_H  =  " KIA OPTIMA HYBRID 2017 & SPORTS 2019 "   
			
		
	
		
			
				
					  KIA_SELTOS  =  " KIA SELTOS 2021 "   
			
		
	
		
			
				
					  KIA_SORENTO  =  " KIA SORENTO GT LINE 2018 "   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -156,10 +157,8 @@ CAR_INFO: Dict[str, Optional[Union[HyundaiCarInfo, List[HyundaiCarInfo]]]] = { 
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Niro Hybrid 2021 " ,  harness = Harness . hyundai_f ) ,   # TODO: could be hyundai_d, verify   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Niro Hybrid 2022 " ,  harness = Harness . hyundai_h ) ,   
			
		
	
		
			
				
					  ] ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA :  [   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Optima 2017 " ,  " Advanced Smart Cruise Control " ,  min_steer_speed = 32.  *  CV . MPH_TO_MS ,  harness = Harness . hyundai_b ) ,   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Optima 2019-20 " ,  " Smart Cruise Control (SCC) " ,  harness = Harness . hyundai_g ) ,   
			
		
	
		
			
				
					  ] ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA :  HyundaiCarInfo ( " Kia Optima 2017 " ,  " Advanced Smart Cruise Control " ,  harness = Harness . hyundai_b ) ,   # TODO: may support 2016, 2018   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA_2019 :  HyundaiCarInfo ( " Kia Optima 2019-20 " ,  " Smart Cruise Control (SCC) " ,  harness = Harness . hyundai_g ) ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA_H :  [   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Optima Hybrid 2017 " ,  " Advanced Smart Cruise Control " ) ,   # TODO: may support adjacent years   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Kia Optima Hybrid 2019 " ,  " Smart Cruise Control (SCC) " ) ,   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -230,9 +229,6 @@ FINGERPRINTS = { 
			
		
	
		
			
				
					  CAR . SONATA_LF :  [   
			
		
	
		
			
				
					    { 66 :  8 ,  67 :  8 ,  68 :  8 ,  127 :  8 ,  273 :  8 ,  274 :  8 ,  275 :  8 ,  339 :  8 ,  356 :  4 ,  399 :  8 ,  447 :  8 ,  512 :  6 ,  544 :  8 ,  593 :  8 ,  608 :  8 ,  688 :  5 ,  790 :  8 ,  809 :  8 ,  832 :  8 ,  884 :  8 ,  897 :  8 ,  899 :  8 ,  902 :  8 ,  903 :  6 ,  916 :  8 ,  1040 :  8 ,  1056 :  8 ,  1057 :  8 ,  1078 :  4 ,  1151 :  6 ,  1168 :  7 ,  1170 :  8 ,  1253 :  8 ,  1254 :  8 ,  1255 :  8 ,  1265 :  4 ,  1280 :  1 ,  1287 :  4 ,  1290 :  8 ,  1292 :  8 ,  1294 :  8 ,  1312 :  8 ,  1314 :  8 ,  1322 :  8 ,  1331 :  8 ,  1332 :  8 ,  1333 :  8 ,  1342 :  6 ,  1345 :  8 ,  1348 :  8 ,  1349 :  8 ,  1351 :  8 ,  1353 :  8 ,  1363 :  8 ,  1365 :  8 ,  1366 :  8 ,  1367 :  8 ,  1369 :  8 ,  1397 :  8 ,  1407 :  8 ,  1415 :  8 ,  1419 :  8 ,  1425 :  2 ,  1427 :  6 ,  1440 :  8 ,  1456 :  4 ,  1470 :  8 ,  1472 :  8 ,  1486 :  8 ,  1487 :  8 ,  1491 :  8 ,  1530 :  8 ,  1532 :  5 ,  2000 :  8 ,  2001 :  8 ,  2004 :  8 ,  2005 :  8 ,  2008 :  8 ,  2009 :  8 ,  2012 :  8 ,  2013 :  8 ,  2014 :  8 ,  2016 :  8 ,  2017 :  8 ,  2024 :  8 ,  2025 :  8 } ,   
			
		
	
		
			
				
					  ] ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA :  [ {   
			
		
	
		
			
				
					    64 :  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 ,  447 :  8 ,  512 :  6 ,  544 :  8 ,  558 :  8 ,  593 :  8 ,  608 :  8 ,  640 :  8 ,  688 :  5 ,  790 :  8 ,  809 :  8 ,  832 :  8 ,  884 :  8 ,  897 :  8 ,  899 :  8 ,  902 :  8 ,  903 :  6 ,  909 :  8 ,  912 :  7 ,  916 :  8 ,  1040 :  8 ,  1056 :  8 ,  1057 :  8 ,  1078 :  4 ,  1151 :  6 ,  1168 :  7 ,  1170 :  8 ,  1186 :  2 ,  1191 :  2 ,  1253 :  8 ,  1254 :  8 ,  1255 :  8 ,  1265 :  4 ,  1268 :  8 ,  1280 :  1 ,  1282 :  4 ,  1287 :  4 ,  1290 :  8 ,  1292 :  8 ,  1294 :  8 ,  1312 :  8 ,  1322 :  8 ,  1331 :  8 ,  1332 :  8 ,  1333 :  8 ,  1342 :  6 ,  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 ,  1419 :  8 ,  1425 :  2 ,  1427 :  6 ,  1440 :  8 ,  1456 :  4 ,  1470 :  8 ,  1472 :  8 ,  1486 :  8 ,  1487 :  8 ,  1491 :  8 ,  1492 :  8 ,  1530 :  8 ,  1532 :  5 ,  1792 :  8 ,  1872 :  8 ,  1937 :  8 ,  1953 :  8 ,  1968 :  8 ,  1988 :  8 ,  1996 :  8 ,  2000 :  8 ,  2001 :  8 ,  2004 :  8 ,  2008 :  8 ,  2009 :  8 ,  2012 :  8 ,  2015 :  8 ,  2016 :  8 ,  2017 :  8 ,  2024 :  8 ,  2025 :  8 ,  1371 :  8 ,  1397 :  8 ,  1961 :  8   
			
		
	
		
			
				
					  } ] ,   
			
		
	
		
			
				
					  CAR . KIA_SORENTO :  [ {   
			
		
	
		
			
				
					    67 :  8 ,  68 :  8 ,  127 :  8 ,  304 :  8 ,  320 :  8 ,  339 :  8 ,  356 :  4 ,  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 ,  1040 :  8 ,  1042 :  8 ,  1056 :  8 ,  1057 :  8 ,  1064 :  8 ,  1078 :  4 ,  1107 :  5 ,  1136 :  8 ,  1151 :  6 ,  1168 :  7 ,  1170 :  8 ,  1173 :  8 ,  1265 :  4 ,  1280 :  1 ,  1287 :  4 ,  1290 :  8 ,  1292 :  8 ,  1294 :  8 ,  1312 :  8 ,  1322 :  8 ,  1331 :  8 ,  1332 :  8 ,  1333 :  8 ,  1342 :  6 ,  1345 :  8 ,  1348 :  8 ,  1363 :  8 ,  1369 :  8 ,  1370 :  8 ,  1371 :  8 ,  1384 :  8 ,  1407 :  8 ,  1411 :  8 ,  1419 :  8 ,  1425 :  2 ,  1427 :  6 ,  1444 :  8 ,  1456 :  4 ,  1470 :  8 ,  1489 :  1   
			
		
	
		
			
				
					  } ] ,   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1144,25 +1140,40 @@ FW_VERSIONS = { 
			
		
	
		
			
				
					  } ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA :  {   
			
		
	
		
			
				
					    ( Ecu . fwdRadar ,  0x7d0 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF__ SCC F-CUP      1.00 1.00 96400-D411 0          ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF__ SCC F-CUP      1.00 1.00 96400-D410 0          ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . abs ,  0x7d1 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF ESC  \x0b  11  \x18 \x03 0 58920-D51 80 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF ESC  \x0f  16  \x16 \x06 \x17  58920-D50 80 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . engine ,  0x7e0 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x89 F1JF600AISEIU702 \xf1 \x82 F1JF600AISEIU702  ' ,   
			
		
	
		
			
				
					    ( Ecu . fwdCamera ,  0x7c4 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JFWGN LDWS AT USA LHD 1.00 1.02 95895-D4100 G21  ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . eps ,  0x7d4 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 TM  MDPS C 1.00 1.00 56340-S2000 8409 ' ,   
			
		
	
		
			
				
					    ( Ecu . transmission ,  0x7e1 ,  None ) :  [   
			
		
	
		
			
				
					      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 6T6J0051 \x00 \x00 \xf1 \x00 6T6J0_C2 \x00 \x00 6T6J0051 \x00 \x00 TJF0T20NSB \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					  } ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA_2019 :  {   
			
		
	
		
			
				
					    ( Ecu . fwdRadar ,  0x7d0 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF__ SCC F-CUP      1.00 1.00 96400-D4110          ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . abs ,  0x7d1 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JF ESC  \x0b  11  \x18 \x03 0 58920-D5180 ' ,   
			
		
	
		
			
				
					      b " \xf1 \x00 JF ESC  \t  11  \x18 \x03 '  58920-D5260 " ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . fwdCamera ,  0x7c4 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 JFA LKAS AT USA LHD 1.00 1.00 95895-D5001 h32 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 JFA LKAS AT USA LHD 1.00 1.02 95895-D5000 h31 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 JFA LKAS AT USA LHD 1.00 1.00 95895-D5100 h32  ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . transmission ,  0x7e1 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 6U2V0_C2 \x00 \x00 6U2V8051 \x00 \x00 DJF0T16NL0 \t \xd2 GW ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VA051 \x00 \x00 DJF0T16NL1 \xca 3 \xeb . ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VC051 \x00 \x00 DJF0T16NL2 \x9e A \x80 \x01 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VA051 \x00 \x00 DJF0T16NL1 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6U2V8051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2V8051 \x00 \x00 DJF0T16NL0 \t \xd2 GW ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6U2VA051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VA051 \x00 \x00 DJF0T16NL1 \xca 3 \xeb . ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6U2VC051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VC051 \x00 \x00 DJF0T16NL2 \x9e A \x80 \x01 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6U2VA051 \x00 \x00 \xf1 \x00 6U2V0_C2 \x00 \x00 6U2VA051 \x00 \x00 DJF0T16NL1 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      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_2021 :  {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1358,7 +1369,7 @@ CHECKSUM = { 
			
		
	
		
			
				
					FEATURES  =  {  
			
		
	
		
			
				
					  # which message has the gear   
			
		
	
		
			
				
					  " use_cluster_gears " :  { CAR . ELANTRA ,  CAR . ELANTRA_GT_I30 ,  CAR . KONA } ,   
			
		
	
		
			
				
					  " use_tcu_gears " :  { CAR . KIA_OPTIMA ,  CAR . SONATA_LF ,  CAR . VELOSTER ,  CAR . TUCSON } ,   
			
		
	
		
			
				
					  " use_tcu_gears " :  { CAR . KIA_OPTIMA ,  CAR . KIA_OPTIMA_2019 ,  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   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1374,7 +1385,7 @@ HYBRID_CAR = {CAR.IONIQ_PHEV, CAR.ELANTRA_HEV_2021, CAR.KIA_NIRO_PHEV, CAR.KIA_N 
			
		
	
		
			
				
					EV_CAR  =  { CAR . IONIQ_EV_2020 ,  CAR . IONIQ_EV_LTD ,  CAR . KONA_EV ,  CAR . KIA_NIRO_EV ,  CAR . KONA_EV_2022 }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# these cars require a special panda safety mode due to missing counters and checksums in the messages  
			
		
	
		
			
				
					LEGACY_SAFETY_MODE_CAR  =  { CAR . HYUNDAI_GENESIS ,  CAR . IONIQ_EV_2020 ,  CAR . IONIQ_EV_LTD ,  CAR . IONIQ_PHEV ,  CAR . IONIQ ,  CAR . KONA_EV ,  CAR . KIA_SORENTO ,  CAR . SONATA_LF ,  CAR . KIA_OPTIMA ,  CAR . VELOSTER ,  CAR . KIA_STINGER ,  CAR . GENESIS_G70 ,  CAR . GENESIS_G80 ,  CAR . KIA_CEED ,  CAR . ELANTRA ,  CAR . IONIQ_HEV_2022 }  
			
		
	
		
			
				
					LEGACY_SAFETY_MODE_CAR  =  { CAR . HYUNDAI_GENESIS ,  CAR . IONIQ_EV_2020 ,  CAR . IONIQ_EV_LTD ,  CAR . IONIQ_PHEV ,  CAR . IONIQ ,  CAR . KONA_EV ,  CAR . KIA_SORENTO ,  CAR . SONATA_LF ,  CAR . KIA_OPTIMA ,  CAR . KIA_OPTIMA_2019 ,  CAR . VELOSTER ,  CAR . KIA_STINGER ,  CAR . GENESIS_G70 ,  CAR . GENESIS_G80 ,  CAR . KIA_CEED ,  CAR . ELANTRA ,  CAR . IONIQ_HEV_2022 }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# If 0x500 is present on bus 1 it probably has a Mando radar outputting radar points.  
			
		
	
		
			
				
					# If no points are outputted by default it might be possible to turn it on using  selfdrive/debug/hyundai_enable_radar_points.py  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1400,6 +1411,7 @@ DBC = { 
			
		
	
		
			
				
					  CAR . KIA_NIRO_PHEV :  dbc_dict ( ' hyundai_kia_generic ' ,  ' hyundai_kia_mando_front_radar ' ) ,   
			
		
	
		
			
				
					  CAR . KIA_NIRO_HEV_2021 :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,   
			
		
	
		
			
				
					  CAR . KIA_OPTIMA_2019 :  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 ) ,  # Has 0x5XX messages, but different format