From 2d51ca95383e8c384f31f1101c0b3d1d257e6cb6 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Thu, 30 Oct 2025 22:36:32 -0500 Subject: [PATCH] Revert "Pedal Panda?" This reverts commit 938fe7a08851786d65484dec8b70b508339a0dc1. --- panda/board/obj/bootstub.panda.bin | Bin 14876 -> 14876 bytes panda/board/obj/bootstub.panda_h7.bin | Bin 16944 -> 16944 bytes panda/board/obj/panda.bin.signed | Bin 60816 -> 60924 bytes panda/board/obj/panda_h7.bin.signed | Bin 69648 -> 69756 bytes panda/board/safety/safety_gm.h | 34 +++++++++++++++++++++++--- selfdrive/car/gm/carstate.py | 2 +- selfdrive/car/gm/values.py | 18 +++++++------- 7 files changed, 40 insertions(+), 14 deletions(-) diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index 64a21168847e5ceb7725c23c1c76512efafec979..ac228d7a0f75698e95a3b8214dc67b5755e43367 100755 GIT binary patch delta 20 bcmbPJGN)w2ZDV%xq?ELzMDxv$jIG!JU+D-- delta 20 bcmbPJGN)w2ZDaPtv_xZL1EbB4jIG!JT{j2b diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index d71ae3b4448df2080aa0f07e763ee94d354f7294..89be15112966e60bf26383b796202ac7fa8d7d36 100755 GIT binary patch delta 22 ccmdnc!ngs5X4|lvC#9q%C7N$uWYfnA0A*wddH?_b delta 22 ccmdnc!ngs5X4|kQrX?C18yIa~WYfnA0AjKT4FCWD diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index c3fe43669d582fb10dc0ec1f5c25707f8793c4f9..f267f4e25076de490bae82d0b44a7d1ec7e023d2 100644 GIT binary patch delta 6580 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 Q8Xi3N!TXUJwJ7O-0f+e1+5i9m delta 6723 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 4) != 0U; } @@ -192,6 +199,12 @@ static void gm_rx_hook(const CANPacket_t *to_push) { } generic_rx_checks(stock_ecu_detected); } + // Cruise check for Gen2 Bolt (ASCMActiveCruiseControlStatus on bus 2) + int addr = GET_ADDR(to_push); + if ((addr == 0x370) && (GET_BUS(to_push) == 2U)) { + bool cruise_engaged = (GET_BYTE(to_push, 2) >> 7) != 0U; // ACCCmdActive + cruise_engaged_prev = cruise_engaged; + } } static bool gm_tx_hook(const CANPacket_t *to_send) { @@ -246,6 +259,11 @@ static bool gm_tx_hook(const CANPacket_t *to_send) { int button = (GET_BYTE(to_send, 5) >> 4) & 0x7U; bool allowed_btn = (button == GM_BTN_CANCEL) && cruise_engaged_prev; + // For ACC cars with pedal interceptor, allow cancel even if cruise_engaged_prev is false + // (since we set it to false to prevent conflicts, but still need to cancel cruise) + if (gm_hw == GM_CAM && enable_gas_interceptor && button == GM_BTN_CANCEL) { + allowed_btn = true; + } // For standard CC, allow spamming of SET / RESUME if (gm_cc_long) { allowed_btn |= cruise_engaged_prev && (button == GM_BTN_SET || button == GM_BTN_RESUME || button == GM_BTN_UNPRESS); @@ -288,9 +306,13 @@ static int gm_fwd_hook(int bus_num, int addr) { } if (bus_num == 2) { - // block lkas message and acc messages if gm_cam_long, forward all others + // block lkas message and acc messages + // Block 0x370 only for experimental long without pedal interceptor bool is_lkas_msg = (addr == 0x180); - bool is_acc_msg = (addr == 0x315) || (addr == 0x2CB) || (addr == 0x370); + bool is_acc_msg = (addr == 0x315) || (addr == 0x2CB); + if (gm_cam_long && !enable_gas_interceptor) { + is_acc_msg = is_acc_msg || (addr == 0x370); + } bool block_msg = is_lkas_msg || (is_acc_msg && gm_cam_long); if (!block_msg) { bus_fwd = 0; @@ -322,6 +344,10 @@ static safety_config gm_init(uint16_t param) { gm_pedal_long = GET_FLAG(param, GM_PARAM_PEDAL_LONG); gm_cc_long = GET_FLAG(param, GM_PARAM_CC_LONG); gm_cam_long = GET_FLAG(param, GM_PARAM_HW_CAM_LONG) && !gm_cc_long; + // Block ACC messages when pedal interceptor is active on ACC models + if (gm_hw == GM_CAM && enable_gas_interceptor) { + gm_cam_long = true; + } gm_pcm_cruise = ((gm_hw == GM_CAM) && (!gm_cam_long || gm_cc_long) && !gm_force_ascm && !gm_pedal_long) || (gm_hw == GM_SDGM); gm_skip_relay_check = GET_FLAG(param, GM_PARAM_NO_CAMERA); gm_has_acc = !GET_FLAG(param, GM_PARAM_NO_ACC); diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index bde897ca1..c6977b5bb 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -163,7 +163,7 @@ class CarState(CarStateBase): if self.CP.carFingerprint in CC_ONLY_CAR: ret.accFaulted = False ret.cruiseState.speed = pt_cp.vl["ECMCruiseControl"]["CruiseSetSpeed"] * CV.KPH_TO_MS - # Try ECM first for cars that might have it (like most GMs), fall back to ASCM + # Try ASCM first for cars that might have it (like misfingerprinted Bolts), fall back to ECM try: ret.cruiseState.enabled = cam_cp.vl["ASCMActiveCruiseControlStatus"]["ACCCmdActive"] != 0 except: diff --git a/selfdrive/car/gm/values.py b/selfdrive/car/gm/values.py index 21c0188f3..4402c38c2 100644 --- a/selfdrive/car/gm/values.py +++ b/selfdrive/car/gm/values.py @@ -42,8 +42,8 @@ class CarControllerParams: self.MAX_BRAKE = 400 # ~ -4.0 m/s^2 with regen if CP.carFingerprint in CAMERA_ACC_CAR and CP.carFingerprint not in CC_ONLY_CAR: - self.MAX_GAS = 7496 - self.MAX_GAS_PLUS = 7496 + self.MAX_GAS = 8848 + self.MAX_GAS_PLUS = 8848 self.MAX_ACC_REGEN = 5610 self.INACTIVE_REGEN = 5650 # Camera ACC vehicles have no regen while enabled. @@ -52,17 +52,17 @@ class CarControllerParams: self.BRAKE_SWITCH_MAX = self.MAX_ACC_REGEN if CP.carFingerprint in EV_CAR else self.ZERO_GAS elif CP.carFingerprint in SDGM_CAR: - self.MAX_GAS = 7168 - self.MAX_GAS_PLUS = 7168 - self.MAX_ACC_REGEN = 5500 - self.INACTIVE_REGEN = 5500 + self.MAX_GAS = 7496 + self.MAX_GAS_PLUS = 7496 + self.MAX_ACC_REGEN = 5610 + self.INACTIVE_REGEN = 5650 max_regen_acceleration = 0. self.BRAKE_SWITCH = self.ZERO_GAS else: - self.MAX_GAS = 7168 # Safety limit, not ACC max. Stock ACC >8192 from standstill. - self.MAX_GAS_PLUS = 7168 # 8292 uses new bit, possible but not tested. Matches Twilsonco tw-main max - self.MAX_ACC_REGEN = 5500 # Max ACC regen is slightly less than max paddle regen + self.MAX_GAS = 8191 # Safety limit, not ACC max. Stock ACC >8192 from standstill. + self.MAX_GAS_PLUS = 8191 # 8292 uses new bit, possible but not tested. Matches Twilsonco tw-main max + self.MAX_ACC_REGEN = 7110 # Max ACC regen is slightly less than max paddle regen self.INACTIVE_REGEN = 5500 # ICE has much less engine braking force compared to regen in EVs, # lower threshold removes some braking deadzone