这是indexloc提供的服务,不要输入任何密码
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
387 commits
Select commit Hold shift + click to select a range
53acb21
add KIA_K5_2025 route
royjr Feb 23, 2025
250d626
fix HyundaiFlags
royjr Feb 23, 2025
ccf325c
add HYUNDAI_TUCSON_2025 route
royjr Feb 23, 2025
8ae992d
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Feb 23, 2025
7145d3b
stop KEEP_HANDS_ON_STEERING_WHEEL by blocking MDPS
royjr Feb 23, 2025
81fb5c6
disable HYUNDAI_SONATA_HEV_2024 radar for now
royjr Feb 23, 2025
0a224d7
remove can radar stuff
royjr Feb 23, 2025
88ac505
updates years
royjr Feb 23, 2025
82f32e8
do we need LFAHDA_CLUSTER?
royjr Feb 23, 2025
bf8c76d
sort fp
royjr Feb 23, 2025
94b7867
fix KEEP_HANDS_ON_STEERING_WHEEL tests
royjr Feb 23, 2025
8e9d68a
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Feb 23, 2025
3525b89
stock steer for now
royjr Feb 27, 2025
556c51a
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Feb 27, 2025
dfa629c
use exisitng tucson value
royjr Feb 28, 2025
9dbca0c
Merge branch 'ccnc-port' of https://github.com/royjr/opendbc into ccn…
royjr Feb 28, 2025
040015e
not sure if needed
royjr Feb 28, 2025
3c39ce5
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Feb 28, 2025
e7cf03c
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 1, 2025
af56e76
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 1, 2025
b5ebefd
just be normal
royjr Mar 1, 2025
994cf3a
remove LFAHDA_CLUSTER
royjr Mar 1, 2025
b4e7e2d
deredun DAW_ICON
royjr Mar 1, 2025
5c2e09f
show orange FCA_ICON on op long
royjr Mar 1, 2025
fc1c729
dont send this since we use 161
royjr Mar 1, 2025
b2a523c
should be enough for now
royjr Mar 1, 2025
366219b
Revert "dont send this since we use 161"
royjr Mar 1, 2025
6eb2d6b
Merge branch 'commaai:master' into ccnc-port
royjr Mar 2, 2025
b16bcd9
combine SCC_CONTROL
royjr Mar 2, 2025
4ea789e
deredun jerk
royjr Mar 2, 2025
2c03c48
better
royjr Mar 2, 2025
d57532b
better?
royjr Mar 2, 2025
c1bc043
HyundaiSafetyFlags
royjr Mar 2, 2025
d75dc85
fix MIRSA
royjr Mar 2, 2025
45fdbdc
fix dbc_dict
royjr Mar 2, 2025
1b4e480
enable MANDO_RADAR
royjr Mar 2, 2025
8b1b77b
prepare for LaneVisible when the time comes
royjr Mar 2, 2025
4287703
Revert "enable MANDO_RADAR"
royjr Mar 2, 2025
d87b2dd
Merge branch 'commaai:master' into ccnc-port
royjr Mar 2, 2025
6584256
revert jerk
royjr Mar 3, 2025
9cb8164
better lanelines
royjr Mar 4, 2025
0db433d
simple lanelines
royjr Mar 4, 2025
940165a
Merge branch 'commaai:master' into ccnc-port
royjr Mar 4, 2025
33eea8b
Merge branch 'ccnc-port' of https://github.com/royjr/opendbc into ccn…
royjr Mar 4, 2025
0e3be10
whoops
royjr Mar 4, 2025
8c4f3f6
frame not used
royjr Mar 4, 2025
a8505e4
deredun
royjr Mar 4, 2025
ba6c74f
cleaner
royjr Mar 4, 2025
3f2bd21
cleaner
royjr Mar 4, 2025
2de0c04
fix
royjr Mar 4, 2025
5abdf6b
append instead
royjr Mar 4, 2025
dc18a64
better
royjr Mar 4, 2025
2e9d918
comment
royjr Mar 4, 2025
89f7353
cleaner
royjr Mar 4, 2025
74c2057
useless
royjr Mar 4, 2025
857777a
combine
royjr Mar 4, 2025
77ef598
match upstream
royjr Mar 4, 2025
8e112a0
no need on top
royjr Mar 4, 2025
6b13860
much better
royjr Mar 4, 2025
7a4e84c
lineless
royjr Mar 4, 2025
4d5f3a6
cleaner
royjr Mar 4, 2025
58db63a
near related
royjr Mar 4, 2025
7fe673f
Revert "append instead"
royjr Mar 4, 2025
1c21c02
lane change
royjr Mar 4, 2025
2ad37a8
better arrows
royjr Mar 4, 2025
2ce621e
curvature
royjr Mar 4, 2025
86c666b
better match
royjr Mar 4, 2025
02edda8
fix on standstill
royjr Mar 4, 2025
b53f713
always curve
royjr Mar 4, 2025
390a0aa
more curve
royjr Mar 4, 2025
dc8664c
both cases
royjr Mar 4, 2025
a6809f5
remove LCA icons
royjr Mar 5, 2025
3520ee7
ldw
royjr Mar 5, 2025
35d39ee
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 5, 2025
dcb0b4e
use stock lead distance
royjr Mar 5, 2025
48342dd
no curvature
royjr Mar 5, 2025
7c861f2
leadless
royjr Mar 5, 2025
1b62300
no distance messages
royjr Mar 5, 2025
e12e26f
no FCA_ICON
royjr Mar 5, 2025
96a2bd4
better
royjr Mar 5, 2025
0789619
fix ws
royjr Mar 5, 2025
2b9ace7
to signify op long
royjr Mar 5, 2025
ab33ebc
always show spacing
royjr Mar 5, 2025
c4622d3
white car
royjr Mar 5, 2025
a89ab80
Merge branch 'commaai:master' into ccnc-port
royjr Mar 5, 2025
52c2281
Merge branch 'commaai:master' into ccnc-port
royjr Mar 6, 2025
b7a2fef
test
royjr Mar 6, 2025
961101a
Revert "test"
royjr Mar 6, 2025
f2e5636
Merge branch 'commaai:master' into ccnc-port
royjr Mar 6, 2025
e25adb2
cleaner
royjr Mar 6, 2025
1b225ac
match stock
royjr Mar 7, 2025
9cd51fb
HIDE DISTANCE, ISLA MESSAGES
royjr Mar 7, 2025
b3ecec1
better comments to match numbers
royjr Mar 7, 2025
df406ae
hide ISLA icons
royjr Mar 7, 2025
a008a6b
show gray nav icon if nav available
royjr Mar 7, 2025
98680f7
hide TARGET
royjr Mar 7, 2025
0145cad
set over tuple
royjr Mar 7, 2025
cac6029
combine
royjr Mar 7, 2025
1ca8ffc
reorder
royjr Mar 7, 2025
03dfb89
no copy
royjr Mar 7, 2025
e7a2a07
tuples are faster
royjr Mar 7, 2025
bddbbe1
getless
royjr Mar 7, 2025
eb882a6
just hide nav
royjr Mar 7, 2025
11c491b
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 8, 2025
3715f83
direct assign
royjr Mar 8, 2025
5253192
Revert "direct assign"
royjr Mar 8, 2025
6f64d52
use CC.latActive instead
royjr Mar 8, 2025
63e0d0d
deredun
royjr Mar 8, 2025
04f4dbf
compact
royjr Mar 8, 2025
e695e92
maybe
royjr Mar 9, 2025
cd6d550
Revert "maybe"
royjr Mar 9, 2025
821262b
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 10, 2025
489f741
fix latactive case
royjr Mar 10, 2025
e0e12e8
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 11, 2025
69ad5b9
simplify cruise_info
royjr Mar 11, 2025
f872434
fix mutations
royjr Mar 11, 2025
caedf0c
fix mirsa
royjr Mar 11, 2025
939fe11
Merge branch 'commaai:master' into ccnc-port
royjr Mar 11, 2025
e59acbe
allow FCA on op long
royjr Mar 13, 2025
bf6049b
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Mar 13, 2025
00bd162
fix misra
royjr Mar 13, 2025
87147c0
Merge branch 'commaai:master' into ccnc-port
royjr Mar 14, 2025
f18a43d
Merge branch 'commaai:master' into ccnc-port
royjr Mar 15, 2025
ac69ac4
Merge branch 'commaai:master' into ccnc-port
royjr Mar 18, 2025
039c076
fix vehicle diagnostics
royjr Mar 18, 2025
339ec70
only block SMART_CRUISE_CONTROL_CONDITIONS_NOT_MET on op long
royjr Mar 18, 2025
da6acd8
dont need CAMERA_SCC
royjr Mar 18, 2025
b5f6bb8
add HYUNDAI_TUCSON_HEV_2025
royjr Mar 18, 2025
864f62e
Revert "dont need CAMERA_SCC"
royjr Mar 18, 2025
dfd253b
CAMERA_SCC only
royjr Mar 18, 2025
eb6d14e
simple CC
royjr Mar 20, 2025
706b34e
simple CP
royjr Mar 20, 2025
c57a5e7
simple CS
royjr Mar 20, 2025
bb3e23f
send only what we need
royjr Mar 20, 2025
e2bf930
vEgoCluster for CANFD
royjr Mar 20, 2025
a49b3ad
do we still need this?
royjr Mar 20, 2025
c59a00a
Revert "do we still need this?"
royjr Mar 20, 2025
c66ea33
CANFD uses speed_factor
royjr Mar 20, 2025
560e04c
this works!
royjr Mar 20, 2025
e2dfc96
show lat engagement status
royjr Mar 21, 2025
f2ecb48
change to enabled
royjr Mar 21, 2025
683f4cf
these too
royjr Mar 21, 2025
c8f8c2d
fix nearbyint rounding error
royjr Mar 21, 2025
c9eaa60
Merge branch 'commaai:master' into ccnc-port
royjr Mar 21, 2025
f76e861
Merge branch 'ccnc-port' of https://github.com/royjr/opendbc into ccn…
royjr Mar 21, 2025
813fc90
better match
royjr Mar 22, 2025
41af288
match stock icons
royjr Mar 22, 2025
ee9c850
fix speed mismatch on op long
royjr Mar 22, 2025
ccd77e1
Merge branch 'commaai:master' into ccnc-port
royjr Mar 22, 2025
8662a1b
fix
royjr Mar 22, 2025
8da42ed
substitute whats known
royjr Mar 23, 2025
c14173d
hmm
royjr Mar 23, 2025
3e43718
remove HYUNDAI_TUCSON_2025
royjr Apr 5, 2025
16fd719
Merge branch 'commaai:master' into ccnc-port
royjr Apr 8, 2025
50f4b5f
Merge remote-tracking branch 'upstream/master' into ccnc-port-testing
royjr Apr 23, 2025
7d492ac
set true later?
royjr Apr 23, 2025
4a22c30
remove KIA_K5_2025
royjr Apr 23, 2025
42837b7
Revert "remove KIA_K5_2025"
royjr Apr 23, 2025
90e8f6a
always block messages
royjr Apr 23, 2025
1eb3c97
more fixes
royjr Apr 23, 2025
dda8d2c
fix tests
royjr Apr 24, 2025
819fb5c
temp ignore cov
royjr Apr 24, 2025
344696d
fix op long
royjr Apr 24, 2025
2b72758
Squashed commit of the following:
royjr Apr 24, 2025
0902a06
Revert "Squashed commit of the following:"
royjr Apr 24, 2025
fa696b1
Merge branch 'ccnc-port-testing' into ccnc-port
royjr Apr 24, 2025
2bae62a
add HYUNDAI_TUCSON_HEV_2025 route
royjr Apr 26, 2025
bd82db0
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Apr 28, 2025
5ef4475
Merge branch 'commaai:master' into ccnc-port
royjr May 1, 2025
e1396ba
Merge branch 'commaai:master' into ccnc-port
royjr May 9, 2025
50a2c19
not needed
royjr May 9, 2025
02845f0
remove unused latactive
royjr May 22, 2025
669b8b3
more accurate LANE_CHANGE_SPEED_MIN
royjr May 22, 2025
1a67e56
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr May 22, 2025
8fea35c
fix metric
royjr May 23, 2025
c2df2ce
disable isla sound on op long
royjr May 23, 2025
fea541c
Merge branch 'master' into ccnc-port
royjr Jun 2, 2025
6cb0bb4
sync
royjr Jun 2, 2025
4befb80
for now
royjr Jun 2, 2025
7d27926
fix 1b5
royjr Jun 2, 2025
2f30d43
really
royjr Jun 2, 2025
416a103
Update hyundai_canfd.dbc
royjr Jun 2, 2025
1a60e00
correct car packages
royjr Jun 3, 2025
2155d8b
better lane pos
royjr Jun 3, 2025
10072ed
fr
royjr Jun 3, 2025
64ae32d
fr fr
royjr Jun 3, 2025
de3e235
hide scc2 alerts
royjr Jun 3, 2025
bea9154
group by similar
royjr Jun 3, 2025
ea60528
remove comments
royjr Jun 3, 2025
75ddabf
HYUNDAI_KONA_HEV_2ND_GEN
royjr Jun 8, 2025
9d16e30
KIA_K4_2025
royjr Jun 8, 2025
05f2053
k4 is ccnc
royjr Jun 8, 2025
ccb7a17
KIA_K4_2025 route
royjr Jun 8, 2025
6cffa3e
HYUNDAI_KONA_HEV_2ND_GEN route
royjr Jun 8, 2025
5cd2f57
Add Hyundai Santa Cruz 2025 support
royjr Jun 28, 2025
916aba7
Merge remote-tracking branch 'upstream/master' into ccnc-port
royjr Jun 28, 2025
aebcc0e
Update Hyundai CAN FD message field names and sources
royjr Jun 28, 2025
c8677dc
Add Dummy to Longitudinal_Distance signal
royjr Jun 28, 2025
c2cc189
Update CARS.md
royjr Jul 1, 2025
d96588e
Merge branch 'commaai:master' into ccnc-port
royjr Jul 7, 2025
2d18802
Merge branch 'master' into ccnc-port
royjr Jul 31, 2025
6e91e67
Update CARS.md
royjr Jul 31, 2025
1400626
remove this?
royjr Jul 31, 2025
1f44bc0
remove radar for now
royjr Jul 31, 2025
f209815
more no radar
royjr Jul 31, 2025
62c638a
cleanup dbc
royjr Aug 1, 2025
9c53c75
remove HYUNDAI_KONA_EV_2ND_GEN since HDA2
royjr Aug 1, 2025
d53a515
more stock
royjr Aug 1, 2025
2e0d812
remove
royjr Aug 1, 2025
a933a5a
one line assign
royjr Aug 1, 2025
aa7ce42
one line alt
royjr Aug 1, 2025
274f16f
one line blinker
royjr Aug 1, 2025
5149623
one line blindspot
royjr Aug 1, 2025
7e0df31
dont need for now
royjr Aug 1, 2025
fa54c81
Revert "one line blindspot"
royjr Aug 1, 2025
f51000e
Revert "one line blinker"
royjr Aug 1, 2025
e4e46c8
restore LANELINE_CURVATURE
royjr Aug 1, 2025
b37eae5
no cars.md
royjr Aug 2, 2025
8d7bc34
Merge branch 'commaai:master' into ccnc-port
royjr Aug 4, 2025
21d8720
fix ruff
royjr Aug 4, 2025
79afd12
Merge branch 'master' into ccnc-port
royjr Aug 8, 2025
f81e6b0
Merge branch 'commaai:master' into ccnc-port
royjr Aug 10, 2025
b7827ec
sync from sp
royjr Aug 13, 2025
efb2264
Merge branch 'master' into ccnc-port
royjr Aug 31, 2025
3ce6328
Merge branch 'master' into ccnc-port
royjr Sep 2, 2025
eec5635
fix tests
royjr Sep 3, 2025
5718a57
add route HYUNDAI_KONA_HEV_2ND_GEN
royjr Sep 4, 2025
3840190
Merge branch 'master' into ccnc-port
royjr Sep 4, 2025
8a7171c
add route HYUNDAI_KONA_2ND_GEN
royjr Sep 7, 2025
fc5e047
add route HYUNDAI_SANTA_CRUZ_2025
royjr Sep 7, 2025
b835393
Revert "add route HYUNDAI_SANTA_CRUZ_2025"
royjr Sep 7, 2025
3b6e022
add route HYUNDAI_SANTA_CRUZ_2025
royjr Sep 7, 2025
527624e
Revert "add route HYUNDAI_SANTA_CRUZ_2025"
royjr Sep 7, 2025
0ef4700
add route HYUNDAI_SANTA_CRUZ_2025
royjr Sep 7, 2025
cab040c
Merge branch 'master' into ccnc-port
royjr Sep 23, 2025
a9fd9d4
Merge branch 'master' into ccnc-port
royjr Sep 23, 2025
738ab39
Merge branch 'master' into ccnc-port
royjr Oct 3, 2025
eea84cd
add HYUNDAI_KONA_HEV_2ND_GEN fps
royjr Oct 5, 2025
d366c6b
Merge branch 'master' into ccnc-port
royjr Oct 10, 2025
72cd4a5
anyBlinker simple
royjr Oct 12, 2025
0c5f345
add LANELINE_CURVATURE
royjr Oct 12, 2025
4c4d089
Merge branch 'master' into ccnc-port
royjr Nov 8, 2025
de8b022
Merge branch 'master' into ccnc-port
royjr Nov 12, 2025
a7f355d
Update routes.py
royjr Nov 12, 2025
62ff294
better match sp logic
royjr Nov 12, 2025
80b88e4
fix cov
royjr Nov 13, 2025
c043357
CANPackerSafety
royjr Nov 13, 2025
7d0e9de
make_can_msg_safety
royjr Nov 13, 2025
7d8f9e8
try this
royjr Nov 13, 2025
d2a3c91
Revert "try this"
royjr Nov 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions opendbc/car/hyundai/carcontroller.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ def create_canfd_msgs(self, apply_steer_req, apply_torque, set_speed_in_units, a

lka_steering = self.CP.flags & HyundaiFlags.CANFD_LKA_STEERING
lka_steering_long = lka_steering and self.CP.openpilotLongitudinalControl
ccnc_non_hda2 = self.CP.flags & HyundaiFlags.CCNC and not lka_steering

# steering control
can_sends.extend(hyundaicanfd.create_steering_messages(self.packer, self.CP, self.CAN, CC.enabled, apply_steer_req, apply_torque))
Expand All @@ -176,7 +177,11 @@ def create_canfd_msgs(self, apply_steer_req, apply_torque, set_speed_in_units, a

# LFA and HDA icons
if self.frame % 5 == 0 and (not lka_steering or lka_steering_long):
can_sends.append(hyundaicanfd.create_lfahda_cluster(self.packer, self.CAN, CC.enabled))
if ccnc_non_hda2:
can_sends.extend(hyundaicanfd.create_ccnc(self.packer, self.CAN, self.CP.openpilotLongitudinalControl, CC.enabled, CC.hudControl,
CC.leftBlinker, CC.rightBlinker, CS.msg_161, CS.msg_162, CS.msg_1b5, CS.is_metric, CS.out))
else:
can_sends.append(hyundaicanfd.create_lfahda_cluster(self.packer, self.CAN, CC.enabled))

# blinkers
if lka_steering and self.CP.flags & HyundaiFlags.ENABLE_BLINKERS:
Expand All @@ -185,11 +190,11 @@ def create_canfd_msgs(self, apply_steer_req, apply_torque, set_speed_in_units, a
if self.CP.openpilotLongitudinalControl:
if lka_steering:
can_sends.extend(hyundaicanfd.create_adrv_messages(self.packer, self.CAN, self.frame))
else:
elif not ccnc_non_hda2:
can_sends.extend(hyundaicanfd.create_fca_warning_light(self.packer, self.CAN, self.frame))
if self.frame % 2 == 0:
can_sends.append(hyundaicanfd.create_acc_control(self.packer, self.CAN, CC.enabled, self.accel_last, accel, stopping, CC.cruiseControl.override,
set_speed_in_units, hud_control))
set_speed_in_units, hud_control, CS.cruise_info if ccnc_non_hda2 else None))
self.accel_last = accel
else:
# button presses
Expand Down
18 changes: 10 additions & 8 deletions opendbc/car/hyundai/carstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def __init__(self, CP):
self.buttons_counter = 0

self.cruise_info = {}
self.msg_161, self.msg_162, self.msg_1b5 = {}, {}, {}

# On some cars, CLU15->CF_Clu_VehicleSpeed can oscillate faster than the dash updates. Sample at 5 Hz
self.cluster_speed = 0
Expand Down Expand Up @@ -243,15 +244,16 @@ def update_canfd(self, can_parsers) -> structs.CarState:
ret.steeringPressed = self.update_steering_pressed(abs(ret.steeringTorque) > self.params.STEER_THRESHOLD, 5)
ret.steerFaultTemporary = cp.vl["MDPS"]["LKA_FAULT"] != 0

# TODO: alt signal usage may be described by cp.vl['BLINKERS']['USE_ALT_LAMP']
left_blinker_sig, right_blinker_sig = "LEFT_LAMP", "RIGHT_LAMP"
if self.CP.carFingerprint == CAR.HYUNDAI_KONA_EV_2ND_GEN:
left_blinker_sig, right_blinker_sig = "LEFT_LAMP_ALT", "RIGHT_LAMP_ALT"
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_lamp(50, cp.vl["BLINKERS"][left_blinker_sig],
cp.vl["BLINKERS"][right_blinker_sig])
alt = "_ALT" if self.CP.carFingerprint == CAR.HYUNDAI_KONA_EV_2ND_GEN else ""
if self.CP.flags & HyundaiFlags.CCNC and not self.CP.flags & HyundaiFlags.CANFD_LKA_STEERING:
self.msg_161, self.msg_162, self.msg_1b5 = map(copy.copy, (cp_cam.vl["CCNC_0x161"], cp_cam.vl["CCNC_0x162"], cp_cam.vl["FR_CMR_03_50ms"]))
self.cruise_info = copy.copy((cp_cam if self.CP.flags & HyundaiFlags.CANFD_CAMERA_SCC else cp).vl["SCC_CONTROL"])
alt = "_ALT"
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_lamp(50, cp.vl["BLINKERS"][f"LEFT_LAMP{alt}"],
cp.vl["BLINKERS"][f"RIGHT_LAMP{alt}"])
if self.CP.enableBsm:
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FL_INDICATOR"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FR_INDICATOR"] != 0
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"][f"FL_INDICATOR{alt}"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"][f"FR_INDICATOR{alt}"] != 0

