From d7e08a74473eee190535c0f2df7efc2ee7c449d1 Mon Sep 17 00:00:00 2001 From: MoreTorque <104254025+MoreTore@users.noreply.github.com> Date: Sun, 1 Mar 2026 08:41:30 -0600 Subject: [PATCH] fix mazda gen1 --- panda/board/safety/safety_mazda.h | 11 ++++++++++- selfdrive/car/mazda/carcontroller.py | 7 +++++-- selfdrive/car/mazda/mazdacan.py | 8 ++++---- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/panda/board/safety/safety_mazda.h b/panda/board/safety/safety_mazda.h index cb2934ce8..8b77d29d8 100644 --- a/panda/board/safety/safety_mazda.h +++ b/panda/board/safety/safety_mazda.h @@ -101,6 +101,15 @@ RxCheck mazda_rx_checks[] = { }; RxCheck mazda_ti_rx_checks[] = { + {.msg = {{MAZDA_CRZ_CTRL, 0, 8, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{MAZDA_CRZ_BTNS, 0, 8, .frequency = 10U}, { 0 }, { 0 }}}, + {.msg = {{MAZDA_STEER_TORQUE, 0, 8, .frequency = 83U}, { 0 }, { 0 }}}, + {.msg = {{MAZDA_ENGINE_DATA, 0, 8, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MAZDA_PEDALS, 0, 8, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{TI_STEER_TORQUE, 1, 8, .frequency = 50U}, { 0 }, { 0 }}}, +}; + +RxCheck mazda_ti_no_mrcc_rx_checks[] = { {.msg = {{MAZDA_CRZ_BTNS, 0, 8, .frequency = 10U}, { 0 }, { 0 }}}, {.msg = {{MAZDA_STEER_TORQUE, 0, 8, .frequency = 83U}, { 0 }, { 0 }}}, {.msg = {{MAZDA_ENGINE_DATA, 0, 8, .frequency = 100U}, { 0 }, { 0 }}}, @@ -314,7 +323,7 @@ static safety_config mazda_init(uint16_t param) { } else if (radar_interceptor) { SET_TX_MSGS(MAZDA_RI_TX_MSGS, ret); } else if (torque_interceptor) { - SET_RX_CHECKS(mazda_ti_rx_checks, ret); + SET_RX_CHECKS(no_mrcc ? mazda_ti_no_mrcc_rx_checks : mazda_ti_rx_checks, ret); SET_TX_MSGS(MAZDA_TI_TX_MSGS, ret); } else { SET_TX_MSGS(MAZDA_TX_MSGS, ret); diff --git a/selfdrive/car/mazda/carcontroller.py b/selfdrive/car/mazda/carcontroller.py index 696674767..7183298b2 100644 --- a/selfdrive/car/mazda/carcontroller.py +++ b/selfdrive/car/mazda/carcontroller.py @@ -159,8 +159,11 @@ class CarController(CarControllerBase): can_sends.append(mazdacan.create_acc_cmd(self, self.packer, CS.acc, hold, resume)) # send steering command - can_sends.extend(mazdacan.create_steering_control(self.packer, self.CP, - self.frame, apply_steer, CS.cam_lkas)) + can_sends.extend(mazdacan.create_steering_control( + self.packer, self.CP, + self.frame, apply_steer, CS.cam_lkas, + ti_apply_steer if CP.flags & MazdaSafetyFlags.TORQUE_INTERCEPTOR else None + )) new_actuators = CC.actuators.as_builder() new_actuators.steer = apply_steer / self.ccp.STEER_MAX diff --git a/selfdrive/car/mazda/mazdacan.py b/selfdrive/car/mazda/mazdacan.py index 7beac2240..34b5ec98e 100644 --- a/selfdrive/car/mazda/mazdacan.py +++ b/selfdrive/car/mazda/mazdacan.py @@ -1,7 +1,7 @@ from openpilot.selfdrive.car.mazda.values import Buttons, MazdaFlags from openpilot.common.numpy_fast import clip -def create_steering_control(packer, CP, frame, apply_steer, lkas): +def create_steering_control(packer, CP, frame, apply_steer, lkas, ti_apply_steer = None): msgs = [] if CP.flags & MazdaFlags.GEN1: if not CP.flags & MazdaFlags.NO_FSC: @@ -59,10 +59,10 @@ def create_steering_control(packer, CP, frame, apply_steer, lkas): } msgs.append(packer.make_can_msg("CAM_LKAS", 0, values)) - if CP.flags & MazdaFlags.TORQUE_INTERCEPTOR: + if ti_apply_steer is not None: values = { - "LKAS_REQUEST" : apply_steer, - "CHKSUM" : apply_steer, + "LKAS_REQUEST" : ti_apply_steer, + "CHKSUM" : ti_apply_steer, "KEY" : 3294744160 } msgs.append(packer.make_can_msg("CAM_LKAS2", 1, values))