From 4368dd368b5ff608beca74affc75a67ca7bbc79b Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Mon, 23 Mar 2026 01:53:27 -0500 Subject: [PATCH] opendbc: add Escalade ASCM support and drop GM dashcam gating --- opendbc_repo/opendbc/car/gm/fingerprints.py | 1 + opendbc_repo/opendbc/car/gm/interface.py | 9 +++------ opendbc_repo/opendbc/car/gm/values.py | 6 +++++- opendbc_repo/opendbc/car/tests/routes.py | 1 + opendbc_repo/opendbc/car/torque_data/substitute.toml | 1 + 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/opendbc_repo/opendbc/car/gm/fingerprints.py b/opendbc_repo/opendbc/car/gm/fingerprints.py index ef7add0e..5cfc7c88 100644 --- a/opendbc_repo/opendbc/car/gm/fingerprints.py +++ b/opendbc_repo/opendbc/car/gm/fingerprints.py @@ -206,6 +206,7 @@ FINGERPRINTS.update({ CAR.CHEVROLET_VOLT_CC: FINGERPRINTS[CAR.CHEVROLET_VOLT], CAR.GMC_ACADIA_ASCM: FINGERPRINTS[CAR.GMC_ACADIA], CAR.CHEVROLET_MALIBU_ASCM: FINGERPRINTS[CAR.CHEVROLET_MALIBU], + CAR.CADILLAC_ESCALADE_ASCM: FINGERPRINTS[CAR.CADILLAC_ESCALADE], CAR.CHEVROLET_SUBURBAN: FINGERPRINTS[CAR.CHEVROLET_SUBURBAN_CC], CAR.GMC_YUKON_CC: FINGERPRINTS[CAR.GMC_YUKON], CAR.CADILLAC_XT6: FINGERPRINTS[CAR.CHEVROLET_TRAVERSE], diff --git a/opendbc_repo/opendbc/car/gm/interface.py b/opendbc_repo/opendbc/car/gm/interface.py index c66e088b..4d280a11 100755 --- a/opendbc_repo/opendbc/car/gm/interface.py +++ b/opendbc_repo/opendbc/car/gm/interface.py @@ -339,12 +339,6 @@ class CarInterface(CarInterfaceBase): ret.openpilotLongitudinalControl = False ret.minEnableSpeed = -1. - # These cars have been put into dashcam only due to both a lack of users and test coverage. - # These cars likely still work fine. Once a user confirms each car works and a test route is - # added to opendbc/car/tests/routes.py, we can remove it from this list. - ret.dashcamOnly = candidate in {CAR.CADILLAC_ATS, CAR.HOLDEN_ASTRA, CAR.CHEVROLET_MALIBU, CAR.BUICK_REGAL} or \ - (ret.networkLocation == NetworkLocation.gateway and ret.radarUnavailable) - # Start with a baseline tuning for all GM vehicles. Override tuning as needed in each model section below. ret.lateralTuning.pid.kiBP, ret.lateralTuning.pid.kpBP = [[0.], [0.]] ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.00]] @@ -378,6 +372,9 @@ class CarInterface(CarInterfaceBase): ret.minEnableSpeed = -1. # engage speed is decided by pcm CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) + elif candidate == CAR.CADILLAC_ESCALADE_ASCM: + CarInterfaceBase.configure_torque_tune(CAR.CADILLAC_ESCALADE, ret.lateralTuning) + elif candidate in (CAR.CADILLAC_ESCALADE_ESV, CAR.CADILLAC_ESCALADE_ESV_2019): ret.minEnableSpeed = -1. # engage speed is decided by pcm diff --git a/opendbc_repo/opendbc/car/gm/values.py b/opendbc_repo/opendbc/car/gm/values.py index 02a2abd7..9fe99601 100644 --- a/opendbc_repo/opendbc/car/gm/values.py +++ b/opendbc_repo/opendbc/car/gm/values.py @@ -287,6 +287,10 @@ class CAR(Platforms): [GMCarDocs("Cadillac Escalade 2017", "Driver Assist Package")], GMCarSpecs(mass=2564, wheelbase=2.95, steerRatio=17.3), ) + CADILLAC_ESCALADE_ASCM = GMPlatformConfig( + [GMCarDocs("Cadillac Escalade 2018 ASCM Harness", "Driver Assist Package")], + CADILLAC_ESCALADE.specs, + ) CADILLAC_ESCALADE_ESV = GMASCMPlatformConfig( [GMCarDocs("Cadillac Escalade ESV 2016", "Adaptive Cruise Control (ACC) & LKAS")], GMCarSpecs(mass=2739, wheelbase=3.302, steerRatio=17.3, tireStiffnessFactor=1.0), @@ -557,7 +561,7 @@ CC_REGEN_PADDLE_CAR = { CAMERA_ACC_CAR.update(CC_ONLY_CAR) # ASCM-INT paths are only enabled when SASCM (0x2FF) is detected at runtime -ASCM_INT = {CAR.CHEVROLET_VOLT_ASCM, CAR.GMC_ACADIA_ASCM, CAR.CHEVROLET_MALIBU_ASCM} +ASCM_INT = {CAR.CHEVROLET_VOLT_ASCM, CAR.GMC_ACADIA_ASCM, CAR.CHEVROLET_MALIBU_ASCM, CAR.CADILLAC_ESCALADE_ASCM} STEER_THRESHOLD = 1.0 diff --git a/opendbc_repo/opendbc/car/tests/routes.py b/opendbc_repo/opendbc/car/tests/routes.py index 7c720aae..ea001bc1 100644 --- a/opendbc_repo/opendbc/car/tests/routes.py +++ b/opendbc_repo/opendbc/car/tests/routes.py @@ -21,6 +21,7 @@ from opendbc.car.psa.values import CAR as PSA non_tested_cars = [ MOCK.MOCK, GM.CADILLAC_ATS, + GM.CADILLAC_ESCALADE_ASCM, GM.HOLDEN_ASTRA, GM.CHEVROLET_MALIBU, HYUNDAI.GENESIS_G90, diff --git a/opendbc_repo/opendbc/car/torque_data/substitute.toml b/opendbc_repo/opendbc/car/torque_data/substitute.toml index 41105d09..75196650 100644 --- a/opendbc_repo/opendbc/car/torque_data/substitute.toml +++ b/opendbc_repo/opendbc/car/torque_data/substitute.toml @@ -54,6 +54,7 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "BUICK_LACROSSE" = "CHEVROLET_VOLT" "BUICK_REGAL" = "CHEVROLET_VOLT" +"CADILLAC_ESCALADE_ASCM" = "CADILLAC_ESCALADE" "CADILLAC_ESCALADE_ESV" = "CHEVROLET_VOLT" "CADILLAC_ATS" = "CHEVROLET_VOLT" "CHEVROLET_MALIBU" = "CHEVROLET_VOLT"