# cruise state
# CAN FD cars enable on main button press, set available if no TCS faults preventing engagement
Expand Down
81 changes: 81 additions & 0 deletions opendbc/car/hyundai/fingerprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,15 @@
b'\xf1\x00DN8 MFC AT USA LHD 1.00 1.07 99211-L1000 211223',
],
},
CAR.HYUNDAI_SONATA_2024: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00DN8 MFC AT KOR LHD 1.00 1.01 99211-L1800 230512',
b'\xf1\x00DN8 MFC AT USA LHD 1.00 1.01 99211-L1800 230512',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DN8_ RDR ----- 1.00 1.00 99110-L1800 ',
],
},
CAR.HYUNDAI_SONATA_LF: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00LF__ SCC F-CUP 1.00 1.00 96401-C2200 ',
Expand Down Expand Up @@ -561,6 +570,16 @@
b'\xf1\x00OS9 LKAS AT USA LHD 1.00 1.00 95740-J9300 g21',
],
},
CAR.HYUNDAI_KONA_2ND_GEN: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00SX2 MFC AT USA LHD 1.00 1.03 99211-BE000 230517',
b'\xf1\x00SX2 MFC AT USA LHD 1.00 1.07 99211-BE000 240611',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00SX2_ RDR ----- 1.00 1.02 99110-BE000 ',
b'\xf1\x00SX2_ RDR ----- 1.00 1.02 99110-BE500 ',
],
},
CAR.KIA_CEED: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00CD__ SCC F-CUP 1.00 1.00 99110-J7500 ',
Expand Down Expand Up @@ -596,6 +615,14 @@
b'\xf1\x00BD__ SCC H-CUP 1.00 1.02 99110-M6000 ',
],
},
CAR.KIA_K4_2025: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00CL4 MFC AT USA LHD 1.00 1.02 99210-GG000 240708',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00CL4_ RDR ----- 1.00 1.01 99110-GG000 ',
],
},
CAR.KIA_K5_2021: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DL3_ SCC F-CUP 1.00 1.03 99110-L2100 ',
Expand Down Expand Up @@ -628,6 +655,14 @@
b'\xf1\x00DL ESC \t 102"\x08\x10 58910-L3800',
],
},
CAR.KIA_K5_2025: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00DL3 MFC AT USA LHD 1.00 1.04 99210-L2500 240117',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DL3_ RDR ----- 1.00 1.01 99110-L2500 ',
],
},
CAR.KIA_K5_HEV_2020: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DLhe SCC FHCUP 1.00 1.02 99110-L7000 ',
Expand Down Expand Up @@ -711,6 +746,7 @@
],
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00SX2EMFC AT KOR LHD 1.00 1.00 99211-BF000 230410',
b'\xf1\x00SX2EMFC AT USA LHD 1.00 1.02 99211-BF000 230823',
],
},
CAR.KIA_NIRO_EV: {
Expand Down Expand Up @@ -966,6 +1002,16 @@
b'\xf1\x00OSH LKAS AT KOR LHD 1.00 1.01 95740-CM000 l31',
],
},
CAR.HYUNDAI_KONA_HEV_2ND_GEN: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00SX2HMFC AT AUS RHD 1.00 1.00 99211-BE001 241015',
b'\xf1\x00SX2HMFC AT EUR RHD 1.00 1.04 99211-BE000 231010',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00SX2_ RDR ----- 1.00 1.02 99110-BE000 ',
b'\xf1\x00SX2_ RDR ----- 1.00 1.02 99110-BE500 ',
],
},
CAR.HYUNDAI_SONATA_HYBRID: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DNhe SCC F-CUP 1.00 1.02 99110-L5000 ',
Expand All @@ -987,6 +1033,15 @@
b'\xf1\x00DN8HMFC AT USA LHD 1.00 1.07 99211-L1000 211223',
],
},
CAR.HYUNDAI_SONATA_HEV_2024: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00DN8HMFC AT KOR LHD 1.00 1.01 99211-L1800 230512',
b'\xf1\x00DN8HMFC AT USA LHD 1.00 1.01 99211-L1800 230512',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DN8_ RDR ----- 1.00 1.00 99110-L1800 ',
],
},
CAR.KIA_SORENTO: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00UMP LKAS AT AUS RHD 1.00 1.00 96400-C6550 S30',
Expand Down Expand Up @@ -1089,6 +1144,16 @@
b'\xf1\x00NX4__ 1.01 1.00 99110-N9100 ',
],
},
CAR.HYUNDAI_TUCSON_HEV_2025: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00NX4 FR_CMR AT USA LHD 1.00 1.00 99211-N7030 C55',
b'\xf1\x00NX4 FR_CMR AT EUR LHD 1.00 1.00 99211-N7030 C55',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00NX4__ 1.00 1.02 99110N7000 ',
b'\xf1\x00NX4__ 1.00 1.02 99110N7100 ',
],
},
CAR.HYUNDAI_SANTA_CRUZ_1ST_GEN: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00NX4 FR_CMR AT USA LHD 1.00 1.00 99211-CW000 14M',
Expand All @@ -1100,6 +1165,14 @@
b'\xf1\x00NX4__ 1.01 1.00 99110-K5000 ',
],
},
CAR.HYUNDAI_SANTA_CRUZ_2025: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00NX4 FR_CMR AT USA LHD 1.00 1.00 99211-N7030 C55',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00NX4__ 1.00 1.00 99110K5500 ',
],
},
CAR.KIA_SPORTAGE_5TH_GEN: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00NQ5 FR_CMR AT AUS RHD 1.00 1.00 99211-P1040 663',
Expand Down Expand Up @@ -1171,6 +1244,14 @@
b'\xf1\x00MQ4_ SCC FHCUP 1.00 1.08 99110-P2000 ',
],
},
CAR.KIA_SORENTO_2024: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00MQ4 MFC AT AUS RHD 1.01 1.04 99210-P2550 231127',
],
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00MQ4_ RDR ----- 1.00 1.01 99110-P2500 ',
],
},
CAR.KIA_SORENTO_HEV_4TH_GEN: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00MQ4HMFC AT KOR LHD 1.00 1.04 99210-P2000 200330',
Expand Down
106 changes: 105 additions & 1 deletion opendbc/car/hyundai/hyundaicanfd.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import copy
import numpy as np
from opendbc.car import CanBusBase
from opendbc.car.common.conversions import Conversions as CV
from opendbc.car.crc import CRC16_XMODEM
from opendbc.car.hyundai.values import HyundaiFlags

