From f3ae671270b954031d064f7b669ebf38fe490714 Mon Sep 17 00:00:00 2001 From: Martin Lillepuu Date: Thu, 29 Aug 2024 07:21:15 +0300 Subject: [PATCH 1/5] Subaru: driver torque sensor Nm scaling factor and unit --- opendbc/dbc/generator/subaru/_subaru_global.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/generator/subaru/_subaru_global.dbc b/opendbc/dbc/generator/subaru/_subaru_global.dbc index 69c8361938..e843fb4ea6 100644 --- a/opendbc/dbc/generator/subaru/_subaru_global.dbc +++ b/opendbc/dbc/generator/subaru/_subaru_global.dbc @@ -88,7 +88,7 @@ BO_ 280 Steering_Torque_2: 8 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Steer_Torque_Output : 13|11@1- (-10,0) [0|255] "" XXX SG_ Signal1 : 24|8@1+ (1,0) [0|511] "" XXX - SG_ Steer_Torque_Sensor : 45|11@1- (-1,0) [0|255] "" XXX + SG_ Steer_Torque_Sensor : 45|11@1- (-0.012,0) [0|255] "Nm" XXX SG_ Steering_Active : 61|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Disabled : 63|1@1+ (1,0) [0|1] "" XXX From 2475ce1533be38e4e9a429e00bec217fce132625 Mon Sep 17 00:00:00 2001 From: Martin Lillepuu Date: Thu, 29 Aug 2024 07:40:52 +0300 Subject: [PATCH 2/5] run generator --- opendbc/dbc/subaru_global_2017_generated.dbc | 2 +- opendbc/dbc/subaru_global_2020_hybrid_generated.dbc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/dbc/subaru_global_2017_generated.dbc b/opendbc/dbc/subaru_global_2017_generated.dbc index 9732feae15..a309d29006 100644 --- a/opendbc/dbc/subaru_global_2017_generated.dbc +++ b/opendbc/dbc/subaru_global_2017_generated.dbc @@ -92,7 +92,7 @@ BO_ 280 Steering_Torque_2: 8 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Steer_Torque_Output : 13|11@1- (-10,0) [0|255] "" XXX SG_ Signal1 : 24|8@1+ (1,0) [0|511] "" XXX - SG_ Steer_Torque_Sensor : 45|11@1- (-1,0) [0|255] "" XXX + SG_ Steer_Torque_Sensor : 45|11@1- (-0.012,0) [0|255] "Nm" XXX SG_ Steering_Active : 61|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Disabled : 63|1@1+ (1,0) [0|1] "" XXX diff --git a/opendbc/dbc/subaru_global_2020_hybrid_generated.dbc b/opendbc/dbc/subaru_global_2020_hybrid_generated.dbc index c41eaf9965..5d7e006c3a 100644 --- a/opendbc/dbc/subaru_global_2020_hybrid_generated.dbc +++ b/opendbc/dbc/subaru_global_2020_hybrid_generated.dbc @@ -92,7 +92,7 @@ BO_ 280 Steering_Torque_2: 8 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Steer_Torque_Output : 13|11@1- (-10,0) [0|255] "" XXX SG_ Signal1 : 24|8@1+ (1,0) [0|511] "" XXX - SG_ Steer_Torque_Sensor : 45|11@1- (-1,0) [0|255] "" XXX + SG_ Steer_Torque_Sensor : 45|11@1- (-0.012,0) [0|255] "Nm" XXX SG_ Steering_Active : 61|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Disabled : 63|1@1+ (1,0) [0|1] "" XXX From 1b95d19535f1d9927129e1420f0062b1fddc370e Mon Sep 17 00:00:00 2001 From: Martin Lillepuu Date: Thu, 29 Aug 2024 07:46:24 +0300 Subject: [PATCH 3/5] Subaru: update carstate to use new steeringTorque signal --- opendbc/car/subaru/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/subaru/carstate.py b/opendbc/car/subaru/carstate.py index 84fa215815..6ff2c8c8a7 100644 --- a/opendbc/car/subaru/carstate.py +++ b/opendbc/car/subaru/carstate.py @@ -68,7 +68,7 @@ def update(self, cp, cp_cam, _, cp_body, __) -> structs.CarState: # ideally we get this from the car, but unclear if it exists. diagnostic software doesn't even have it ret.steeringRateDeg = self.angle_rate_calulator.update(ret.steeringAngleDeg, cp.vl["Steering_Torque"]["COUNTER"]) - ret.steeringTorque = cp.vl["Steering_Torque"]["Steer_Torque_Sensor"] + ret.steeringTorque = cp.vl["Steering_Torque_2"]["Steer_Torque_Sensor"] ret.steeringTorqueEps = cp.vl["Steering_Torque"]["Steer_Torque_Output"] steer_threshold = 75 if self.CP.flags & SubaruFlags.PREGLOBAL else 80 From 5f6410354c0a759fcae0b0d64e1418bf4cff7ab9 Mon Sep 17 00:00:00 2001 From: Martin Lillepuu Date: Thu, 29 Aug 2024 08:06:44 +0300 Subject: [PATCH 4/5] Subaru: add Steering_Torque_2 to can parser --- opendbc/car/subaru/carstate.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/subaru/carstate.py b/opendbc/car/subaru/carstate.py index 6ff2c8c8a7..ee84aa78bd 100644 --- a/opendbc/car/subaru/carstate.py +++ b/opendbc/car/subaru/carstate.py @@ -169,6 +169,7 @@ def get_can_parser(CP): # sig_address, frequency ("Dashlights", 10), ("Steering_Torque", 50), + ("Steering_Torque_2", 50), ("BodyInfo", 1), ("Brake_Pedal", 50), ] From 857eb9941479dcbc89a605a7761497d99a3aaba2 Mon Sep 17 00:00:00 2001 From: Martin Lillepuu Date: Sun, 8 Sep 2024 20:20:55 +0300 Subject: [PATCH 5/5] subaru: update driver toruque scaling factor to use nm --- opendbc/car/subaru/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/subaru/values.py b/opendbc/car/subaru/values.py index 15b8a8b8ec..afd3b7dc05 100644 --- a/opendbc/car/subaru/values.py +++ b/opendbc/car/subaru/values.py @@ -17,7 +17,7 @@ def __init__(self, CP): self.STEER_DELTA_DOWN = 70 # torque decrease per refresh self.STEER_DRIVER_ALLOWANCE = 60 # allowed driver torque before start limiting self.STEER_DRIVER_MULTIPLIER = 50 # weight driver torque heavily - self.STEER_DRIVER_FACTOR = 1 # from dbc + self.STEER_DRIVER_FACTOR = 0.012 # from dbc if CP.flags & SubaruFlags.GLOBAL_GEN2: self.STEER_MAX = 1000