mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-06 04:23:42 +08:00
Recognize Outback Wilderness camera firmware and credit jacobw Subaru support
This commit is contained in:
@@ -37,3 +37,9 @@ The Pre-AP configuration, pedal codec/feedback, VirtualDAS feedforward table, gr
|
||||
## Ford optional pinion measurement
|
||||
|
||||
The default-off Use Pinion Yaw Sensor measurement option is adapted from jrneulight’s BluePilot PR #145 (https://github.com/BluePilotDev/bluepilot/pull/145), merged as `fe5b019568c8c13fb894dc6d8d779d60985051a8`. Its per-platform geometry, native pinion measurement, integrity requirements and host vehicle-model compensation are retained. StarPilot adapts the option to its existing exact safety-profile word, modern curvature checks, AOL authority and Galaxy/native settings; the upstream maintainers do not maintain this integration. Existing upstream copyright and license notices remain in THIRD_PARTY_NOTICES.md.
|
||||
|
||||
## Subaru angle steering from Jacob Waller's fork
|
||||
|
||||
Subaru angle support includes implementation maintained and integrated by **Jacob Waller (jacobw)** in [jacobwaller/openpilot, jul-angle-based](https://github.com/jacobwaller/openpilot/tree/542816196a18dba5f6f0af093c1ece4f415b5a22), with its [opendbc implementation at 8acbeccdab45a47aa7af170d2d17b61f0eb5e4f0](https://github.com/jacobwaller/opendbc/tree/8acbeccdab45a47aa7af170d2d17b61f0eb5e4f0). Jacob authored the VehicleModel angle-limit type correction and integrated the Crosstrek support. The branch also retains the original angle implementation and follow-up work by **lukasloetkolben and elkoled**, alongside comma contributors; their authorship remains theirs.
|
||||
|
||||
The inherited source covers Subaru angle platform/firmware definitions, `ES_Status` cruise state, angle controller/CAN integration, vehicle-model limits and native angle enforcement. StarPilot has additional platform-specific limits, driver handoff, discovery and AOL safety guards; this attribution does not claim identical tuning or complete parity with the reference fork. Original source commits, author names, emails and titles are recorded in [the Subaru origin history](opendbc_repo/opendbc/car/subaru/ORIGIN_HISTORY.tsv).
|
||||
|
||||
@@ -140,3 +140,7 @@ dbus-next 0.2.3 (MIT), ifaddr 0.2.0 (MIT) and Zeroconf 0.151.3
|
||||
`vendor/VENDOR.json` records each PyPI source file and its SHA-256. Zeroconf is
|
||||
kept as separate, unmodified source files that can be replaced with another
|
||||
compatible version, as the LGPL requires.
|
||||
|
||||
## Subaru angle support from jacobw
|
||||
|
||||
The Subaru angle implementation includes work from Jacob Waller's `jul-angle-based` openpilot/opendbc branches and their upstream contributors. See [CREDITS.md](CREDITS.md#subaru-angle-steering-from-jacob-wallers-fork) and `opendbc_repo/opendbc/car/subaru/ORIGIN_HISTORY.tsv` for pinned sources, original authors and titles. The source repositories publish the comma MIT license; the complete applicable notice remains in the project `LICENSE` and `opendbc_repo/LICENSE`. StarPilot's adaptations preserve additional native and caller safety guards.
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
source_repository commit author_name author_email original_title
|
||||
jacobwaller/opendbc 8b4703bbd678f643659102350d54bc8477c4746f lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com Subaru: Add 2025 Crosstrek angle steering support
|
||||
jacobwaller/opendbc e49bb48bba83078ece71dcfd470990c4a29eee38 elkoled elkoled@gmail.com reduce angle rate limit
|
||||
jacobwaller/opendbc 7aedc019d208018b6a23f0c071d54eb2a3c86c9d elkoled elkoled@gmail.com add deadband
|
||||
jacobwaller/opendbc 9d217de804bf95bd42c838c4e2c57aeb45f31ccc lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com add SUBARU_CROSSTREK_2025 fingerprint
|
||||
jacobwaller/opendbc f3cdd5ff7d1f7415bbc10214f3cd83681bf093ce lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com add fingerprint
|
||||
jacobwaller/opendbc 42889e319eb73599ee66b350a777aa68130b1bca lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com 10 m/s
|
||||
jacobwaller/opendbc 0dd4797ad9eeaf1de66bd99b8c458209b6110611 lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com add route
|
||||
jacobwaller/opendbc 128daadb19b61b3d54e0e212043fbc7a0412ba46 lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com speed dependent steering deadzone
|
||||
jacobwaller/opendbc a358966bc6099b9e022e0a6f0e1647928f904107 lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com deadzone filter
|
||||
jacobwaller/opendbc a116120c3b149f02bccbb87665e35122cc9626c8 lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com remove unrelated dbc
|
||||
jacobwaller/opendbc 3d4400559133d0dbcff6c55abfc37f47ec03a620 lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com ES_Status->Cruise_Activated
|
||||
jacobwaller/opendbc db8d3aee3c90013e44aa70f56bb9896d8a42c4cb lukasloetkolben 61192133+lukasloetkolben@users.noreply.github.com use ES_Status
|
||||
jacobwaller/opendbc 19df75992398f6661c7ed18a1914219d42e5883f elkoled elkoled@gmail.com lateral clip target to avoid jerk violation
|
||||
jacobwaller/opendbc 8acbeccdab45a47aa7af170d2d17b61f0eb5e4f0 Jacob Waller jacobwaller@Jacobs-MacBook-Pro.local subaru: fix ANGLE_LIMITS to use AngleSteeringLimitsVM
|
||||
jacobwaller/openpilot 156ee4240d9029fbf97a1fd87a4e774e4578ddf1 Jacob Waller jacobwaller@Jacobs-MacBook-Pro.local bump opendbc to jul-angle-based (Subaru Crosstrek 2025 angle steering)
|
||||
jacobwaller/openpilot 542816196a18dba5f6f0af093c1ece4f415b5a22 Jacob Waller jacobwaller@Jacobs-MacBook-Pro.local FF 'da Crosstrek
|
||||
|
@@ -584,6 +584,7 @@ FW_VERSIONS = {
|
||||
],
|
||||
(Ecu.fwdCamera, 0x787, None): [
|
||||
b'\t!\x08\x046\x05!\x08\x01/',
|
||||
b'\t!\x08\x046\x00\x00\x00\x00\x00',
|
||||
],
|
||||
(Ecu.engine, 0x7a2, None): [
|
||||
b'\xed,\xa0q\x07',
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
"""Recorded 2024 Outback Wilderness identity, with discovery guards intact."""
|
||||
import pytest
|
||||
|
||||
from opendbc.car import structs
|
||||
from opendbc.car.fw_versions import match_fw_to_car
|
||||
from opendbc.car.subaru.values import CAR
|
||||
|
||||
|
||||
def observed_firmware():
|
||||
# Real non-logging replies; no transmission/EPS reply was available.
|
||||
return [structs.CarParams.CarFw(ecu=ecu, address=address, fwVersion=bytes.fromhex(version), brand='subaru')
|
||||
for ecu, address, version in (
|
||||
(structs.CarParams.Ecu.abs, 0x7b0, 'a120241700'),
|
||||
(structs.CarParams.Ecu.engine, 0x7a2, 'fb2ca27007'),
|
||||
(structs.CarParams.Ecu.fwdCamera, 0x787, '09210804360000000000'),
|
||||
)]
|
||||
|
||||
|
||||
def test_recorded_wilderness_automatically_matches_without_a_manual_override():
|
||||
exact, matches = match_fw_to_car(observed_firmware(), '0' * 17, log=False)
|
||||
assert exact
|
||||
assert matches == {CAR.SUBARU_OUTBACK_2023}
|
||||
|
||||
|
||||
@pytest.mark.parametrize('ecu', (structs.CarParams.Ecu.abs, structs.CarParams.Ecu.engine, structs.CarParams.Ecu.fwdCamera))
|
||||
@pytest.mark.parametrize('failure', ('missing', 'unknown', 'mixed'))
|
||||
def test_recorded_wilderness_rejects_incomplete_or_contradictory_platform_ecus(ecu, failure):
|
||||
records = observed_firmware()
|
||||
target = next(record for record in records if record.ecu == ecu)
|
||||
if failure != 'mixed':
|
||||
records.remove(target)
|
||||
if failure != 'missing':
|
||||
records.append(structs.CarParams.CarFw(ecu=ecu, address=target.address, fwVersion=b'unknown firmware', brand='subaru'))
|
||||
_, matches = match_fw_to_car(records, '0' * 17, log=False)
|
||||
assert not matches
|
||||
|
||||
|
||||
def test_recorded_wilderness_does_not_accept_the_diagnostic_camera_response():
|
||||
records = observed_firmware()
|
||||
records[-1].fwVersion = bytes.fromhex('20020e')
|
||||
_, matches = match_fw_to_car(records, '0' * 17, log=False)
|
||||
assert not matches
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"protected_inventory_sha256": "9f4c75c4032a85b550d4327a8534c9fa207749ca4b69864dd7ddf433539c6174", "schema_version": 1}
|
||||
{"protected_inventory_sha256": "af5e3a835fba4429405da7e9b6c318ceb40aaa118d5708e62e00d4c947a5845b", "schema_version": 1}
|
||||
|
||||
Reference in New Issue
Block a user