Expand Down Expand Up @@ -130,7 +131,108 @@ def create_lfahda_cluster(packer, CAN, enabled):
return packer.make_can_msg("LFAHDA_CLUSTER", CAN.ECAN, values)


def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_override, set_speed, hud_control):
def create_ccnc(packer, CAN, openpilotLongitudinalControl, enabled, hud, leftBlinker, rightBlinker, msg_161, msg_162, msg_1b5, is_metric, out):
for f in {"FAULT_LSS", "FAULT_HDA", "FAULT_DAS", "FAULT_LFA", "FAULT_DAW", "FAULT_ESS"}:
msg_162[f] = 0
if msg_161["ALERTS_2"] == 5:
msg_161.update({"ALERTS_2": 0, "SOUNDS_2": 0})
if msg_161["ALERTS_3"] == 17:
msg_161["ALERTS_3"] = 0
if msg_161["ALERTS_5"] in (2, 5):
msg_161["ALERTS_5"] = 0
if msg_161["SOUNDS_4"] == 2 and msg_161["LFA_ICON"] in (3, 0,):
msg_161["SOUNDS_4"] = 0

LANE_CHANGE_SPEED_MIN = 8.9408
anyBlinker = leftBlinker or rightBlinker
curvature = {i: (31 if i == -1 else 13 - abs(i + 15)) if i < 0 else 15 + i for i in range(-15, 16)}

