Ford: support hybrid Q3 platforms (#31568)

* bump

* ford: remove dynamic dashcam lockout for hybrids

* releases?

* Revert "releases?"

This reverts commit 88d950043d.

* bump

* Reapply "releases?"

This reverts commit db5079dc3f.

* 097
pull/31576/head^2
Shane Smiskol 1 year ago committed by GitHub
parent adb7e2e229
commit 378ba114f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      RELEASES.md
  2. 2
      panda
  3. 7
      selfdrive/car/ford/carstate.py
  4. 2
      selfdrive/car/ford/interface.py

@ -1,6 +1,7 @@
Version 0.9.7 (2024-XX-XX)
========================
* New driving model
* Support for many hybrid Ford models
Version 0.9.6 (2024-02-27)
========================

@ -1 +1 @@
Subproject commit b4442a7c930aac112cdd82cddfc3dd12254a56e1
Subproject commit 6aa4b550336136bc20a6abb307cf310e876eba28

@ -18,17 +18,10 @@ class CarState(CarStateBase):
self.shifter_values = can_define.dv["Gear_Shift_by_Wire_FD1"]["TrnRng_D_RqGsm"]
self.vehicle_sensors_valid = False
self.unsupported_platform = False
def update(self, cp, cp_cam):
ret = car.CarState.new_message()
# Ford Q3 hybrid variants experience a bug where a message from the PCM sends invalid checksums,
# this must be root-caused before enabling support. Ford Q4 hybrids do not have this problem.
# TrnAin_Tq_Actl and its quality flag are only set on ICE platform variants
self.unsupported_platform = (cp.vl["VehicleOperatingModes"]["TrnAinTq_D_Qf"] == 0 and
self.CP.carFingerprint not in CANFD_CAR)
# Occasionally on startup, the ABS module recalibrates the steering pinion offset, so we need to block engagement
# The vehicle usually recovers out of this state within a minute of normal driving
self.vehicle_sensors_valid = cp.vl["SteeringPinion_Data"]["StePinCompAnEst_D_Qf"] == 3

@ -109,8 +109,6 @@ class CarInterface(CarInterfaceBase):
events = self.create_common_events(ret, extra_gears=[GearShifter.manumatic])
if not self.CS.vehicle_sensors_valid:
events.add(car.CarEvent.EventName.vehicleSensorsInvalid)
if self.CS.unsupported_platform:
events.add(car.CarEvent.EventName.startupNoControl)
ret.events = events.to_msg()

Loading…
Cancel
Save