From fbeab7146aa7a86c41295b88c5cf10f27172c149 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:19:09 -0500 Subject: [PATCH 1/7] move alt brake to electric brake autodetect --- opendbc/car/honda/values.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/opendbc/car/honda/values.py b/opendbc/car/honda/values.py index 4171a02e7b0..4779433dc7b 100644 --- a/opendbc/car/honda/values.py +++ b/opendbc/car/honda/values.py @@ -51,7 +51,7 @@ def __init__(self, CP): class HondaSafetyFlags(IntFlag): - ALT_BRAKE = 1 + ELECTRIC_BRAKE_BOOSTER = 1 BOSCH_LONG = 2 NIDEC_ALT = 4 RADARLESS = 8 @@ -62,7 +62,7 @@ class HondaFlags(IntFlag): # Detected flags # Bosch models with alternate set of LKAS_HUD messages BOSCH_EXT_HUD = 1 - BOSCH_ALT_BRAKE = 2 + BOSCH_ELECTRIC_BRAKE_BOOSTER = 2 # Static flags BOSCH = 4 @@ -209,7 +209,6 @@ class CAR(Platforms): # steerRatio: 12.3 is spec end-to-end CarSpecs(mass=3410 * CV.LB_TO_KG, wheelbase=2.66, steerRatio=16.0, centerToFrontRatio=0.41, tireStiffnessFactor=0.677), {Bus.pt: 'honda_civic_hatchback_ex_2017_can_generated', Bus.body: 'honda_crv_ex_2017_body_generated'}, - flags=HondaFlags.BOSCH_ALT_BRAKE, ) HONDA_CRV_6G = HondaBoschCANFDPlatformConfig( [ @@ -240,7 +239,6 @@ class CAR(Platforms): [HondaCarDocs("Acura RDX 2019-21", "All", min_steer_speed=3. * CV.MPH_TO_MS)], CarSpecs(mass=4068 * CV.LB_TO_KG, wheelbase=2.75, steerRatio=11.95, centerToFrontRatio=0.41, tireStiffnessFactor=0.677), # as spec {Bus.pt: 'acura_rdx_2020_can_generated'}, - flags=HondaFlags.BOSCH_ALT_BRAKE, ) HONDA_INSIGHT = HondaBoschPlatformConfig( [HondaCarDocs("Honda Insight 2019-22", "All", min_steer_speed=3. * CV.MPH_TO_MS)], @@ -269,7 +267,7 @@ class CAR(Platforms): [HondaCarDocs("Honda Odyssey 2021-26", "All", min_steer_speed=70. * CV.KPH_TO_MS)], CarSpecs(mass=4590 * CV.LB_TO_KG, wheelbase=3.00, steerRatio=19.4, centerToFrontRatio=0.41), {Bus.pt: 'acura_rdx_2020_can_generated'}, - flags=HondaFlags.BOSCH_ALT_BRAKE | HondaFlags.BOSCH_ALT_RADAR, + flags=HondaFlags.BOSCH_ALT_RADAR, ) ACURA_TLX_2G = HondaBoschPlatformConfig( [HondaCarDocs("Acura TLX 2021", "All")], From 70d27885bcb5633a01b14a45d0865e1bdf79d711 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:20:51 -0500 Subject: [PATCH 2/7] Rename alt_brake to electric_brake_booster and make autodetect --- opendbc/car/honda/interface.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/honda/interface.py b/opendbc/car/honda/interface.py index 897c1fcd3e6..a56163914c5 100755 --- a/opendbc/car/honda/interface.py +++ b/opendbc/car/honda/interface.py @@ -195,11 +195,11 @@ def _get_params(ret: structs.CarParams, candidate, fingerprint, car_fw, alpha_lo CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) # These cars use alternate user brake msg (0x1BE) - if 0x1BE in fingerprint[CAN.pt] and candidate in (CAR.HONDA_ACCORD, CAR.HONDA_HRV_3G, *HONDA_BOSCH_CANFD): - ret.flags |= HondaFlags.BOSCH_ALT_BRAKE.value + if 0x1BE in fingerprint[CAN.pt]: + ret.flags |= HondaFlags.BOSCH_ELECTRIC_BRAKE_BOOSTER.value - if ret.flags & HondaFlags.BOSCH_ALT_BRAKE: - ret.safetyConfigs[-1].safetyParam |= HondaSafetyFlags.ALT_BRAKE.value + if ret.flags & HondaFlags.BOSCH_ELECTRIC_BRAKE_BOOSTER: + ret.safetyConfigs[-1].safetyParam |= HondaSafetyFlags.ELECTRIC_BRAKE_BOOSTER.value if candidate in HONDA_NIDEC_ALT_SCM_MESSAGES: ret.safetyConfigs[-1].safetyParam |= HondaSafetyFlags.NIDEC_ALT.value if ret.openpilotLongitudinalControl and candidate in HONDA_BOSCH: From 3e6d560a6c50891c670fe8f69fe781100753b23f Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:21:26 -0500 Subject: [PATCH 3/7] rename to electric_brake_booster --- opendbc/car/honda/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/honda/carstate.py b/opendbc/car/honda/carstate.py index 334491968fe..6e5463ecabe 100644 --- a/opendbc/car/honda/carstate.py +++ b/opendbc/car/honda/carstate.py @@ -168,7 +168,7 @@ def update(self, can_parsers) -> structs.CarState: else: ret.cruiseState.speed = cp.vl["CRUISE"]["CRUISE_SPEED_PCM"] * CV.KPH_TO_MS - if self.CP.flags & HondaFlags.BOSCH_ALT_BRAKE: + if self.CP.flags & HondaFlags.BOSCH_ELECTRIC_BRAKE_BOOSTER: ret.brakePressed = cp.vl["BRAKE_MODULE"]["BRAKE_PRESSED"] != 0 else: # brake switch has shown some single time step noise, so only considered when From 7e95e60da9a8fd867d9332fa375220a080249ad6 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:27:08 -0500 Subject: [PATCH 4/7] Rename alt_brake to elec_brake --- opendbc/safety/modes/honda.h | 42 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/opendbc/safety/modes/honda.h b/opendbc/safety/modes/honda.h index 9f49ef762ce..1cca23c6fc5 100644 --- a/opendbc/safety/modes/honda.h +++ b/opendbc/safety/modes/honda.h @@ -13,8 +13,8 @@ HONDA_COMMON_NO_SCM_FEEDBACK_RX_CHECKS(pt_bus) \ {.msg = {{0x326, (pt_bus), 8, 10U, .max_counter = 3U, .ignore_quality_flag = true}, { 0 }, { 0 }}}, /* SCM_FEEDBACK */ \ -// Alternate brake message is used on some Honda Bosch, and Honda Bosch radarless (where PT bus is 0) -#define HONDA_ALT_BRAKE_ADDR_CHECK(pt_bus) \ +// Electric brake booster message is used on some Honda Bosch, and Honda Bosch radarless (where PT bus is 0) +#define HONDA_ELEC_BRAKE_ADDR_CHECK(pt_bus) \ {.msg = {{0x1BE, (pt_bus), 3, 50U, .max_counter = 3U, .ignore_quality_flag = true}, { 0 }, { 0 }}}, /* BRAKE_MODULE */ \ enum { @@ -27,7 +27,7 @@ enum { static int honda_brake = 0; static bool honda_brake_switch_prev = false; -static bool honda_alt_brake_msg = false; +static bool honda_elec_brake_msg = false; static bool honda_fwd_brake = false; static bool honda_bosch_long = false; static bool honda_bosch_radarless = false; @@ -120,13 +120,13 @@ static void honda_rx_hook(const CANPacket_t *msg) { cruise_button_prev = button; } - // user brake signal on 0x17C reports applied brake from computer brake on accord - // and crv, which prevents the usual brake safety from working correctly. these - // cars have a signal on 0x1BE which only detects user's brake being applied so - // in these cases, this is used instead. - // most hondas: 0x17C - // accord, crv: 0x1BE - if (honda_alt_brake_msg) { + // user brake signal on 0x17C reports applied brake from computer brake on models + // with an electric brake booster, which prevents the usual brake safety from working + // correctly. these cars have a signal on 0x1BE which only detects user's brake being + // applied so in these cases, this is used instead. + // without electric brake booster: 0x17C + // with electric brake booster: 0x1BE + if (honda_elec_brake_msg) { if (msg->addr == 0x1BEU) { brake_pressed = GET_BIT(msg, 4U); } @@ -285,7 +285,7 @@ static safety_config honda_nidec_init(uint16_t param) { honda_brake = 0; honda_brake_switch_prev = false; honda_fwd_brake = false; - honda_alt_brake_msg = false; + honda_elec_brake_msg = false; honda_bosch_long = false; honda_bosch_radarless = false; honda_bosch_canfd = false; @@ -334,7 +334,7 @@ static safety_config honda_bosch_init(uint16_t param) { static CanMsg HONDA_CANFD_TX_MSGS[] = {{0xE4, 0, 5, .check_relay = true}, {0x296, 0, 4, .check_relay = false}, {0x33D, 0, 8, .check_relay = true}}; - const uint16_t HONDA_PARAM_ALT_BRAKE = 1; + const uint16_t HONDA_PARAM_ELEC_BRAKE = 1; const uint16_t HONDA_PARAM_RADARLESS = 8; const uint16_t HONDA_PARAM_BOSCH_CANFD = 16; @@ -343,9 +343,9 @@ static safety_config honda_bosch_init(uint16_t param) { HONDA_COMMON_RX_CHECKS(0) }; - static RxCheck honda_bosch_pt0_alt_brake_rx_checks[] = { + static RxCheck honda_bosch_pt0_elec_brake_rx_checks[] = { HONDA_COMMON_RX_CHECKS(0) - HONDA_ALT_BRAKE_ADDR_CHECK(0) + HONDA_ELEC_BRAKE_ADDR_CHECK(0) }; // Bosch has powertrain on bus 1, verified 0x1A6 does not exist @@ -353,9 +353,9 @@ static safety_config honda_bosch_init(uint16_t param) { HONDA_COMMON_RX_CHECKS(1) }; - static RxCheck honda_bosch_pt1_alt_brake_rx_checks[] = { + static RxCheck honda_bosch_pt1_elec_brake_rx_checks[] = { HONDA_COMMON_RX_CHECKS(1) - HONDA_ALT_BRAKE_ADDR_CHECK(1) + HONDA_ELEC_BRAKE_ADDR_CHECK(1) }; honda_hw = HONDA_BOSCH; @@ -363,7 +363,7 @@ static safety_config honda_bosch_init(uint16_t param) { honda_bosch_radarless = GET_FLAG(param, HONDA_PARAM_RADARLESS); honda_bosch_canfd = GET_FLAG(param, HONDA_PARAM_BOSCH_CANFD); // Checking for alternate brake override from safety parameter - honda_alt_brake_msg = GET_FLAG(param, HONDA_PARAM_ALT_BRAKE); + honda_elec_brake_msg = GET_FLAG(param, HONDA_PARAM_ELEC_BRAKE); // radar disabled so allow gas/brakes #ifdef ALLOW_DEBUG @@ -373,14 +373,14 @@ static safety_config honda_bosch_init(uint16_t param) { safety_config ret; if (honda_bosch_radarless || honda_bosch_canfd) { - if (honda_alt_brake_msg) { - SET_RX_CHECKS(honda_bosch_pt0_alt_brake_rx_checks, ret); + if (honda_elec_brake_msg) { + SET_RX_CHECKS(honda_bosch_pt0_elec_brake_rx_checks, ret); } else { SET_RX_CHECKS(honda_bosch_pt0_rx_checks, ret); } } else { - if (honda_alt_brake_msg) { - SET_RX_CHECKS(honda_bosch_pt1_alt_brake_rx_checks, ret); + if (honda_elec_brake_msg) { + SET_RX_CHECKS(honda_bosch_pt1_elec_brake_rx_checks, ret); } else { SET_RX_CHECKS(honda_bosch_pt1_rx_checks, ret); } From f829ad926f07fe33cc71428834553836f64cbec9 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:31:22 -0500 Subject: [PATCH 5/7] rename to electric_brake_booster --- opendbc/safety/tests/test_honda.py | 42 +++++++++++++++--------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/opendbc/safety/tests/test_honda.py b/opendbc/safety/tests/test_honda.py index 44220095aa9..69bddd38edd 100755 --- a/opendbc/safety/tests/test_honda.py +++ b/opendbc/safety/tests/test_honda.py @@ -376,7 +376,7 @@ def setUp(self): self.packer = CANPackerSafety("honda_civic_hatchback_ex_2017_can_generated") self.safety = libsafety_py.libsafety - def _alt_brake_msg(self, brake): + def _elec_brake_msg(self, brake): values = {"BRAKE_PRESSED": brake, "COUNTER": self.cnt_brake % 4} self.__class__.cnt_brake += 1 return self.packer.make_can_msg_safety("BRAKE_MODULE", self.PT_BUS, values) @@ -394,36 +394,36 @@ def test_spam_cancel_safety_check(self): self.assertTrue(self._tx(self._button_msg(Btn.RESUME, bus=self.BUTTONS_BUS))) -class TestHondaBoschAltBrakeSafetyBase(TestHondaBoschSafetyBase): +class TestHondaBoschElecBrakeSafetyBase(TestHondaBoschSafetyBase): """ - Base Bosch safety test class with an alternate brake message + Base Bosch safety test class with electric brake booster message """ def setUp(self): super().setUp() - self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.ALT_BRAKE) + self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.ELECTRIC_BRAKE_BOOSTER) self.safety.init_tests() def _user_brake_msg(self, brake): - return self._alt_brake_msg(brake) + return self._elec_brake_msg(brake) - def test_alt_brake_rx_hook(self): - self.safety.set_honda_alt_brake_msg(1) + def test_elec_brake_rx_hook(self): + self.safety.set_honda_elec_brake_msg(1) self.safety.set_controls_allowed(1) - msg = self._alt_brake_msg(0) + msg = self._elec_brake_msg(0) self.assertTrue(self._rx(msg)) msg[0].data[2] = msg[0].data[2] & 0xF0 # invalidate checksum self.assertFalse(self._rx(msg)) self.assertFalse(self.safety.get_controls_allowed()) - def test_alt_disengage_on_brake(self): - self.safety.set_honda_alt_brake_msg(1) + def test_elec_disengage_on_brake(self): + self.safety.set_honda_elec_brake_msg(1) self.safety.set_controls_allowed(1) - self._rx(self._alt_brake_msg(1)) + self._rx(self._elec_brake_msg(1)) self.assertFalse(self.safety.get_controls_allowed()) - self.safety.set_honda_alt_brake_msg(0) + self.safety.set_honda_elec_brake_msg(0) self.safety.set_controls_allowed(1) - self._rx(self._alt_brake_msg(1)) + self._rx(self._elec_brake_msg(1)) self.assertTrue(self.safety.get_controls_allowed()) @@ -437,9 +437,9 @@ def setUp(self): self.safety.init_tests() -class TestHondaBoschAltBrakeSafety(HondaPcmEnableBase, TestHondaBoschAltBrakeSafetyBase): +class TestHondaBoschElecBrakeSafety(HondaPcmEnableBase, TestHondaBoschElecBrakeSafetyBase): """ - Covers the Honda Bosch safety mode with stock longitudinal and an alternate brake message + Covers the Honda Bosch safety mode with stock longitudinal and an electric brake booster message """ @@ -525,14 +525,14 @@ def setUp(self): self.safety.init_tests() -class TestHondaBoschRadarlessAltBrakeSafety(HondaPcmEnableBase, TestHondaBoschRadarlessSafetyBase, TestHondaBoschAltBrakeSafetyBase): +class TestHondaBoschRadarlessElecBrakeSafety(HondaPcmEnableBase, TestHondaBoschRadarlessSafetyBase, TestHondaBoschElecBrakeSafetyBase): """ - Covers the Honda Bosch Radarless safety mode with stock longitudinal and an alternate brake message + Covers the Honda Bosch Radarless safety mode with stock longitudinal and an electric brake booster message """ def setUp(self): super().setUp() - self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.RADARLESS | HondaSafetyFlags.ALT_BRAKE) + self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.RADARLESS | HondaSafetyFlags.ELECTRIC_BRAKE_BOOSTER) self.safety.init_tests() @@ -587,14 +587,14 @@ def setUp(self): self.safety.init_tests() -class TestHondaBoschCANFDAltBrakeSafety(HondaPcmEnableBase, TestHondaBoschCANFDSafetyBase, TestHondaBoschAltBrakeSafetyBase): +class TestHondaBoschCANFDElecBrakeSafety(HondaPcmEnableBase, TestHondaBoschCANFDSafetyBase, TestHondaBoschElecBrakeSafetyBase): """ - Covers the Honda Bosch CANFD safety mode with stock longitudinal and an alternate brake message + Covers the Honda Bosch CANFD safety mode with stock longitudinal and an electric brake booster message """ def setUp(self): super().setUp() - self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.BOSCH_CANFD | HondaSafetyFlags.ALT_BRAKE) + self.safety.set_safety_hooks(CarParams.SafetyModel.hondaBosch, HondaSafetyFlags.BOSCH_CANFD | HondaSafetyFlags.ELECTRIC_BRAKE_BOOSTER) self.safety.init_tests() From a385279e90793876d2b2fef92a00ae1a0c7f9339 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:35:25 -0500 Subject: [PATCH 6/7] rename alt_brake to elec_brake --- opendbc/safety/tests/libsafety/safety.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/safety/tests/libsafety/safety.c b/opendbc/safety/tests/libsafety/safety.c index afb7054448d..7f6e2257158 100644 --- a/opendbc/safety/tests/libsafety/safety.c +++ b/opendbc/safety/tests/libsafety/safety.c @@ -171,8 +171,8 @@ int get_angle_meas_max(void){ // ***** car specific helpers ***** -void set_honda_alt_brake_msg(bool c){ - honda_alt_brake_msg = c; +void set_honda_elec_brake_msg(bool c){ + honda_elec_brake_msg = c; } void set_honda_bosch_long(bool c){ From 66d9d19cdac7ef7ac4a17ea17ef0582c6250a1d9 Mon Sep 17 00:00:00 2001 From: MVL Date: Fri, 28 Nov 2025 23:45:42 -0500 Subject: [PATCH 7/7] rename alt_brake to elec_brake --- opendbc/safety/tests/libsafety/libsafety_py.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/tests/libsafety/libsafety_py.py b/opendbc/safety/tests/libsafety/libsafety_py.py index ee314b6e124..b450385f120 100644 --- a/opendbc/safety/tests/libsafety/libsafety_py.py +++ b/opendbc/safety/tests/libsafety/libsafety_py.py @@ -74,7 +74,7 @@ class CANPacket: void set_honda_fwd_brake(bool c); bool get_honda_fwd_brake(void); -void set_honda_alt_brake_msg(bool c); +void set_honda_elec_brake_msg(bool c); void set_honda_bosch_long(bool c); int get_honda_hw(void); """)