mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-08-22 11:13:47 +08:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 369a1cf946 | |||
| 81c18469cf | |||
| 24feed4b1a | |||
| 0fd3fac0e9 | |||
| 74e6deb211 | |||
| 739c645b13 | |||
| cac0aca860 | |||
| b1975b5dec | |||
| b6d9a0dc01 | |||
| 711a1b8bed | |||
| c47f084b9d | |||
| e5ecf0a9d4 | |||
| 9a83eb772c | |||
| 5ca5939818 | |||
| 2343e05339 | |||
| 1553900777 |
+1
-1
@@ -89,7 +89,7 @@ A supported vehicle is one that just works when you install a comma device. All
|
|||||||
|Hyundai|Ioniq Plug-in Hybrid 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai H connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2020-22">Buy Here</a></sub></details>||
|
|Hyundai|Ioniq Plug-in Hybrid 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai H connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2020-22">Buy Here</a></sub></details>||
|
||||||
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai B connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona 2020">Buy Here</a></sub></details>||
|
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai B connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona 2020">Buy Here</a></sub></details>||
|
||||||
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai G connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric 2018-21">Buy Here</a></sub></details>||
|
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai G connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric 2018-21">Buy Here</a></sub></details>||
|
||||||
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai O connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric 2022">Buy Here</a></sub></details>||
|
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai O connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric 2022">Buy Here</a></sub></details>||
|
||||||
|Hyundai|Kona Electric (with HDA II, Korea only) 2023[<sup>6</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai R connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric (with HDA II, Korea only) 2023">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=U2fOCmcQ8hw" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
|Hyundai|Kona Electric (with HDA II, Korea only) 2023[<sup>6</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai R connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Electric (with HDA II, Korea only) 2023">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=U2fOCmcQ8hw" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||||
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai I connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Hybrid 2020">Buy Here</a></sub></details>|<a href="https://youtu.be/0dwpAHiZgFo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai I connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Kona Hybrid 2020">Buy Here</a></sub></details>|<a href="https://youtu.be/0dwpAHiZgFo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||||
|Hyundai|Palisade 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai H connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Palisade 2020-22">Buy Here</a></sub></details>|<a href="https://youtu.be/TAnDqjF4fDY?t=456" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
|Hyundai|Palisade 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai H connector<br>- 1 RJ45 cable (7 ft)<br>- 1 comma power v2<br>- 1 comma three<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Hyundai&model=Palisade 2020-22">Buy Here</a></sub></details>|<a href="https://youtu.be/TAnDqjF4fDY?t=456" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||||
|
|||||||
+1
-1
Submodule panda updated: cb0cd1bfaa...4dcde30af0
@@ -6,7 +6,7 @@ from opendbc.can.packer import CANPacker
|
|||||||
from openpilot.selfdrive.car import apply_driver_steer_torque_limits, common_fault_avoidance
|
from openpilot.selfdrive.car import apply_driver_steer_torque_limits, common_fault_avoidance
|
||||||
from openpilot.selfdrive.car.hyundai import hyundaicanfd, hyundaican
|
from openpilot.selfdrive.car.hyundai import hyundaicanfd, hyundaican
|
||||||
from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus
|
from openpilot.selfdrive.car.hyundai.hyundaicanfd import CanBus
|
||||||
from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CANFD_CAR, CAR
|
from openpilot.selfdrive.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CANFD_CAR, CAR, CAMERA_SCC_CAR
|
||||||
|
|
||||||
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
||||||
LongCtrlState = car.CarControl.Actuators.LongControlState
|
LongCtrlState = car.CarControl.Actuators.LongControlState
|
||||||
@@ -91,7 +91,8 @@ class CarController:
|
|||||||
# *** common hyundai stuff ***
|
# *** common hyundai stuff ***
|
||||||
|
|
||||||
# tester present - w/ no response (keeps relevant ECU disabled)
|
# tester present - w/ no response (keeps relevant ECU disabled)
|
||||||
if self.frame % 100 == 0 and not (self.CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value) and self.CP.openpilotLongitudinalControl:
|
if self.frame % 100 == 0 and not (self.CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value) and \
|
||||||
|
self.CP.carFingerprint not in CAMERA_SCC_CAR and self.CP.openpilotLongitudinalControl:
|
||||||
# for longitudinal control, either radar or ADAS driving ECU
|
# for longitudinal control, either radar or ADAS driving ECU
|
||||||
addr, bus = 0x7d0, 0
|
addr, bus = 0x7d0, 0
|
||||||
if self.CP.flags & HyundaiFlags.CANFD_HDA2.value:
|
if self.CP.flags & HyundaiFlags.CANFD_HDA2.value:
|
||||||
@@ -146,7 +147,7 @@ class CarController:
|
|||||||
# TODO: unclear if this is needed
|
# TODO: unclear if this is needed
|
||||||
jerk = 3.0 if actuators.longControlState == LongCtrlState.pid else 1.0
|
jerk = 3.0 if actuators.longControlState == LongCtrlState.pid else 1.0
|
||||||
use_fca = self.CP.flags & HyundaiFlags.USE_FCA.value
|
use_fca = self.CP.flags & HyundaiFlags.USE_FCA.value
|
||||||
can_sends.extend(hyundaican.create_acc_commands(self.packer, CC.enabled, accel, jerk, int(self.frame / 2),
|
can_sends.extend(hyundaican.create_acc_commands(self.packer, CC.enabled, accel, jerk, int(self.frame / 2), CS, self.CP.carFingerprint,
|
||||||
hud_control.leadVisible, set_speed_in_units, stopping,
|
hud_control.leadVisible, set_speed_in_units, stopping,
|
||||||
CC.cruiseControl.override, use_fca))
|
CC.cruiseControl.override, use_fca))
|
||||||
|
|
||||||
@@ -156,7 +157,7 @@ class CarController:
|
|||||||
|
|
||||||
# 5 Hz ACC options
|
# 5 Hz ACC options
|
||||||
if self.frame % 20 == 0 and self.CP.openpilotLongitudinalControl:
|
if self.frame % 20 == 0 and self.CP.openpilotLongitudinalControl:
|
||||||
can_sends.extend(hyundaican.create_acc_opt(self.packer))
|
can_sends.extend(hyundaican.create_acc_opt(self.packer, CS, self.CP.carFingerprint))
|
||||||
|
|
||||||
# 2 Hz front radar options
|
# 2 Hz front radar options
|
||||||
if self.frame % 50 == 0 and self.CP.openpilotLongitudinalControl:
|
if self.frame % 50 == 0 and self.CP.openpilotLongitudinalControl:
|
||||||
|
|||||||
@@ -156,6 +156,10 @@ class CarState(CarStateBase):
|
|||||||
# save the entire LKAS11 and CLU11
|
# save the entire LKAS11 and CLU11
|
||||||
self.lkas11 = copy.copy(cp_cam.vl["LKAS11"])
|
self.lkas11 = copy.copy(cp_cam.vl["LKAS11"])
|
||||||
self.clu11 = copy.copy(cp.vl["CLU11"])
|
self.clu11 = copy.copy(cp.vl["CLU11"])
|
||||||
|
# only forward FCA messages for FCW/AEB when using openpilot longitudinal on Camera SCC cars
|
||||||
|
if self.CP.openpilotLongitudinalControl and self.CP.carFingerprint in CAMERA_SCC_CAR:
|
||||||
|
self.fca11 = copy.copy(cp_cruise.vl["FCA11"])
|
||||||
|
self.fca12 = copy.copy(cp_cruise.vl["FCA12"])
|
||||||
self.steer_state = cp.vl["MDPS12"]["CF_Mdps_ToiActive"] # 0 NOT ACTIVE, 1 ACTIVE
|
self.steer_state = cp.vl["MDPS12"]["CF_Mdps_ToiActive"] # 0 NOT ACTIVE, 1 ACTIVE
|
||||||
self.prev_cruise_buttons = self.cruise_buttons[-1]
|
self.prev_cruise_buttons = self.cruise_buttons[-1]
|
||||||
self.cruise_buttons.extend(cp.vl_all["CLU11"]["CF_Clu_CruiseSwState"])
|
self.cruise_buttons.extend(cp.vl_all["CLU11"]["CF_Clu_CruiseSwState"])
|
||||||
@@ -296,14 +300,21 @@ class CarState(CarStateBase):
|
|||||||
("LKAS11", 100)
|
("LKAS11", 100)
|
||||||
]
|
]
|
||||||
|
|
||||||
if not CP.openpilotLongitudinalControl and CP.carFingerprint in CAMERA_SCC_CAR:
|
if CP.carFingerprint in CAMERA_SCC_CAR:
|
||||||
messages += [
|
if CP.openpilotLongitudinalControl:
|
||||||
("SCC11", 50),
|
if CP.flags & HyundaiFlags.USE_FCA.value:
|
||||||
("SCC12", 50),
|
messages += [
|
||||||
]
|
("FCA11", 50),
|
||||||
|
("FCA12", 50),
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
messages += [
|
||||||
|
("SCC11", 50),
|
||||||
|
("SCC12", 50),
|
||||||
|
]
|
||||||
|
|
||||||
if CP.flags & HyundaiFlags.USE_FCA.value:
|
if CP.flags & HyundaiFlags.USE_FCA.value:
|
||||||
messages.append(("FCA11", 50))
|
messages.append(("FCA11", 50))
|
||||||
|
|
||||||
return CANParser(DBC[CP.carFingerprint]["pt"], messages, 2)
|
return CANParser(DBC[CP.carFingerprint]["pt"], messages, 2)
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ def create_lfahda_mfc(packer, enabled, hda_set_speed=0):
|
|||||||
}
|
}
|
||||||
return packer.make_can_msg("LFAHDA_MFC", 0, values)
|
return packer.make_can_msg("LFAHDA_MFC", 0, values)
|
||||||
|
|
||||||
def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, set_speed, stopping, long_override, use_fca):
|
def create_acc_commands(packer, enabled, accel, upper_jerk, idx, CS, car_fingerprint, lead_visible, set_speed, stopping, long_override, use_fca):
|
||||||
commands = []
|
commands = []
|
||||||
|
|
||||||
scc11_values = {
|
scc11_values = {
|
||||||
@@ -172,21 +172,27 @@ def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, s
|
|||||||
|
|
||||||
# Only send FCA11 on cars where it exists on the bus
|
# Only send FCA11 on cars where it exists on the bus
|
||||||
if use_fca:
|
if use_fca:
|
||||||
# note that some vehicles most likely have an alternate checksum/counter definition
|
if car_fingerprint in CAMERA_SCC_CAR:
|
||||||
# https://github.com/commaai/opendbc/commit/9ddcdb22c4929baf310295e832668e6e7fcfa602
|
fca11_values = CS.fca11
|
||||||
fca11_values = {
|
fca11_values["PAINT1_Status"] = 1
|
||||||
"CR_FCA_Alive": idx % 0xF,
|
fca11_values["FCA_DrvSetStatus"] = 1
|
||||||
"PAINT1_Status": 1,
|
fca11_values["FCA_Status"] = 1 # AEB disabled, until a route with AEB or FCW trigger is verified
|
||||||
"FCA_DrvSetStatus": 1,
|
else:
|
||||||
"FCA_Status": 1, # AEB disabled
|
# note that some vehicles most likely have an alternate checksum/counter definition
|
||||||
}
|
# https://github.com/commaai/opendbc/commit/9ddcdb22c4929baf310295e832668e6e7fcfa602
|
||||||
|
fca11_values = {
|
||||||
|
"CR_FCA_Alive": idx % 0xF,
|
||||||
|
"PAINT1_Status": 1,
|
||||||
|
"FCA_DrvSetStatus": 1,
|
||||||
|
"FCA_Status": 1, # AEB disabled
|
||||||
|
}
|
||||||
fca11_dat = packer.make_can_msg("FCA11", 0, fca11_values)[2]
|
fca11_dat = packer.make_can_msg("FCA11", 0, fca11_values)[2]
|
||||||
fca11_values["CR_FCA_ChkSum"] = hyundai_checksum(fca11_dat[:7])
|
fca11_values["CR_FCA_ChkSum"] = hyundai_checksum(fca11_dat[:7])
|
||||||
commands.append(packer.make_can_msg("FCA11", 0, fca11_values))
|
commands.append(packer.make_can_msg("FCA11", 0, fca11_values))
|
||||||
|
|
||||||
return commands
|
return commands
|
||||||
|
|
||||||
def create_acc_opt(packer):
|
def create_acc_opt(packer, CS, car_fingerprint):
|
||||||
commands = []
|
commands = []
|
||||||
|
|
||||||
scc13_values = {
|
scc13_values = {
|
||||||
@@ -197,10 +203,15 @@ def create_acc_opt(packer):
|
|||||||
commands.append(packer.make_can_msg("SCC13", 0, scc13_values))
|
commands.append(packer.make_can_msg("SCC13", 0, scc13_values))
|
||||||
|
|
||||||
# TODO: this needs to be detected and conditionally sent on unsupported long cars
|
# TODO: this needs to be detected and conditionally sent on unsupported long cars
|
||||||
fca12_values = {
|
if car_fingerprint in CAMERA_SCC_CAR:
|
||||||
"FCA_DrvSetState": 2,
|
fca12_values = CS.fca12
|
||||||
"FCA_USM": 1, # AEB disabled
|
fca12_values["FCA_DrvSetState"] = 2
|
||||||
}
|
fca12_values["FCA_USM"] = 1 # AEB disabled, until a route with AEB or FCW trigger is verified
|
||||||
|
else:
|
||||||
|
fca12_values = {
|
||||||
|
"FCA_DrvSetState": 2,
|
||||||
|
"FCA_USM": 1, # AEB disabled
|
||||||
|
}
|
||||||
commands.append(packer.make_can_msg("FCA12", 0, fca12_values))
|
commands.append(packer.make_can_msg("FCA12", 0, fca12_values))
|
||||||
|
|
||||||
return commands
|
return commands
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ class CarInterface(CarInterfaceBase):
|
|||||||
else:
|
else:
|
||||||
ret.longitudinalTuning.kpV = [0.5]
|
ret.longitudinalTuning.kpV = [0.5]
|
||||||
ret.longitudinalTuning.kiV = [0.0]
|
ret.longitudinalTuning.kiV = [0.0]
|
||||||
ret.experimentalLongitudinalAvailable = candidate not in (UNSUPPORTED_LONGITUDINAL_CAR | CAMERA_SCC_CAR)
|
ret.experimentalLongitudinalAvailable = candidate not in UNSUPPORTED_LONGITUDINAL_CAR
|
||||||
ret.openpilotLongitudinalControl = experimental_long and ret.experimentalLongitudinalAvailable
|
ret.openpilotLongitudinalControl = experimental_long and ret.experimentalLongitudinalAvailable
|
||||||
ret.pcmCruise = not ret.openpilotLongitudinalControl
|
ret.pcmCruise = not ret.openpilotLongitudinalControl
|
||||||
|
|
||||||
@@ -311,7 +311,8 @@ class CarInterface(CarInterfaceBase):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def init(CP, logcan, sendcan):
|
def init(CP, logcan, sendcan):
|
||||||
if CP.openpilotLongitudinalControl and not (CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value):
|
if CP.openpilotLongitudinalControl and not (CP.flags & HyundaiFlags.CANFD_CAMERA_SCC.value) and \
|
||||||
|
CP.carFingerprint not in CAMERA_SCC_CAR:
|
||||||
addr, bus = 0x7d0, 0
|
addr, bus = 0x7d0, 0
|
||||||
if CP.flags & HyundaiFlags.CANFD_HDA2.value:
|
if CP.flags & HyundaiFlags.CANFD_HDA2.value:
|
||||||
addr, bus = 0x730, CanBus(CP).ECAN
|
addr, bus = 0x730, CanBus(CP).ECAN
|
||||||
|
|||||||
@@ -1414,6 +1414,7 @@ FW_VERSIONS = {
|
|||||||
b'\xf1\x8758520-K4010\xf1\x00OS IEB \x04 101 \x11\x13 58520-K4010',
|
b'\xf1\x8758520-K4010\xf1\x00OS IEB \x04 101 \x11\x13 58520-K4010',
|
||||||
b'\xf1\x8758520-K4010\xf1\x00OS IEB \x03 101 \x11\x13 58520-K4010',
|
b'\xf1\x8758520-K4010\xf1\x00OS IEB \x03 101 \x11\x13 58520-K4010',
|
||||||
b'\xf1\x00OS IEB \r 102"\x05\x16 58520-K4010',
|
b'\xf1\x00OS IEB \r 102"\x05\x16 58520-K4010',
|
||||||
|
b'\xf1\x00OS IEB \x02 102"\x05\x16 58520-K4010',
|
||||||
],
|
],
|
||||||
(Ecu.fwdCamera, 0x7C4, None): [
|
(Ecu.fwdCamera, 0x7C4, None): [
|
||||||
b'\xf1\x00OSP LKA AT CND LHD 1.00 1.02 99211-J9110 802',
|
b'\xf1\x00OSP LKA AT CND LHD 1.00 1.02 99211-J9110 802',
|
||||||
@@ -1421,12 +1422,14 @@ FW_VERSIONS = {
|
|||||||
b'\xf1\x00OSP LKA AT AUS RHD 1.00 1.04 99211-J9200 904',
|
b'\xf1\x00OSP LKA AT AUS RHD 1.00 1.04 99211-J9200 904',
|
||||||
b'\xf1\x00OSP LKA AT EUR LHD 1.00 1.04 99211-J9200 904',
|
b'\xf1\x00OSP LKA AT EUR LHD 1.00 1.04 99211-J9200 904',
|
||||||
b'\xf1\x00OSP LKA AT EUR RHD 1.00 1.04 99211-J9200 904',
|
b'\xf1\x00OSP LKA AT EUR RHD 1.00 1.04 99211-J9200 904',
|
||||||
|
b'\xf1\x00OSP LKA AT USA LHD 1.00 1.04 99211-J9200 904',
|
||||||
],
|
],
|
||||||
(Ecu.eps, 0x7D4, None): [
|
(Ecu.eps, 0x7D4, None): [
|
||||||
b'\xf1\x00OSP MDPS C 1.00 1.02 56310K4260\x00 4OEPC102',
|
b'\xf1\x00OSP MDPS C 1.00 1.02 56310K4260\x00 4OEPC102',
|
||||||
b'\xf1\x00OSP MDPS C 1.00 1.02 56310/K4970 4OEPC102',
|
b'\xf1\x00OSP MDPS C 1.00 1.02 56310/K4970 4OEPC102',
|
||||||
b'\xf1\x00OSP MDPS C 1.00 1.02 56310/K4271 4OEPC102',
|
b'\xf1\x00OSP MDPS C 1.00 1.02 56310/K4271 4OEPC102',
|
||||||
b'\xf1\x00OSP MDPS C 1.00 1.02 56310K4971\x00 4OEPC102',
|
b'\xf1\x00OSP MDPS C 1.00 1.02 56310K4971\x00 4OEPC102',
|
||||||
|
b'\xf1\x00OSP MDPS C 1.00 1.02 56310K4261\x00 4OEPC102',
|
||||||
],
|
],
|
||||||
(Ecu.fwdRadar, 0x7D0, None): [
|
(Ecu.fwdRadar, 0x7D0, None): [
|
||||||
b'\xf1\x00YB__ FCA ----- 1.00 1.01 99110-K4500 \x00\x00\x00',
|
b'\xf1\x00YB__ FCA ----- 1.00 1.01 99110-K4500 \x00\x00\x00',
|
||||||
|
|||||||
Reference in New Issue
Block a user