lfa_icon = enabled

msg_161.update({
"DAW_ICON": 0,
"LKA_ICON": 0,
"LFA_ICON": 2 if lfa_icon else 0,
"CENTERLINE": 1 if lfa_icon else 0,
"LANELINE_CURVATURE": curvature.get(max(-15, min(int(out.steeringAngleDeg / 4.5), 15)), 14) if lfa_icon and not anyBlinker else 15,
"LANELINE_LEFT": (0 if not lfa_icon else 1 if not hud.leftLaneVisible else 4 if hud.leftLaneDepart else 6 if anyBlinker else 2),
"LANELINE_RIGHT": (0 if not lfa_icon else 1 if not hud.rightLaneVisible else 4 if hud.rightLaneDepart else 6 if anyBlinker else 2),
"LCA_LEFT_ICON": (0 if not lfa_icon or out.vEgo < LANE_CHANGE_SPEED_MIN else 1 if out.leftBlindspot else 2 if anyBlinker else 4),
"LCA_RIGHT_ICON": (0 if not lfa_icon or out.vEgo < LANE_CHANGE_SPEED_MIN else 1 if out.rightBlindspot else 2 if anyBlinker else 4),
"LCA_LEFT_ARROW": 2 if leftBlinker else 0,
"LCA_RIGHT_ARROW": 2 if rightBlinker else 0,
})

