@ -37,7 +37,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 . IONIQ ,   
			
		
	
		
			
				
					    elif  CP . carFingerprint  in  ( CAR . GENESIS_G80 ,  CAR . GENESIS_G90 ,  CAR . ELANTRA ,  CAR . ELANTRA_GT_I30 ,  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_OPTIMA_H_G4_FL ,  CAR . KIA_SORENTO ) :   
			
		
	
		
			
				
					      self . STEER_MAX  =  255   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -72,6 +72,7 @@ class CAR(StrEnum): 
			
		
	
		
			
				
					  AZERA_6TH_GEN  =  " HYUNDAI AZERA 6TH GEN "   
			
		
	
		
			
				
					  AZERA_HEV_6TH_GEN  =  " HYUNDAI AZERA HYBRID 6TH GEN "   
			
		
	
		
			
				
					  ELANTRA  =  " HYUNDAI ELANTRA 2017 "   
			
		
	
		
			
				
					  ELANTRA_GT_I30  =  " HYUNDAI I30 N LINE 2019 & GT 2018 DCT "   
			
		
	
		
			
				
					  ELANTRA_2021  =  " HYUNDAI ELANTRA 2021 "   
			
		
	
		
			
				
					  ELANTRA_HEV_2021  =  " HYUNDAI ELANTRA HYBRID 2021 "   
			
		
	
		
			
				
					  HYUNDAI_GENESIS  =  " HYUNDAI GENESIS 2015-2016 "   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -160,7 +161,11 @@ CAR_INFO: Dict[str, Optional[Union[HyundaiCarInfo, List[HyundaiCarInfo]]]] = { 
			
		
	
		
			
				
					  CAR . AZERA_6TH_GEN :  HyundaiCarInfo ( " Hyundai Azera 2022 " ,  " All " ,  car_parts = CarParts . common ( [ CarHarness . hyundai_k ] ) ) ,   
			
		
	
		
			
				
					  CAR . AZERA_HEV_6TH_GEN :  HyundaiCarInfo ( " Hyundai Azera Hybrid 2020 " ,  " All " ,  car_parts = CarParts . common ( [ CarHarness . hyundai_k ] ) ) ,   
			
		
	
		
			
				
					  CAR . ELANTRA :  [   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Hyundai Elantra 2017-19 " ,  min_enable_speed = 19  *  CV . MPH_TO_MS ,  car_parts = CarParts . common ( [ CarHarness . hyundai_b ] ) ) ,   
			
		
	
		
			
				
					    # TODO: 2017-18 could be Hyundai G   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Hyundai Elantra 2017-18 " ,  min_enable_speed = 19  *  CV . MPH_TO_MS ,  car_parts = CarParts . common ( [ CarHarness . hyundai_b ] ) ) ,   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Hyundai Elantra 2019 " ,  min_enable_speed = 19  *  CV . MPH_TO_MS ,  car_parts = CarParts . common ( [ CarHarness . hyundai_g ] ) ) ,   
			
		
	
		
			
				
					  ] ,   
			
		
	
		
			
				
					  CAR . ELANTRA_GT_I30 :  [   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Hyundai Elantra GT 2017-19 " ,  car_parts = CarParts . common ( [ CarHarness . hyundai_e ] ) ) ,   
			
		
	
		
			
				
					    HyundaiCarInfo ( " Hyundai i30 2017-19 " ,  car_parts = CarParts . common ( [ CarHarness . hyundai_e ] ) ) ,   
			
		
	
		
			
				
					  ] ,   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -298,9 +303,6 @@ class Buttons: 
			
		
	
		
			
				
					  CANCEL  =  4   # on newer models, this is a pause/resume button   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					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 . 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   
			
		
	
		
			
				
					  } ,   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1702,6 +1704,33 @@ FW_VERSIONS = { 
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					  } ,   
			
		
	
		
			
				
					  CAR . ELANTRA :  {   
			
		
	
		
			
				
					    ( Ecu . fwdCamera ,  0x7c4 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 ADP LKAS AT USA LHD 1.00 1.03 99211-F2000 X31 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 AD  LKAS AT USA LHD 1.01 1.01 95895-F2000 251 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . transmission ,  0x7e1 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 6T6K0_C2 \x00 \x00 6T6S2051 \x00 \x00 TAD0N20NSD( \xfc A \x9d ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6T6K0_C2 \x00 \x00 6T6S2051 \x00 \x00 TAD0N20NSD \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6T6J0_C2 \x00 \x00 6T6F0051 \x00 \x00 TAD0N20NS2 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6T6J0_C2 \x00 \x00 6T6F0051 \x00 \x00 TAD0N20NS2 \xc5 \x92 \x9e \x8a ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 6T6J0_C2 \x00 \x00 6T6F0051 \x00 \x00 TAD0N20SS2.~ \x90 \x87 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . engine ,  0x7e0 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x81 61698051 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 61657051 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6165D051 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x81 6165E051 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . abs ,  0x7d1 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 AD ESC  \x11  11  \x18 \x05 \x06  58910-F2840 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 AD ESC  \x11  12  \x15 \t \t  58920-F2810 ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					    ( Ecu . fwdRadar ,  0x7d0 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 AD__ SCC H-CUP      1.00 1.00 99110-F2100          ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 AD__ SCC H-CUP      1.00 1.01 96400-F2100          ' ,   
			
		
	
		
			
				
					    ] ,   
			
		
	
		
			
				
					  } ,   
			
		
	
		
			
				
					  CAR . ELANTRA_GT_I30 :  {   
			
		
	
		
			
				
					    ( Ecu . fwdCamera ,  0x7c4 ,  None ) :  [   
			
		
	
		
			
				
					      b ' \xf1 \x00 PD  LKAS AT USA LHD 1.01 1.01 95740-G3100 A54 ' ,   
			
		
	
		
			
				
					      b ' \xf1 \x00 PD  LKAS AT KOR LHD 1.00 1.02 95740-G3000 A51 ' ,   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2065,7 +2094,7 @@ CHECKSUM = { 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					CAN_GEARS  =  {  
			
		
	
		
			
				
					  # which message has the gear. hybrid and EV use ELECT_GEAR   
			
		
	
		
			
				
					  " use_cluster_gears " :  { CAR . ELANTRA ,  CAR . KONA } ,   
			
		
	
		
			
				
					  " use_cluster_gears " :  { CAR . ELANTRA ,  CAR . ELANTRA_GT_I30 ,  CAR . KONA } ,   
			
		
	
		
			
				
					  " use_tcu_gears " :  { CAR . KIA_OPTIMA_G4 ,  CAR . KIA_OPTIMA_G4_FL ,  CAR . SONATA_LF ,  CAR . VELOSTER ,  CAR . TUCSON } ,   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2094,7 +2123,7 @@ EV_CAR = {CAR.IONIQ_EV_2020, CAR.IONIQ_EV_LTD, CAR.KONA_EV, CAR.KIA_NIRO_EV, CAR 
			
		
	
		
			
				
					# 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_LTD ,  CAR . KIA_OPTIMA_G4 ,  
			
		
	
		
			
				
					                          CAR . VELOSTER ,  CAR . GENESIS_G70 ,  CAR . GENESIS_G80 ,  CAR . KIA_CEED ,  CAR . ELANTRA ,  CAR . IONIQ_HEV_2022 ,   
			
		
	
		
			
				
					                          CAR . KIA_OPTIMA_H }   
			
		
	
		
			
				
					                          CAR . KIA_OPTIMA_H ,  CAR . ELANTRA_GT_I30 }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# these cars have not been verified to work with longitudinal yet - radar disable, sending correct messages, etc.  
			
		
	
		
			
				
					UNSUPPORTED_LONGITUDINAL_CAR  =  LEGACY_SAFETY_MODE_CAR  |  { CAR . KIA_NIRO_PHEV ,  CAR . KIA_SORENTO ,  CAR . SONATA_LF ,  CAR . KIA_OPTIMA_G4_FL ,  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2106,6 +2135,7 @@ DBC = { 
			
		
	
		
			
				
					  CAR . AZERA_6TH_GEN :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,   
			
		
	
		
			
				
					  CAR . AZERA_HEV_6TH_GEN :  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_2021 :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,   
			
		
	
		
			
				
					  CAR . ELANTRA_HEV_2021 :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,   
			
		
	
		
			
				
					  CAR . GENESIS_G70 :  dbc_dict ( ' hyundai_kia_generic ' ,  None ) ,