From f67b2d5177557f95a9586f17274baac4349c4512 Mon Sep 17 00:00:00 2001 From: Sathans Date: Wed, 4 Mar 2026 20:08:42 +0100 Subject: [PATCH 1/3] Add -1 offset to SET_SPEED --- opendbc/dbc/generator/nissan/_nissan_common.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/generator/nissan/_nissan_common.dbc b/opendbc/dbc/generator/nissan/_nissan_common.dbc index 46a65a7b7e1..07967e182e5 100644 --- a/opendbc/dbc/generator/nissan/_nissan_common.dbc +++ b/opendbc/dbc/generator/nissan/_nissan_common.dbc @@ -47,7 +47,7 @@ BO_ 689 PROPILOT_HUD: 8 XXX SG_ AUDIBLE_TONE : 47|3@0+ (1,0) [0|8] "" XXX SG_ SPEED_SET_ICON : 7|2@0+ (1,0) [0|3] "" XXX SG_ SMALL_STEERING_WHEEL_ICON : 42|3@0+ (1,0) [0|7] "" XXX - SG_ SET_SPEED : 39|8@0+ (1,0) [0|255] "" XXX + SG_ SET_SPEED : 39|8@0+ (1,-1) [0|255] "" XXX SG_ unknown02 : 1|2@0+ (1,0) [0|3] "" XXX SG_ unknown05 : 5|2@0+ (1,0) [0|3] "" XXX SG_ unknown08 : 8|7@0+ (1,0) [0|63] "" XXX From 2904518b521f707f81e56d9d311006c9c8305701 Mon Sep 17 00:00:00 2001 From: Sathans Date: Wed, 4 Mar 2026 20:10:04 +0100 Subject: [PATCH 2/3] Correct speedCluster calculation in carstate.py Fix speedCluster calculation to match actual speed. The offset is moved to dbc file --- opendbc/car/nissan/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/nissan/carstate.py b/opendbc/car/nissan/carstate.py index 8f38590ad5f..8d474724b76 100644 --- a/opendbc/car/nissan/carstate.py +++ b/opendbc/car/nissan/carstate.py @@ -84,7 +84,7 @@ def update(self, can_parsers) -> structs.CarState: else: conversion = CV.MPH_TO_MS if cp.vl["HUD"]["SPEED_MPH"] else CV.KPH_TO_MS ret.cruiseState.speed = speed * conversion - ret.cruiseState.speedCluster = (speed - 1) * conversion # Speed on HUD is always 1 lower than actually sent on can bus + ret.cruiseState.speedCluster = speed * conversion if self.CP.carFingerprint == CAR.NISSAN_ALTIMA: ret.steeringTorque = cp_cam.vl["STEER_TORQUE_SENSOR"]["STEER_TORQUE_DRIVER"] From 99c369192a450368903228c66b4fd68d375466f6 Mon Sep 17 00:00:00 2001 From: Sathans Date: Mon, 23 Mar 2026 11:55:06 +0100 Subject: [PATCH 3/3] Remove speedCluster assignment from cruiseState Remove redundant speedCluster assignment in cruiseState. --- opendbc/car/nissan/carstate.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/nissan/carstate.py b/opendbc/car/nissan/carstate.py index 8d474724b76..a91fa9517e3 100644 --- a/opendbc/car/nissan/carstate.py +++ b/opendbc/car/nissan/carstate.py @@ -84,7 +84,6 @@ def update(self, can_parsers) -> structs.CarState: else: conversion = CV.MPH_TO_MS if cp.vl["HUD"]["SPEED_MPH"] else CV.KPH_TO_MS ret.cruiseState.speed = speed * conversion - ret.cruiseState.speedCluster = speed * conversion if self.CP.carFingerprint == CAR.NISSAN_ALTIMA: ret.steeringTorque = cp_cam.vl["STEER_TORQUE_SENSOR"]["STEER_TORQUE_DRIVER"]