if lfa_icon and (leftBlinker or rightBlinker):
leftlaneraw, rightlaneraw = msg_1b5["Info_LftLnPosVal"], msg_1b5["Info_RtLnPosVal"]

scale_per_m = 15 / 1.7
leftlane = abs(int(round(15 + (leftlaneraw - 1.7) * scale_per_m)))
rightlane = abs(int(round(15 + (rightlaneraw - 1.7) * scale_per_m)))

if msg_1b5["Info_LftLnQualSta"] not in (2, 3):
leftlane = 0
if msg_1b5["Info_RtLnQualSta"] not in (2, 3):
rightlane = 0

if leftlaneraw == -2.0248375:
leftlane = 30 - rightlane
if rightlaneraw == 2.0248375:
rightlane = 30 - leftlane

if leftlaneraw == rightlaneraw == 0:
leftlane = rightlane = 15
elif leftlaneraw == 0:
leftlane = 30 - rightlane
elif rightlaneraw == 0:
rightlane = 30 - leftlane

total = leftlane + rightlane
if total == 0:
leftlane = rightlane = 15
else:
leftlane = round((leftlane / total) * 30)
rightlane = 30 - leftlane

msg_161["LANELINE_LEFT_POSITION"] = leftlane
msg_161["LANELINE_RIGHT_POSITION"] = rightlane

