Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Adding 2025 Ioniq 5 PE #63

Draft
wants to merge 1 commit into
base: master-new
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion docs/CARS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!--- AUTOGENERATED FROM selfdrive/car/CARS_template.md, DO NOT EDIT. --->

# Support Information for 345 Known Cars
# Support Information for 346 Known Cars

|Make|Model|Package|Support Level|
|---|---|---|:---:|
Expand Down Expand Up @@ -107,6 +107,7 @@
|Hyundai|Ioniq 5 (Southeast Asia and Europe only) 2022-24|All|[Upstream](#upstream)|
|Hyundai|Ioniq 5 (with HDA II) 2022-24|Highway Driving Assist II|[Upstream](#upstream)|
|Hyundai|Ioniq 5 (without HDA II) 2022-24|Highway Driving Assist|[Upstream](#upstream)|
|Hyundai|Ioniq 5 PE (with HDA II) 2025+|Highway Driving Assist II|[Upstream](#upstream)|
|Hyundai|Ioniq 6 (with HDA II) 2023-24|Highway Driving Assist II|[Upstream](#upstream)|
|Hyundai|Ioniq Electric 2019|Smart Cruise Control (SCC)|[Upstream](#upstream)|
|Hyundai|Ioniq Electric 2020|All|[Upstream](#upstream)|
Expand Down
62 changes: 59 additions & 3 deletions opendbc/car/hyundai/carcontroller.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import numpy as np
from opendbc.can.packer import CANPacker
from opendbc.car import Bus, DT_CTRL, apply_driver_steer_torque_limits, common_fault_avoidance, make_tester_present_msg, structs
from opendbc.car import Bus, DT_CTRL, apply_driver_steer_torque_limits, apply_std_steer_angle_limits, common_fault_avoidance, \
make_tester_present_msg, structs
from opendbc.car.common.conversions import Conversions as CV
from opendbc.car.hyundai import hyundaicanfd, hyundaican
from opendbc.car.hyundai.carstate import CarState
Expand Down Expand Up @@ -59,6 +60,9 @@ def __init__(self, dbc_names, CP, CP_SP):
self.apply_steer_last = 0
self.car_fingerprint = CP.carFingerprint
self.last_button_frame = 0
self.apply_angle_last = 0
self.lkas_max_torque = 0
self.driver_applied_torque_reducer = 0

def update(self, CC, CC_SP, CS, now_nanos):
EsccCarController.update(self, CS)
Expand All @@ -75,8 +79,56 @@ def update(self, CC, CC_SP, CS, now_nanos):
self.angle_limit_counter, MAX_ANGLE_FRAMES,
MAX_ANGLE_CONSECUTIVE_FRAMES)

apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.params)

# Figure out torque value. On Stock when LKAS is active, this is variable,
# but 0 when LKAS is not actively steering, so because we're "tricking" ADAS
# into thinking LKAS is always active, we need to make sure we're applying
# torque when the driver is not actively steering. The default value chosen
# here is based on observations of the stock LKAS system when it's engaged
# CS.out.steeringPressed and steeringTorque are based on the
# STEERING_COL_TORQUE value
MAX_TORQUE = 240
# Interpolate a percent to apply to max torque based on vEgo value, which is
# the "best estimate of speed". This means that under 20 (units?) we will
# apply less torque, and over 20 we will apply the full calculated torque.
ego_weight = np.interp(CS.out.vEgo, [0, 5, 10, 20], [0.2, 0.3, 0.5, 1.0])

# Track if and how long the driver has been applying torque and create a
# value to reduce the max torque applied. This block will cause the
# `driver_applied_torque_reducer` to settle to value between 30 and 150.
# While the driver applies torque the value will decrease to 30, and while
# the driver is not applying torque the value will increase to 150.
if abs(CS.out.steeringTorque) > 200:
# If the driver is applying some torque manually, reduce the value down to 30 (the min)
self.driver_applied_torque_reducer -= 1
if self.driver_applied_torque_reducer < 30:
self.driver_applied_torque_reducer = 30
else:
# While the driver is not applying torque, increase the value up to 150 (the max)
self.driver_applied_torque_reducer += 1
if self.driver_applied_torque_reducer > 150:
self.driver_applied_torque_reducer = 150

if self.driver_applied_torque_reducer < 150:
# If the driver has just started applying torque, the reducer value will
# be around 150 so we won't reduce the max torque much. As the driver
# continues to apply torque, the reducer value will decrease to 30, so we
# will reduce the max torque more to fight them less (at this level we'll
# be doing 1/5 of the torque)
self.lkas_max_torque = int(round(MAX_TORQUE * ego_weight * (self.driver_applied_torque_reducer / 150)))
else:
# A torque reducer value of 150 means the driver has not been applying
# torque for a while, so we will apply the full max torque value, adjusted
# by the ego weight (based on driving speed)
self.lkas_max_torque = MAX_TORQUE * ego_weight

if not CC.latActive:
apply_angle = CS.out.steeringAngleDeg
apply_steer = 0
self.lkas_max_torque = 0

self.apply_angle_last = apply_angle

# Hold torque with induced temporary fault when cutting the actuation bit
torque_fault = CC.latActive and not apply_steer_req
Expand Down Expand Up @@ -115,15 +167,18 @@ def update(self, CC, CC_SP, CS, now_nanos):
hda2_long = hda2 and self.CP.openpilotLongitudinalControl

# steering control
can_sends.extend(hyundaicanfd.create_steering_messages(self.packer, self.CP, self.CAN, CC.enabled, apply_steer_req, apply_steer, self.lkas_icon))
can_sends.extend(hyundaicanfd.create_steering_messages(self.packer, self.CP, self.CAN, CC.enabled,
apply_steer_req, CS.out.steeringPressed,
apply_steer, self.lkas_icon, apply_angle, self.lkas_max_torque))

# prevent LFA from activating on HDA2 by sending "no lane lines detected" to ADAS ECU
if self.frame % 5 == 0 and hda2:
can_sends.append(hyundaicanfd.create_suppress_lfa(self.packer, self.CAN, CS.hda2_lfa_block_msg,
self.CP.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING))

# LFA and HDA icons
if self.frame % 5 == 0 and (not hda2 or hda2_long):
update_lfahda_icons = (not hda2 or hda2_long) or self.CP.flags & HyundaiFlags.ANGLE_CONTROL
if self.frame % 5 == 0 and update_lfahda_icons:
can_sends.append(hyundaicanfd.create_lfahda_cluster(self.packer, self.CAN, CC.enabled, self.lfa_icon))

# blinkers
Expand Down Expand Up @@ -175,6 +230,7 @@ def update(self, CC, CC_SP, CS, now_nanos):
new_actuators = actuators.as_builder()
new_actuators.steer = apply_steer / self.params.STEER_MAX
new_actuators.steerOutputCan = apply_steer
new_actuators.steeringAngleDeg = apply_angle
new_actuators.accel = accel

self.frame += 1
Expand Down
10 changes: 7 additions & 3 deletions opendbc/car/hyundai/carstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,13 +237,17 @@ def update_canfd(self, can_parsers) -> structs.CarState:

# 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:
if self.CP.carFingerprint in (CAR.HYUNDAI_KONA_EV_2ND_GEN, CAR.HYUNDAI_IONIQ_5_PE):
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])
if self.CP.enableBsm:
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FL_INDICATOR"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FR_INDICATOR"] != 0
if self.CP.flags & HyundaiFlags.ANGLE_CONTROL:
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["INDICATOR_LEFT_FOUR"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["INDICATOR_RIGHT_FOUR"] != 0
else:
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FL_INDICATOR"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FR_INDICATOR"] != 0

# cruise state
# CAN FD cars enable on main button press, set available if no TCS faults preventing engagement
Expand Down
12 changes: 11 additions & 1 deletion opendbc/car/hyundai/fingerprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,16 @@
b'\xf1\x00NE1 MFC AT USA LHD 1.00 1.06 99211-GI010 230110',
],
},
CAR.HYUNDAI_IONIQ_5_PE: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00NE__ RDR ----- 1.00 1.00 99110-PI000 ',
b'\xf1\x00NE__ RDR ----- 1.00 1.01 99110-GI500 '
],
(Ecu.fwdCamera, 0x7C4, None): [
b'\xf1\x00NE MFC AT USA LHD 1.00 1.01 99211-PI000 240905',
b'\xf1\x00NE MFC AT EUR LHD 1.00 1.03 99211-GI500 240809',
],
},
CAR.HYUNDAI_IONIQ_6: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00CE__ RDR ----- 1.00 1.01 99110-KL000 ',
Expand Down Expand Up @@ -1192,5 +1202,5 @@
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00US4_ RDR ----- 1.00 1.00 99110-CG000 ',
],
},
}
}
22 changes: 17 additions & 5 deletions opendbc/car/hyundai/hyundaicanfd.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,32 @@ def CAM(self):
return self._cam


