Hyundai CAN-FD: support ICE alt gears (#26367)

* Hyundai: Car Port for Santa Cruz 2022

* bump opendbc

* New struct and params for CAN-FD ICE models

* fixup! New struct and params for CAN-FD ICE models

* bump panda

* bump panda

* HKG: Car Port for Sportage 2023

* fixup! HKG: Car Port for Sportage 2023

* Kia Sportage 2023: Add FW versions

* Longitudinal Control: ICE CAN-FD models

* fixup! Longitudinal Control: ICE CAN-FD models

* bump panda

* fixup! Longitudinal Control: ICE CAN-FD models

* Update car info

* fixup! Longitudinal Control: ICE CAN-FD models

* Gate radar disable behind HDA2 only

* Gate radar disable behind camera SCC cars

* Update CARS.md

* Add FW versions for Santa Cruz 2021

* Test route for Kia Sportage 2023 (openpilot longitudinal enabled)

* Test route for Santa Cruz 2021 (openpilot longitudinal enabled)

* fixup! Kia Sportage 2023: Add FW versions

* HKG: Car Port for Genesis GV70 2023 thanks to @zunichky!

Co-authored-by: kyle zunich <zunichky@msu.edu>

* Update car info

* Add torque param for GENESIS GV70 1ST GEN

* Fix CARS.md

* Update test route

* Remove unnecessary HDA2 checks

* Add additional FW versions for Sportage 2023

* Fix Kia Sportage supported MY

* Fix MISRA violation

* Fix release note

* Use IntFlag to gate camera SCC for CAN-FD

* Parse 0x1A0 on bus 4 dynamically

* bump panda

* Car code cleanup

* Typo

* Add additional 0x1A0 signals to bus 4

* Fix weird bitwise logic

* Check 0x1a0 after safety config is set

* Revert "Check 0x1a0 after safety config is set"

This reverts commit 141bbf7979.

* Check car list instead

* Add GV70 2022 test route

* Add fwdRadar FW version for GV70 2022

* Fix CARS.md

* Fix CARS.md

* Fix CARS.md

* new santa cruz route

* bump panda to commaai/panda#1031

* bumppanda

* some clean up

* lets refactor CAMERA_SCC_CAR in another pr

* minor clean up

* revert car stuff

* revert panda

* revvy

* revvy

* it's all ice

* revert

* revert

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
Co-authored-by: kyle zunich <zunichky@msu.edu>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Jason Wen <47793918+sunnyhaibin@users.noreply.github.com>
old-commit-hash: b22fc70f52
taco
Shane Smiskol 3 years ago committed by GitHub
parent 9c234d1aef
commit 3d8adcf653
  1. 10
      selfdrive/car/hyundai/carstate.py
  2. 3
      selfdrive/car/hyundai/interface.py
  3. 1
      selfdrive/car/hyundai/values.py

@ -21,8 +21,9 @@ class CarState(CarStateBase):
self.cruise_buttons = deque([Buttons.NONE] * PREV_BUTTON_SAMPLES, maxlen=PREV_BUTTON_SAMPLES)
self.main_buttons = deque([Buttons.NONE] * PREV_BUTTON_SAMPLES, maxlen=PREV_BUTTON_SAMPLES)
self.gear_msg_canfd = "GEAR_ALT" if CP.flags & HyundaiFlags.CANFD_ALT_GEARS else "GEAR_SHIFTER"
if CP.carFingerprint in CANFD_CAR:
self.shifter_values = can_define.dv["GEAR_SHIFTER"]["GEAR"]
self.shifter_values = can_define.dv[self.gear_msg_canfd]["GEAR"]
elif self.CP.carFingerprint in FEATURES["use_cluster_gears"]:
self.shifter_values = can_define.dv["CLU15"]["CF_Clu_Gear"]
elif self.CP.carFingerprint in FEATURES["use_tcu_gears"]:
@ -164,7 +165,7 @@ class CarState(CarStateBase):
ret.doorOpen = cp.vl["DOORS_SEATBELTS"]["DRIVER_DOOR_OPEN"] == 1
ret.seatbeltUnlatched = cp.vl["DOORS_SEATBELTS"]["DRIVER_SEATBELT_LATCHED"] == 0
gear = cp.vl["GEAR_SHIFTER"]["GEAR"]
gear = cp.vl[self.gear_msg_canfd]["GEAR"]
ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(gear))
# TODO: figure out positions
@ -411,13 +412,14 @@ class CarState(CarStateBase):
def get_can_parser_canfd(CP):
cruise_btn_msg = "CRUISE_BUTTONS_ALT" if CP.flags & HyundaiFlags.CANFD_ALT_BUTTONS else "CRUISE_BUTTONS"
gear_msg = "GEAR_ALT" if CP.flags & HyundaiFlags.CANFD_ALT_GEARS else "GEAR_SHIFTER"
signals = [
("WHEEL_SPEED_1", "WHEEL_SPEEDS"),
("WHEEL_SPEED_2", "WHEEL_SPEEDS"),
("WHEEL_SPEED_3", "WHEEL_SPEEDS"),
("WHEEL_SPEED_4", "WHEEL_SPEEDS"),
("GEAR", "GEAR_SHIFTER"),
("GEAR", gear_msg),
("STEERING_RATE", "STEERING_SENSORS"),
("STEERING_ANGLE", "STEERING_SENSORS"),
@ -442,7 +444,7 @@ class CarState(CarStateBase):
checks = [
("WHEEL_SPEEDS", 100),
("GEAR_SHIFTER", 100),
(gear_msg, 100),
("STEERING_SENSORS", 100),
("MDPS", 100),
("TCS", 50),

@ -41,6 +41,9 @@ class CarInterface(CarInterfaceBase):
# non-HDA2
if 0x1cf not in fingerprint[4]:
ret.flags |= HyundaiFlags.CANFD_ALT_BUTTONS.value
# ICE cars do not have 0x130; GEARS message on 0x40 instead
if 0x130 not in fingerprint[4]:
ret.flags |= HyundaiFlags.CANFD_ALT_GEARS.value
ret.steerActuatorDelay = 0.1 # Default delay
ret.steerLimitTimer = 0.4

@ -47,6 +47,7 @@ class CarControllerParams:
class HyundaiFlags(IntFlag):
CANFD_HDA2 = 1
CANFD_ALT_BUTTONS = 2
CANFD_ALT_GEARS = 4
class CAR:

Loading…
Cancel
Save