if hud.leftLaneDepart or hud.rightLaneDepart:
msg_162["VIBRATE"] = 1

if openpilotLongitudinalControl:
if msg_161["ALERTS_3"] in (1, 2, 3, 4, 7, 8, 9, 10):
msg_161["ALERTS_3"] = 0
if msg_161["ALERTS_5"] == 4:
msg_161["ALERTS_5"] = 0
if msg_161["SOUNDS_3"] == 5:
msg_161["SOUNDS_3"] = 0

main_cruise_enabled = out.cruiseState.available

msg_161.update({
"SETSPEED": 3 if enabled else 1,
"SETSPEED_HUD": 0 if not main_cruise_enabled else 2 if enabled else 1,
"SETSPEED_SPEED": (
255 if not main_cruise_enabled else
(40 if is_metric else 25) if (s := round(out.vCruiseCluster * (1 if is_metric else CV.KPH_TO_MPH))) > (145 if is_metric else 90) else s
),
"DISTANCE": hud.leadDistanceBars,
"DISTANCE_SPACING": 0 if not main_cruise_enabled else 1 if enabled else 3,
"DISTANCE_LEAD": 0 if not main_cruise_enabled else 2 if enabled and hud.leadVisible else 1 if hud.leadVisible else 0,
"DISTANCE_CAR": 0 if not main_cruise_enabled else 2 if enabled else 1,
"SLA_ICON": 0,
"NAV_ICON": 0,
"TARGET": 0,
})