def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_steer, lkas_icon):
def create_steering_messages(packer, CP, CAN, enabled, lat_active, steering_pressed, apply_steer, lkas_icon, apply_angle, max_torque):

ret = []

values = {
"LKA_MODE": 2,
"LKA_MODE": 0,
"LKA_ICON": lkas_icon,
"TORQUE_REQUEST": apply_steer,
"TORQUE_REQUEST": 0, #apply_steer,
"LKA_ASSIST": 0,
"STEER_REQ": 1 if lat_active else 0,
"STEER_REQ": 0, # 1 if lat_active else 0,
"STEER_MODE": 0,
"HAS_LANE_SAFETY": 0, # hide LKAS settings
"NEW_SIGNAL_1": 0,
"LKA_ACTIVE": 3 if lat_active else 0, # this changes sometimes, 3 seems to indicate engaged
"NEW_SIGNAL_2": 0,
"LKAS_ANGLE_CMD": -apply_angle,
"LKAS_ANGLE_ACTIVE": 2 if lat_active else 1,
# a torque scale value? ramps up when steering, highest seen is 234
# "UNKNOWN": 50 if lat_active and not steering_pressed else 0,
"UNKNOWN": max_torque if lat_active else 0,
# TODO: Commenting these out to see if the fix a regression
#"NEW_SIGNAL_1": 10,
#"NEW_SIGNAL_3": 9,
#"NEW_SIGNAL_4": 1,
#"NEW_SIGNAL_5": 1,
#"NEW_SIGNAL_6": 1,
#"NEW_SIGNAL_7": 1,
}

