diff --git a/README.md b/README.md index 51c88a0b2f..5383757784 100755 --- a/README.md +++ b/README.md @@ -67,8 +67,8 @@ Supported Cars | Acura | ILX 2016-19 | AcuraWatch Plus | openpilot | 25mph1 | 25mph | | Acura | RDX 2016-18 | AcuraWatch Plus | openpilot | 25mph1 | 12mph | | Acura | RDX 2019-21 | All | Stock | 0mph | 3mph | -| Honda | Accord 2018-21 | All | Stock | 0mph | 3mph | -| Honda | Accord Hybrid 2018-21 | All | Stock | 0mph | 3mph | +| Honda | Accord 2018-20 | All | Stock | 0mph | 3mph | +| Honda | Accord Hybrid 2018-20 | All | Stock | 0mph | 3mph | | Honda | Civic Hatchback 2017-21 | Honda Sensing | Stock | 0mph | 12mph | | Honda | Civic Coupe 2016-18 | Honda Sensing | openpilot | 0mph | 12mph | | Honda | Civic Coupe 2019-20 | All | Stock | 0mph | 2mph2 | diff --git a/RELEASES.md b/RELEASES.md index c54d58e12c..6855d6c097 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -11,8 +11,6 @@ Version 0.8.8 (2021-08-27) * NEOS 18 for comma two: update packages * AGNOS 1.3 for comma three: fix display init at high temperatures * Improved auto-exposure on comma three - * Honda Accord 2021 support thanks to csouers! - * Honda Accord Hybrid 2021 support thanks to csouers! * Hyundai Kona Hybrid 2020 support thanks to haram-KONA! * Hyundai Sonata Hybrid 2021 support thanks to Matt-Wash-Burn! * Kia Niro Hybrid 2021 support thanks to tetious! diff --git a/panda b/panda index 46593af619..8c687ecfb4 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 46593af6190a09aea8a1a734e6b3cdcd4227cb98 +Subproject commit 8c687ecfb4464cc2eb67a704b00ecdcb97f7c0df diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 36461bf823..982d3ece99 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -119,7 +119,7 @@ def get_can_signals(CP, gearbox_msg="GEARBOX"): else: checks += [("CRUISE_PARAMS", 50)] - if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_2021, CAR.ACCORDH, CAR.ACCORDH_2021, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G): + if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G): signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)] elif CP.carFingerprint == CAR.ODYSSEY_CHN: signals += [("DRIVERS_DOOR_OPEN", "SCM_BUTTONS", 1)] @@ -230,7 +230,7 @@ class CarState(CarStateBase): # ******************* parse out can ******************* # TODO: find wheels moving bit in dbc - if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_2021, CAR.ACCORDH, CAR.ACCORDH_2021, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G): + if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G): ret.standstill = cp.vl["ENGINE_DATA"]["XMISSION_SPEED"] < 0.1 ret.doorOpen = bool(cp.vl["SCM_FEEDBACK"]["DRIVERS_DOOR_OPEN"]) elif self.CP.carFingerprint == CAR.ODYSSEY_CHN: @@ -279,7 +279,7 @@ class CarState(CarStateBase): 250, cp.vl["SCM_FEEDBACK"]["LEFT_BLINKER"], cp.vl["SCM_FEEDBACK"]["RIGHT_BLINKER"]) self.brake_hold = cp.vl["VSA_STATUS"]["BRAKE_HOLD_ACTIVE"] - if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORD_2021, CAR.ACCORDH, CAR.ACCORDH_2021, CAR.CIVIC_BOSCH, + if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G): self.park_brake = cp.vl["EPB_STATUS"]["EPB_STATE"] != 0 main_on = cp.vl["SCM_FEEDBACK"]["MAIN_ON"] diff --git a/selfdrive/car/honda/hondacan.py b/selfdrive/car/honda/hondacan.py index 290d100281..d30f5b54f9 100644 --- a/selfdrive/car/honda/hondacan.py +++ b/selfdrive/car/honda/hondacan.py @@ -1,5 +1,5 @@ from selfdrive.car.isotp_parallel_query import IsoTpParallelQuery -from selfdrive.car.honda.values import HONDA_BOSCH, HONDA_BOSCH_EXT, CAR +from selfdrive.car.honda.values import HONDA_BOSCH, CAR from selfdrive.config import Conversions as CV from selfdrive.swaglog import cloudlog @@ -169,18 +169,12 @@ def create_ui_commands(packer, pcm_speed, hud, car_fingerprint, is_metric, idx, lkas_hud_values = { 'SET_ME_X41': 0x41, + 'SET_ME_X48': 0x48, 'STEERING_REQUIRED': hud.steer_required, 'SOLID_LANES': hud.lanes, 'BEEP': 0, } - if car_fingerprint not in HONDA_BOSCH_EXT: - lkas_hud_values['SET_ME_X48'] = 0x48 - - if car_fingerprint in HONDA_BOSCH_EXT and not openpilot_longitudinal_control: - commands.append(packer.make_can_msg('LKAS_HUD_A', bus_lkas, lkas_hud_values, idx)) - commands.append(packer.make_can_msg('LKAS_HUD_B', bus_lkas, lkas_hud_values, idx)) - else: - commands.append(packer.make_can_msg('LKAS_HUD', bus_lkas, lkas_hud_values, idx)) + commands.append(packer.make_can_msg('LKAS_HUD', bus_lkas, lkas_hud_values, idx)) if radar_disabled and car_fingerprint in HONDA_BOSCH: radar_hud_values = { diff --git a/selfdrive/car/honda/interface.py b/selfdrive/car/honda/interface.py index 6d583a26b0..5e08d48103 100755 --- a/selfdrive/car/honda/interface.py +++ b/selfdrive/car/honda/interface.py @@ -158,7 +158,7 @@ class CarInterface(CarInterfaceBase): tire_stiffness_factor = 1. ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.8], [0.24]] - elif candidate in (CAR.ACCORD, CAR.ACCORD_2021, CAR.ACCORDH, CAR.ACCORDH_2021): + elif candidate in (CAR.ACCORD, CAR.ACCORDH): stop_and_go = True ret.mass = 3279. * CV.LB_TO_KG + STD_CARGO_KG ret.wheelbase = 2.83 diff --git a/selfdrive/car/honda/values.py b/selfdrive/car/honda/values.py index fe6f51546e..cfc3bfd8dc 100644 --- a/selfdrive/car/honda/values.py +++ b/selfdrive/car/honda/values.py @@ -51,8 +51,6 @@ VISUAL_HUD = { class CAR: ACCORD = "HONDA ACCORD 2018" ACCORDH = "HONDA ACCORD HYBRID 2018" - ACCORD_2021 = "HONDA ACCORD 2021" - ACCORDH_2021 = "HONDA ACCORD HYBRID 2021" CIVIC = "HONDA CIVIC 2016" CIVIC_BOSCH = "HONDA CIVIC (BOSCH) 2019" CIVIC_BOSCH_DIESEL = "HONDA CIVIC SEDAN 1.6 DIESEL 2019" @@ -289,10 +287,12 @@ FW_VERSIONS = { ], (Ecu.fwdCamera, 0x18dab5f1, None): [ b'36161-TWA-A070\x00\x00', + b'36161-TWA-A330\x00\x00', ], (Ecu.fwdRadar, 0x18dab0f1, None): [ b'36802-TWA-A080\x00\x00', b'36802-TWA-A070\x00\x00', + b'36802-TWA-A330\x00\x00', ], (Ecu.eps, 0x18da30f1, None): [ b'39990-TVA-A160\x00\x00', @@ -300,78 +300,6 @@ FW_VERSIONS = { b'39990-TVA-A340\x00\x00', ], }, - CAR.ACCORD_2021: { - (Ecu.programmedFuelInjection, 0x18da10f1, None): [ - b'37805-6B2-C520\x00\x00', - ], - (Ecu.transmission, 0x18da1ef1, None): [ - b'28102-6B8-A700\x00\x00', - ], - (Ecu.electricBrakeBooster, 0x18da2bf1, None): [ - b'46114-TVA-A320\x00\x00', - ], - (Ecu.gateway, 0x18daeff1, None): [ - b'38897-TVA-A020\x00\x00', - ], - (Ecu.vsa, 0x18da28f1, None): [ - b'57114-TVA-E520\x00\x00', - ], - (Ecu.srs, 0x18da53f1, None): [ - b'77959-TVA-L420\x00\x00', - ], - (Ecu.combinationMeter, 0x18da60f1, None): [ - b'78109-TVC-A230\x00\x00', - ], - (Ecu.hud, 0x18da61f1, None): [ - b'78209-TVA-A110\x00\x00', - ], - (Ecu.shiftByWire, 0x18da0bf1, None): [ - b'54008-TVC-A910\x00\x00', - ], - (Ecu.fwdCamera, 0x18dab5f1, None): [ - b'36161-TVC-A330\x00\x00', - ], - (Ecu.fwdRadar, 0x18dab0f1, None): [ - b'36802-TVC-A330\x00\x00', - ], - (Ecu.eps, 0x18da30f1, None): [ - b'39990-TVA-A340\x00\x00', - ], - (Ecu.unknown, 0x18da3af1, None): [ - b'39390-TVA-A120\x00\x00', - ], - }, - CAR.ACCORDH_2021: { - (Ecu.gateway, 0x18daeff1, None): [ - b'38897-TWD-J020\x00\x00', - ], - (Ecu.vsa, 0x18da28f1, None): [ - b'57114-TWA-A530\x00\x00', - b'57114-TWA-B520\x00\x00', - ], - (Ecu.srs, 0x18da53f1, None): [ - b'77959-TWA-L420\x00\x00', - ], - (Ecu.combinationMeter, 0x18da60f1, None): [ - b'78109-TWA-A030\x00\x00', - b'78109-TWA-A230\x00\x00', - ], - (Ecu.shiftByWire, 0x18da0bf1, None): [ - b'54008-TWA-A910\x00\x00', - ], - (Ecu.fwdCamera, 0x18dab5f1, None): [ - b'36161-TWA-A330\x00\x00', - ], - (Ecu.fwdRadar, 0x18dab0f1, None): [ - b'36802-TWA-A330\x00\x00', - ], - (Ecu.eps, 0x18da30f1, None): [ - b'39990-TVA-A340\x00\x00', - ], - (Ecu.unknown, 0x18da3af1, None): [ - b'39390-TVA-A120\x00\x00', - ], - }, CAR.CIVIC: { (Ecu.programmedFuelInjection, 0x18da10f1, None): [ b'37805-5AA-A640\x00\x00', @@ -1301,9 +1229,7 @@ FW_VERSIONS = { DBC = { CAR.ACCORD: dbc_dict('honda_accord_2018_can_generated', None), - CAR.ACCORD_2021: dbc_dict('honda_accord_2018_can_generated', None), CAR.ACCORDH: dbc_dict('honda_accord_2018_can_generated', None), - CAR.ACCORDH_2021: dbc_dict('honda_accord_2018_can_generated', None), CAR.ACURA_ILX: dbc_dict('acura_ilx_2016_can_generated', 'acura_ilx_2016_nidec'), CAR.ACURA_RDX: dbc_dict('acura_rdx_2018_can_generated', 'acura_ilx_2016_nidec'), CAR.ACURA_RDX_3G: dbc_dict('acura_rdx_2020_can_generated', None), @@ -1341,8 +1267,5 @@ SPEED_FACTOR = { } OLD_NIDEC_LONG_CONTROL = set([CAR.ODYSSEY, CAR.ACURA_RDX, CAR.CRV, CAR.HRV]) -HONDA_BOSCH = set([CAR.ACCORD, CAR.ACCORD_2021, CAR.ACCORDH, CAR.ACCORDH_2021, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_5G, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G]) -HONDA_BOSCH_ALT_BRAKE_SIGNAL = set([CAR.ACCORD, CAR.ACCORD_2021, CAR.CRV_5G, CAR.ACURA_RDX_3G]) - -# Bosch models with alternate set of LKAS_HUD messages -HONDA_BOSCH_EXT = set([CAR.ACCORD_2021, CAR.ACCORDH_2021]) +HONDA_BOSCH = set([CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_5G, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G]) +HONDA_BOSCH_ALT_BRAKE_SIGNAL = set([CAR.ACCORD, CAR.CRV_5G, CAR.ACURA_RDX_3G]) diff --git a/selfdrive/test/test_models.py b/selfdrive/test/test_models.py index 0c4a94a2eb..7967d79b01 100755 --- a/selfdrive/test/test_models.py +++ b/selfdrive/test/test_models.py @@ -182,12 +182,6 @@ class TestCarModel(unittest.TestCase): if failed_checks['brakePressed'] < 150: del failed_checks['brakePressed'] - # TODO: use the same signal in panda and carState - # tolerate a small delay between the button press and PCM entering a cruise state - if self.car_model == HONDA.ACCORD_2021: - if failed_checks['controlsAllowed'] < 500: - del failed_checks['controlsAllowed'] - self.assertFalse(len(failed_checks), f"panda safety doesn't agree with CarState: {failed_checks}") if __name__ == "__main__": diff --git a/selfdrive/test/test_routes.py b/selfdrive/test/test_routes.py index 8c8b0266a7..fd58145ac7 100755 --- a/selfdrive/test/test_routes.py +++ b/selfdrive/test/test_routes.py @@ -52,9 +52,7 @@ routes = [ TestRoute("81722949a62ea724|2019-04-06--15-19-25", HONDA.ODYSSEY_CHN), TestRoute("08a3deb07573f157|2020-03-06--16-11-19", HONDA.ACCORD), # 1.5T TestRoute("1da5847ac2488106|2021-05-24--19-31-50", HONDA.ACCORD), # 2.0T - TestRoute("085ac1d942c35910|2021-03-25--20-11-15", HONDA.ACCORD_2021), # 2.0T TestRoute("07585b0da3c88459|2021-05-26--18-52-04", HONDA.ACCORDH), - TestRoute("f29e2b57a55e7ad5|2021-03-24--20-52-38", HONDA.ACCORDH_2021), TestRoute("1ad763dd22ef1a0e|2020-02-29--18-37-03", HONDA.CRV_5G), TestRoute("0a96f86fcfe35964|2020-02-05--07-25-51", HONDA.ODYSSEY), TestRoute("d83f36766f8012a5|2020-02-05--18-42-21", HONDA.CIVIC_BOSCH_DIESEL),