msg_162["LEAD"] = 0 if not main_cruise_enabled else 2 if enabled else 1
msg_162["LEAD_DISTANCE"] = msg_1b5["Longitudinal_Distance"]

return [packer.make_can_msg(msg, CAN.ECAN, data) for msg, data in [("CCNC_0x161", msg_161), ("CCNC_0x162", msg_162)]]


def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_override, set_speed, hud_control, cruise_info=None):
jerk = 5
jn = jerk / 50
if not enabled or gas_override:
Expand All @@ -157,6 +259,8 @@ def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_ov
"SET_ME_TMP_64": 0x64,
"DISTANCE_SETTING": hud_control.leadDistanceBars,
}
if cruise_info:
values.update({s: cruise_info[s] for s in ["ACC_ObjDist", "ACC_ObjRelSpd"]})

return packer.make_can_msg("SCC_CONTROL", CAN.ECAN, values)

Expand Down
2 changes: 2 additions & 0 deletions opendbc/car/hyundai/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ def _get_params(ret: structs.CarParams, candidate, fingerprint, car_fw, alpha_lo
ret.safetyConfigs[-1].safetyParam |= HyundaiSafetyFlags.CANFD_ALT_BUTTONS.value
if ret.flags & HyundaiFlags.CANFD_CAMERA_SCC:
ret.safetyConfigs[-1].safetyParam |= HyundaiSafetyFlags.CAMERA_SCC.value
if ret.flags & HyundaiFlags.CCNC and not ret.flags & HyundaiFlags.CANFD_LKA_STEERING:
ret.safetyConfigs[-1].safetyParam |= HyundaiSafetyFlags.CCNC.value

else:
# Shared configuration for non CAN-FD cars
Expand Down
2 changes: 2 additions & 0 deletions opendbc/car/hyundai/tests/test_hyundai.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
# CAN FD
CAR.KIA_SPORTAGE_5TH_GEN,
CAR.HYUNDAI_SANTA_CRUZ_1ST_GEN,
CAR.HYUNDAI_SANTA_CRUZ_2025,
CAR.HYUNDAI_TUCSON_4TH_GEN,
CAR.HYUNDAI_TUCSON_HEV_2025,
# CAN
CAR.HYUNDAI_ELANTRA,
CAR.HYUNDAI_ELANTRA_GT_I30,
Expand Down
Loading
Loading