if CP.flags & HyundaiFlags.CANFD_HDA2:
Expand Down
12 changes: 8 additions & 4 deletions opendbc/car/hyundai/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from opendbc.car.hyundai.hyundaicanfd import CanBus
from opendbc.car.hyundai.values import HyundaiFlags, CAR, DBC, CANFD_RADAR_SCC_CAR, \
CANFD_UNSUPPORTED_LONGITUDINAL_CAR, \
UNSUPPORTED_LONGITUDINAL_CAR
UNSUPPORTED_LONGITUDINAL_CAR, ANGLE_CONTROL_CAR
from opendbc.car.hyundai.radar_interface import RADAR_START_ADDR
from opendbc.car.interfaces import CarInterfaceBase
from opendbc.car.disable_ecu import disable_ecu
Expand Down Expand Up @@ -63,8 +63,8 @@ def _get_params(ret: structs.CarParams, candidate, fingerprint, car_fw, experime

if ret.flags & HyundaiFlags.CANFD_HDA2:
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2
if ret.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING:
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING
if ret.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING:
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING
if ret.flags & HyundaiFlags.CANFD_ALT_BUTTONS:
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_CANFD_ALT_BUTTONS
if ret.flags & HyundaiFlags.CANFD_CAMERA_SCC:
Expand Down Expand Up @@ -97,7 +97,11 @@ def _get_params(ret: structs.CarParams, candidate, fingerprint, car_fw, experime
ret.centerToFront = ret.wheelbase * 0.4
ret.steerActuatorDelay = 0.1
ret.steerLimitTimer = 0.4
CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning)

if candidate in ANGLE_CONTROL_CAR:
ret.steerControlType = structs.CarParams.SteerControlType.angle
else:
CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning)

if ret.flags & HyundaiFlags.ALT_LIMITS:
ret.safetyConfigs[-1].safetyParam |= Panda.FLAG_HYUNDAI_ALT_LIMITS
Expand Down
14 changes: 13 additions & 1 deletion opendbc/car/hyundai/values.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from dataclasses import dataclass, field
from enum import Enum, IntFlag

