Skip to content

Commit 36efc3b

Browse files
committed
Add support for Hyundai Ioniq 5 PE model
The Hyundai Ioniq 5 PE model has been added to the fingerprint definitions in `fingerprints.py` and the car values in `values.py`. Additionally, adjustments have been made in `carcontroller.py`, `carstate.py`, and `interface.py` to properly support this new model's CAN FD signals and HDA II feature. A torque data override for the Ioniq 5 PE has also been set in `override.toml`.
1 parent 4cac064 commit 36efc3b

File tree

6 files changed

+21
-5
lines changed

6 files changed

+21
-5
lines changed

opendbc/car/hyundai/carcontroller.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def update(self, CC, CC_SP, CS, now_nanos):
177177
self.CP.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING))
178178

179179
# LFA and HDA icons
180-
update_lfahda_icons = (not hda2 or hda2_long) or self.CP.carFingerprint == CAR.KIA_EV9
180+
update_lfahda_icons = (not hda2 or hda2_long) or self.CP.flags & HyundaiFlags.ANGLE_CONTROL
181181
if self.frame % 5 == 0 and update_lfahda_icons:
182182
can_sends.append(hyundaicanfd.create_lfahda_cluster(self.packer, self.CAN, CC.enabled, self.lfa_icon))
183183

opendbc/car/hyundai/carstate.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,12 @@ def update_canfd(self, can_parsers) -> structs.CarState:
237237

238238
# TODO: alt signal usage may be described by cp.vl['BLINKERS']['USE_ALT_LAMP']
239239
left_blinker_sig, right_blinker_sig = "LEFT_LAMP", "RIGHT_LAMP"
240-
if self.CP.carFingerprint in (CAR.HYUNDAI_KONA_EV_2ND_GEN, CAR.KIA_EV9):
240+
if self.CP.carFingerprint in (CAR.HYUNDAI_KONA_EV_2ND_GEN, CAR.KIA_EV9) or self.CP.flags & HyundaiFlags.ANGLE_CONTROL:
241241
left_blinker_sig, right_blinker_sig = "LEFT_LAMP_ALT", "RIGHT_LAMP_ALT"
242242
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_lamp(50, cp.vl["BLINKERS"][left_blinker_sig],
243243
cp.vl["BLINKERS"][right_blinker_sig])
244244
if self.CP.enableBsm:
245-
if self.CP.carFingerprint == CAR.KIA_EV9:
245+
if self.CP.flags & HyundaiFlags.ANGLE_CONTROL:
246246
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["INDICATOR_LEFT_FOUR"] != 0
247247
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["INDICATOR_RIGHT_FOUR"] != 0
248248
else:

opendbc/car/hyundai/fingerprints.py

+10
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,16 @@
10181018
b'\xf1\x00NE1 MFC AT USA LHD 1.00 1.06 99211-GI010 230110',
10191019
],
10201020
},
1021+
CAR.HYUNDAI_IONIQ_5_PE: {
1022+
(Ecu.fwdRadar, 0x7d0, None): [
1023+
b'\xf1\x00NE__ RDR ----- 1.00 1.00 99110-PI000 ',
1024+
b'\xf1\x00NE__ RDR ----- 1.00 1.01 99110-GI500 '
1025+
],
1026+
(Ecu.fwdCamera, 0x7C4, None): [
1027+
b'\xf1\x00NE MFC AT USA LHD 1.00 1.01 99211-PI000 240905',
1028+
b'\xf1\x00NE MFC AT EUR LHD 1.00 1.03 99211-GI500 240809',
1029+
],
1030+
},
10211031
CAR.HYUNDAI_IONIQ_6: {
10221032
(Ecu.fwdRadar, 0x7d0, None): [
10231033
b'\xf1\x00CE__ RDR ----- 1.00 1.01 99110-KL000 ',

opendbc/car/hyundai/interface.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ def _get_params(ret: structs.CarParams, candidate, fingerprint, car_fw, experime
6363

6464
if ret.flags & HyundaiFlags.CANFD_HDA2:
6565
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2
66-
if ret.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING:
67-
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING
66+
if ret.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING:
67+
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING
6868
if ret.flags & HyundaiFlags.CANFD_ALT_BUTTONS:
6969
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_ALT_BUTTONS
7070
if ret.flags & HyundaiFlags.CANFD_CAMERA_SCC:

opendbc/car/hyundai/values.py

+5
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,11 @@ class CAR(Platforms):
320320
CarSpecs(mass=1948, wheelbase=2.97, steerRatio=14.26, tireStiffnessFactor=0.65),
321321
flags=HyundaiFlags.EV,
322322
)
323+
HYUNDAI_IONIQ_5_PE = HyundaiCanFDPlatformConfig(
324+
[HyundaiCarDocs("Hyundai Ioniq 5 PE (with HDA II) 2025+", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q]))],
325+
HYUNDAI_IONIQ_5.specs,
326+
flags=HyundaiFlags.EV | HyundaiFlags.ANGLE_CONTROL,
327+
)
323328
HYUNDAI_IONIQ_6 = HyundaiCanFDPlatformConfig(
324329
[HyundaiCarDocs("Hyundai Ioniq 6 (with HDA II) 2023-24", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_p]))],
325330
HYUNDAI_IONIQ_5.specs,

opendbc/car/torque_data/override.toml

+1
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,4 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"]
8383

8484
# Hyundai/Kia/Genesis angle control
8585
"KIA_EV9" = [nan, 3.0, nan]
86+
"HYUNDAI_IONIQ_5_PE" = [nan, 3.0, nan]

0 commit comments

Comments
 (0)