mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 20:03:53 +08:00
GM: Chevy Silverado 2020-21 support (#25429)
* Silverado support
Co-authored-by: Jason Shuler <jshuler@gmail.com>
* Update docs
* Try 2 m/s/s
* Should be good torque values
* Add Silverado test route
* Add to releases
* Send counter
* can't send multiple or it faults
* Send at 33hz, no counter
* try 25hz, don't line up exactly with car's buttons
* never tried 10hz with same counter
* Update selfdrive/car/gm/gmcan.py
* Make same as pcmCruise branch
* update year and package (different packages needed per-trim)
* Update year in releases
* Revert to 21
* We can use this package name again
* wrong one!
Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 1e9fdff642
This commit is contained in:
@@ -4,6 +4,7 @@ Version 0.8.16 (2022-XX-XX)
|
||||
* Reduced turn cutting
|
||||
* Auto-detect right hand drive setting with driver monitoring model
|
||||
* Chevrolet Bolt EUV 2022-23 support thanks to JasonJShuler!
|
||||
* Chevrolet Silverado 2020-21 support thanks to JasonJShuler!
|
||||
* Hyundai Ioniq 5 2022 support thanks to sunnyhaibin!
|
||||
* Hyundai Kona Electric 2022 support thanks to sunnyhaibin!
|
||||
* Subaru Legacy 2020-22 support thanks to martinl!
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
A supported vehicle is one that just works when you install a comma device. Every car performs differently with openpilot, but all supported cars should provide a better experience than any stock system.
|
||||
|
||||
# 202 Supported Cars
|
||||
# 203 Supported Cars
|
||||
|
||||
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Harness|
|
||||
|---|---|---|:---:|:---:|:---:|:---:|:---:|
|
||||
@@ -19,6 +19,7 @@ A supported vehicle is one that just works when you install a comma device. Ever
|
||||
|Audi|S3 2015-17|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
||||
|Cadillac|Escalade ESV 2016[<sup>1</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|openpilot|0 mph|7 mph|[](##)|OBD-II|
|
||||
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim without Super Cruise Package|Stock|0 mph|7 mph|[](##)|GM|
|
||||
|Chevrolet|Silverado 1500 2020-21|Safety Package II|Stock|0 mph|7 mph|[](##)|GM|
|
||||
|Chevrolet|Volt 2017-18[<sup>1</sup>](#footnotes)|Adaptive Cruise Control|openpilot|0 mph|7 mph|[](##)|OBD-II|
|
||||
|Chrysler|Pacifica 2017-18|Adaptive Cruise Control|Stock|0 mph|9 mph|[](##)|FCA|
|
||||
|Chrysler|Pacifica 2019-20|Adaptive Cruise Control|Stock|0 mph|39 mph|[](##)|FCA|
|
||||
|
||||
@@ -160,6 +160,15 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.steerActuatorDelay = 0.2
|
||||
CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning)
|
||||
|
||||
elif candidate == CAR.SILVERADO:
|
||||
ret.minEnableSpeed = -1
|
||||
ret.mass = 2200. + STD_CARGO_KG
|
||||
ret.wheelbase = 3.75
|
||||
ret.steerRatio = 16.3
|
||||
ret.centerToFront = ret.wheelbase * 0.5
|
||||
tire_stiffness_factor = 1.0
|
||||
CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning)
|
||||
|
||||
# TODO: get actual value, for now starting with reasonable value for
|
||||
# civic and scaling by mass and wheelbase
|
||||
ret.rotationalInertia = scale_rot_inertia(ret.mass, ret.wheelbase)
|
||||
|
||||
@@ -59,6 +59,7 @@ class CAR:
|
||||
BUICK_REGAL = "BUICK REGAL ESSENCE 2018"
|
||||
ESCALADE_ESV = "CADILLAC ESCALADE ESV 2016"
|
||||
BOLT_EUV = "CHEVROLET BOLT EUV 2022"
|
||||
SILVERADO = "CHEVROLET SILVERADO 1500 2020"
|
||||
|
||||
|
||||
class Footnote(Enum):
|
||||
@@ -84,6 +85,7 @@ CAR_INFO: Dict[str, Union[GMCarInfo, List[GMCarInfo]]] = {
|
||||
CAR.BUICK_REGAL: GMCarInfo("Buick Regal Essence 2018"),
|
||||
CAR.ESCALADE_ESV: GMCarInfo("Cadillac Escalade ESV 2016", "Adaptive Cruise Control (ACC) & LKAS"),
|
||||
CAR.BOLT_EUV: GMCarInfo("Chevrolet Bolt EUV 2022-23", "Premier or Premier Redline Trim without Super Cruise Package", video_link="https://youtu.be/xvwzGMUA210", footnotes=[], harness=Harness.gm),
|
||||
CAR.SILVERADO: GMCarInfo("Chevrolet Silverado 1500 2020-21", "Safety Package II", footnotes=[], harness=Harness.gm),
|
||||
}
|
||||
|
||||
|
||||
@@ -157,6 +159,10 @@ FINGERPRINTS = {
|
||||
{
|
||||
189: 7, 190: 7, 193: 8, 197: 8, 201: 8, 209: 7, 211: 3, 241: 6, 257: 8, 288: 5, 289: 8, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 322: 7, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 451: 8, 452: 8, 453: 6, 458: 5, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 528: 5, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 566: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 753: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 848: 4, 869: 4, 880: 6, 977: 8, 1001: 8, 1017: 8, 1020: 8, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1265: 8, 1280: 4, 1296: 4, 1300: 8, 1930: 7
|
||||
}],
|
||||
CAR.SILVERADO: [
|
||||
{
|
||||
190: 6, 193: 8, 197: 8, 201: 8, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 257: 8, 288: 5, 289: 8, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 322: 7, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 413: 8, 451: 8, 452: 8, 453: 6, 455: 7, 460: 5, 463: 3, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 528: 5, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 848: 4, 869: 4, 880: 6, 977: 8, 1001: 8, 1011: 6, 1017: 8, 1020: 8, 1033: 7, 1034: 7, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1930: 7
|
||||
}],
|
||||
}
|
||||
|
||||
DBC: Dict[str, Dict[str, str]] = defaultdict(lambda: dbc_dict('gm_global_a_powertrain_generated', 'gm_global_a_object', chassis_dbc='gm_global_a_chassis'))
|
||||
@@ -164,6 +170,6 @@ DBC: Dict[str, Dict[str, str]] = defaultdict(lambda: dbc_dict('gm_global_a_power
|
||||
EV_CAR = {CAR.VOLT, CAR.BOLT_EUV}
|
||||
|
||||
# We're integrated at the camera with VOACC on these cars (instead of ASCM w/ OBD-II harness)
|
||||
CAMERA_ACC_CAR = {CAR.BOLT_EUV}
|
||||
CAMERA_ACC_CAR = {CAR.BOLT_EUV, CAR.SILVERADO}
|
||||
|
||||
STEER_THRESHOLD = 1.0
|
||||
|
||||
@@ -48,6 +48,7 @@ routes = [
|
||||
TestRoute("46460f0da08e621e|2021-10-26--07-21-46", GM.ESCALADE_ESV),
|
||||
TestRoute("c950e28c26b5b168|2018-05-30--22-03-41", GM.VOLT),
|
||||
TestRoute("f08912a233c1584f|2022-08-11--18-02-41", GM.BOLT_EUV),
|
||||
TestRoute("38aa7da107d5d252|2022-08-15--16-01-12", GM.SILVERADO),
|
||||
|
||||
TestRoute("0e7a2ba168465df5|2020-10-18--14-14-22", HONDA.ACURA_RDX_3G),
|
||||
TestRoute("a74b011b32b51b56|2020-07-26--17-09-36", HONDA.CIVIC),
|
||||
|
||||
@@ -25,6 +25,7 @@ RAM 1500 5TH GEN: [2.0, 2.0, 0.0]
|
||||
RAM HD 5TH GEN: [1.4, 1.4, 0.0]
|
||||
SUBARU OUTBACK 6TH GEN: [2.3, 2.3, 0.11]
|
||||
CHEVROLET BOLT EUV 2022: [2.0, 2.0, 0.05]
|
||||
CHEVROLET SILVERADO 1500 2020: [1.9, 1.9, 0.112]
|
||||
VOLKSWAGEN PASSAT NMS: [2.5, 2.5, 0.1]
|
||||
|
||||
# Dashcam or fallback configured as ideal car
|
||||
|
||||
Reference in New Issue
Block a user