| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -90,6 +90,7 @@ class CAR: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_ES_TSS2 = "LEXUS ES 2019" | 
					 | 
					 | 
					 | 
					  LEXUS_ES_TSS2 = "LEXUS ES 2019" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_ESH_TSS2 = "LEXUS ES HYBRID 2019" | 
					 | 
					 | 
					 | 
					  LEXUS_ESH_TSS2 = "LEXUS ES HYBRID 2019" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_IS = "LEXUS IS 2018" | 
					 | 
					 | 
					 | 
					  LEXUS_IS = "LEXUS IS 2018" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  LEXUS_IS_TSS2 = "LEXUS IS 2023" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_NX = "LEXUS NX 2018" | 
					 | 
					 | 
					 | 
					  LEXUS_NX = "LEXUS NX 2018" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_NXH = "LEXUS NX HYBRID 2018" | 
					 | 
					 | 
					 | 
					  LEXUS_NXH = "LEXUS NX HYBRID 2018" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LEXUS_NX_TSS2 = "LEXUS NX 2020" | 
					 | 
					 | 
					 | 
					  LEXUS_NX_TSS2 = "LEXUS NX 2020" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -183,6 +184,7 @@ CAR_INFO: Dict[str, Union[ToyotaCarInfo, List[ToyotaCarInfo]]] = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_ES_TSS2: ToyotaCarInfo("Lexus ES 2019-22"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_ES_TSS2: ToyotaCarInfo("Lexus ES 2019-22"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_ESH_TSS2: ToyotaCarInfo("Lexus ES Hybrid 2019-23", video_link="https://youtu.be/BZ29osRVJeg?t=12"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_ESH_TSS2: ToyotaCarInfo("Lexus ES Hybrid 2019-23", video_link="https://youtu.be/BZ29osRVJeg?t=12"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS: ToyotaCarInfo("Lexus IS 2017-19"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS: ToyotaCarInfo("Lexus IS 2017-19"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS_TSS2: ToyotaCarInfo("Lexus IS 2023"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_NX: ToyotaCarInfo("Lexus NX 2018-19"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_NX: ToyotaCarInfo("Lexus NX 2018-19"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_NXH: ToyotaCarInfo("Lexus NX Hybrid 2018-19"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_NXH: ToyotaCarInfo("Lexus NX Hybrid 2018-19"), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_NX_TSS2: ToyotaCarInfo("Lexus NX 2020-21"), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_NX_TSS2: ToyotaCarInfo("Lexus NX 2020-21"), | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1244,6 +1246,23 @@ FW_VERSIONS = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      b'8646F5301400\x00\x00\x00\x00', | 
					 | 
					 | 
					 | 
					      b'8646F5301400\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ], | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }, | 
					 | 
					 | 
					 | 
					  }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS_TSS2: { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.engine, 0x700, None): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      b'\x018966353S1000\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.abs, 0x7b0, None): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      b'\x01F15265342000\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.eps, 0x7a1, None): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      b'8965B53450\x00\x00\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.fwdRadar, 0x750, 0xf): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      b'\x018821F6201300\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    (Ecu.fwdCamera, 0x750, 0x6d): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      b'\x028646F5303400\x00\x00\x00\x008646G3304000\x00\x00\x00\x00', | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    ], | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.PRIUS: { | 
					 | 
					 | 
					 | 
					  CAR.PRIUS: { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    (Ecu.engine, 0x700, None): [ | 
					 | 
					 | 
					 | 
					    (Ecu.engine, 0x700, None): [ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      b'\x02896634761000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00', | 
					 | 
					 | 
					 | 
					      b'\x02896634761000\x00\x00\x00\x008966A4703000\x00\x00\x00\x00', | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2261,6 +2280,7 @@ DBC = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_ESH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_ESH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.SIENNA: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), | 
					 | 
					 | 
					 | 
					  CAR.SIENNA: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS: dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_IS_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.LEXUS_CTH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), | 
					 | 
					 | 
					 | 
					  CAR.LEXUS_CTH: dbc_dict('toyota_new_mc_pt_generated', 'toyota_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.RAV4H_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), | 
					 | 
					 | 
					 | 
					  CAR.RAV4H_TSS2: dbc_dict('toyota_nodsu_pt_generated', 'toyota_tss2_adas'), | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CAR.RAV4H_TSS2_2022: dbc_dict('toyota_nodsu_pt_generated', None), | 
					 | 
					 | 
					 | 
					  CAR.RAV4H_TSS2_2022: dbc_dict('toyota_nodsu_pt_generated', None), | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2280,7 +2300,7 @@ EPS_SCALE = defaultdict(lambda: 73, {CAR.PRIUS: 66, CAR.COROLLA: 88, CAR.LEXUS_I | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# Toyota/Lexus Safety Sense 2.0 and 2.5 | 
					 | 
					 | 
					 | 
					# Toyota/Lexus Safety Sense 2.0 and 2.5 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					TSS2_CAR = {CAR.RAV4_TSS2, CAR.RAV4_TSS2_2022, CAR.RAV4_TSS2_2023, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.RAV4H_TSS2_2022, | 
					 | 
					 | 
					 | 
					TSS2_CAR = {CAR.RAV4_TSS2, CAR.RAV4_TSS2_2022, CAR.RAV4_TSS2_2023, CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2, CAR.LEXUS_ES_TSS2, CAR.LEXUS_ESH_TSS2, CAR.RAV4H_TSS2, CAR.RAV4H_TSS2_2022, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            CAR.RAV4H_TSS2_2023, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2, CAR.PRIUS_TSS2, CAR.CAMRY_TSS2, CAR.CAMRYH_TSS2, | 
					 | 
					 | 
					 | 
					            CAR.RAV4H_TSS2_2023, CAR.LEXUS_RX_TSS2, CAR.LEXUS_RXH_TSS2, CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2, CAR.PRIUS_TSS2, CAR.CAMRY_TSS2, CAR.CAMRYH_TSS2, CAR.LEXUS_IS_TSS2, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            CAR.MIRAI, CAR.LEXUS_NX_TSS2, CAR.LEXUS_NXH_TSS2, CAR.ALPHARD_TSS2, CAR.AVALON_TSS2, CAR.AVALONH_TSS2, CAR.ALPHARDH_TSS2, CAR.CHR_TSS2, CAR.CHRH_TSS2} | 
					 | 
					 | 
					 | 
					            CAR.MIRAI, CAR.LEXUS_NX_TSS2, CAR.LEXUS_NXH_TSS2, CAR.ALPHARD_TSS2, CAR.AVALON_TSS2, CAR.AVALONH_TSS2, CAR.ALPHARDH_TSS2, CAR.CHR_TSS2, CAR.CHRH_TSS2} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					NO_DSU_CAR = TSS2_CAR | {CAR.CHR, CAR.CHRH, CAR.CAMRY, CAR.CAMRYH} | 
					 | 
					 | 
					 | 
					NO_DSU_CAR = TSS2_CAR | {CAR.CHR, CAR.CHRH, CAR.CAMRY, CAR.CAMRYH} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |