diff --git a/opendbc/car/subaru/values.py b/opendbc/car/subaru/values.py index a702d394..0d1ac878 100644 --- a/opendbc/car/subaru/values.py +++ b/opendbc/car/subaru/values.py @@ -19,10 +19,9 @@ class CarControllerParams: self.STEER_DRIVER_FACTOR = 1 # from dbc if CP.flags & SubaruFlags.GLOBAL_GEN2: - # TODO: lower rate limits, this reaches min/max in 0.5s which negatively affects tuning - self.STEER_MAX = 1000 - self.STEER_DELTA_UP = 40 - self.STEER_DELTA_DOWN = 40 + self.STEER_MAX = 1500 + self.STEER_DELTA_UP = 35 + self.STEER_DELTA_DOWN = 50 elif CP.carFingerprint == CAR.SUBARU_IMPREZA_2020: self.STEER_DELTA_UP = 35 self.STEER_MAX = 1439 diff --git a/opendbc/safety/modes/subaru.h b/opendbc/safety/modes/subaru.h index 1bbeaaba..46f302a0 100644 --- a/opendbc/safety/modes/subaru.h +++ b/opendbc/safety/modes/subaru.h @@ -149,7 +149,7 @@ static void subaru_rx_hook(const CANPacket_t *msg) { static bool subaru_tx_hook(const CANPacket_t *msg) { const TorqueSteeringLimits SUBARU_STEERING_LIMITS = SUBARU_STEERING_LIMITS_GENERATOR(2047, 50, 70); - const TorqueSteeringLimits SUBARU_GEN2_STEERING_LIMITS = SUBARU_STEERING_LIMITS_GENERATOR(1000, 40, 40); + const TorqueSteeringLimits SUBARU_GEN2_STEERING_LIMITS = SUBARU_STEERING_LIMITS_GENERATOR(1500, 35, 50); const LongitudinalLimits SUBARU_LONG_LIMITS = { .min_gas = 808, // appears to be engine braking diff --git a/opendbc/safety/tests/test_subaru.py b/opendbc/safety/tests/test_subaru.py index 9eae7c86..6143a041 100755 --- a/opendbc/safety/tests/test_subaru.py +++ b/opendbc/safety/tests/test_subaru.py @@ -196,9 +196,9 @@ class TestSubaruGen2TorqueSafetyBase(TestSubaruTorqueSafetyBase): ALT_MAIN_BUS = SUBARU_ALT_BUS ALT_CAM_BUS = SUBARU_ALT_BUS - MAX_RATE_UP = 40 - MAX_RATE_DOWN = 40 - MAX_TORQUE_LOOKUP = [0], [1000] + MAX_RATE_UP = 35 + MAX_RATE_DOWN = 50 + MAX_TORQUE_LOOKUP = [0], [1500] class TestSubaruGen2TorqueStockLongitudinalSafety(TestSubaruStockLongitudinalSafetyBase, TestSubaruGen2TorqueSafetyBase):