from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
from opendbc.car import AngleRateLimit, Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
from opendbc.car.common.conversions import Conversions as CV
from opendbc.car.structs import CarParams
from opendbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column
Expand All @@ -15,6 +15,10 @@ class CarControllerParams:
ACCEL_MIN = -3.5 # m/s
ACCEL_MAX = 2.0 # m/s

# seen changing at 0.2 deg/frame down, 0.1 deg/frame up at 100Hz
ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[5., .8, .15])
ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[5., 3.5, 0.4])

def __init__(self, CP):
self.STEER_DELTA_UP = 3
self.STEER_DELTA_DOWN = 7
Expand Down Expand Up @@ -97,6 +101,7 @@ class HyundaiFlags(IntFlag):

MIN_STEER_32_MPH = 2 ** 23

ANGLE_CONTROL = 2 ** 24

class Footnote(Enum):
CANFD = CarFootnote(
Expand Down Expand Up @@ -315,6 +320,11 @@ class CAR(Platforms):
CarSpecs(mass=1948, wheelbase=2.97, steerRatio=14.26, tireStiffnessFactor=0.65),
flags=HyundaiFlags.EV,
)
HYUNDAI_IONIQ_5_PE = HyundaiCanFDPlatformConfig(
[HyundaiCarDocs("Hyundai Ioniq 5 PE (with HDA II) 2025+", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_q]))],
HYUNDAI_IONIQ_5.specs,
flags=HyundaiFlags.EV | HyundaiFlags.ANGLE_CONTROL,
)
HYUNDAI_IONIQ_6 = HyundaiCanFDPlatformConfig(
[HyundaiCarDocs("Hyundai Ioniq 6 (with HDA II) 2023-24", "Highway Driving Assist II", car_parts=CarParts.common([CarHarness.hyundai_p]))],
HYUNDAI_IONIQ_5.specs,
Expand Down Expand Up @@ -762,4 +772,6 @@ def match_fw_to_car_fuzzy(live_fw_versions, vin, offline_fw_versions) -> set[str
# HyundaiFlags.CANFD_RADAR_SCC | HyundaiFlags.CANFD_NO_RADAR_DISABLE | )
UNSUPPORTED_LONGITUDINAL_CAR = CAR.with_flags(HyundaiFlags.LEGACY) | CAR.with_flags(HyundaiFlags.UNSUPPORTED_LONGITUDINAL)

ANGLE_CONTROL_CAR = CAR.with_flags(HyundaiFlags.ANGLE_CONTROL)

DBC = CAR.create_dbc_map()
3 changes: 3 additions & 0 deletions opendbc/car/torque_data/override.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,6 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"]
# Manually checked
"HONDA_CIVIC_2022" = [2.5, 1.2, 0.15]
"HONDA_HRV_3G" = [2.5, 1.2, 0.2]

# Hyundai/Kia/Genesis angle control
"HYUNDAI_IONIQ_5_PE" = [nan, 3.0, nan]
24 changes: 21 additions & 3 deletions opendbc/dbc/hyundai_canfd.dbc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ BO_ 80 LKAS: 16 XXX
SG_ HAS_LANE_SAFETY : 80|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 111|8@0+ (1,0) [0|255] "" XXX
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
SG_ LKAS_ANGLE_ACTIVE : 77|2@0+ (1,0) [0|3] "" XXX
SG_ LKAS_ANGLE_CMD : 82|14@1- (-0.1,0) [0|511] "" XXX
SG_ UNKNOWN : 96|8@1+ (1,0) [0|255] "" XXX

BO_ 81 ADRV_0x51: 32 ADRV
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
Expand Down Expand Up @@ -128,7 +131,7 @@ BO_ 272 LKAS_ALT: 32 XXX
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 27|2@1+ (1,0) [0|255] "" XXX
SG_ LKA_ACTIVE : 27|2@1+ (1,0) [0|255] "" XXX
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|255] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
Expand All @@ -137,9 +140,17 @@ BO_ 272 LKAS_ALT: 32 XXX
SG_ LKA_ASSIST : 62|1@1+ (1,0) [0|1] "" XXX
SG_ LKA_MODE : 24|3@1+ (1,0) [0|7] "" XXX
SG_ NEW_SIGNAL_2 : 70|2@0+ (1,0) [0|3] "" XXX
SG_ LKAS_ANGLE_ACTIVE : 77|2@0+ (1,0) [0|3] "" XXX
SG_ HAS_LANE_SAFETY : 80|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_3 : 111|8@0+ (1,0) [0|255] "" XXX
SG_ LKAS_ANGLE_CMD : 82|14@1- (-0.1,0) [0|511] "" XXX
SG_ UNKNOWN : 96|8@1+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_3 : 108|5@0+ (1,0) [0|255] "" XXX
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_1 : 75|4@0+ (1,0) [0|15] "" XXX
SG_ NEW_SIGNAL_6 : 225|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_5 : 228|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_4 : 231|1@0+ (1,0) [0|1] "" XXX
SG_ NEW_SIGNAL_7 : 232|1@0+ (1,0) [0|1] "" XXX

BO_ 293 STEERING_SENSORS: 16 XXX
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
Expand Down Expand Up @@ -595,7 +606,12 @@ BO_ 442 BLINDSPOTS_REAR_CORNERS: 24 XXX
SG_ COLLISION_AVOIDANCE_ACTIVE : 68|1@0+ (1,0) [0|1] "" XXX
SG_ LEFT_MB : 30|1@0+ (1,0) [0|3] "" XXX
SG_ LEFT_BLOCKED : 24|1@0+ (1,0) [0|1] "" XXX
SG_ MORE_LEFT_PROB : 32|1@1+ (1,0) [0|3] "" XXX
SG_ INDICATOR_LEFT_TWO : 30|1@0+ (1,0) [0|3] "" XXX
SG_ INDICATOR_RIGHT_TWO : 32|1@1+ (1,0) [0|3] "" XXX
SG_ INDICATOR_LEFT_THREE : 128|1@0+ (1,0) [0|1] "" XXX
SG_ INDICATOR_RIGHT_THREE : 130|1@0+ (1,0) [0|1] "" XXX
SG_ INDICATOR_LEFT_FOUR : 138|1@0+ (1,0) [0|1] "" XXX
SG_ INDICATOR_RIGHT_FOUR : 141|1@0+ (1,0) [0|1] "" XXX
SG_ FL_INDICATOR : 46|6@0+ (1,0) [0|1] "" XXX
SG_ FR_INDICATOR : 54|6@0+ (1,0) [0|63] "" XXX
SG_ RIGHT_BLOCKED : 64|1@0+ (1,0) [0|1] "" XXX
Expand Down Expand Up @@ -666,6 +682,7 @@ CM_ 1043 "Lamp signals do not seem universal on cars that use LKAS_ALT, but stal
CM_ SG_ 80 HAS_LANE_SAFETY "If 0, hides LKAS 'Lane Safety' menu from vehicle settings";
CM_ SG_ 96 BRAKE_PRESSURE "User applied brake pedal pressure. Ramps from computer applied pressure on falling edge of cruise. Cruise cancels if !=0";
CM_ SG_ 101 BRAKE_POSITION "User applied brake pedal position, max is ~700. Signed on some vehicles";
CM_ SG_ 272 LKAS_ANGLE_CMD "tracks MDPS->STEERING_ANGLE when not engaged, not STEERING_SENSORS->STEERING_ANGLE";
CM_ SG_ 373 PROBABLY_EQUIP "aeb equip?";
CM_ SG_ 373 ACCEnable "Likely a copy of CAN's TCS13->ACCEnable";
CM_ SG_ 373 DriverBraking "Likely derived from BRAKE->BRAKE_POSITION";
Expand All @@ -689,6 +706,7 @@ VAL_ 80 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
VAL_ 80 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
VAL_ 96 TRACTION_AND_STABILITY_CONTROL 0 "On" 5 "Limited" 1 "Off";
VAL_ 234 LKA_FAULT 0 "ok" 1 "lka fault" ;
VAL_ 272 LKAS_ANGLE_ACTIVE 1 "not active" 2 "active";
VAL_ 272 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
VAL_ 272 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
VAL_ 298 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
Expand Down
Loading