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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[$100 Bounty] Add Support for 23 Ford Escape Refresh (CAN-FD, Q4 Harness) #32319

Draft
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

northportio
Copy link

@northportio northportio commented Apr 29, 2024

2023 Ford Escape Hybrid AWD (CAN-FD & Q4 Harness)

Q&A/Info about this PR

Why did I create a new model rather than just adding the fingerprint to the MK4 Escape?

Although the 2023 Ford escape is still considered generation 4, the refresh was the complete overhaul of the systems electronics. It is now using CAN-FD rather than CAN unlike the 2020-2022 (see this wikipedia entry).

Other than fingerprints and values, what else did I use to get this to work?

  1. Change The Panda Branch: The stock panda sub module does not allow the 3X to recognize the car. In order for the 3X recognize the car, I had to change the panda sub module to the branch isotp-canfd-support. See IsoTpMessage: support ISO-TP w/ CAN FD聽panda#1524 for more info on this.
  2. Comment out dashcamOnly from selfdrive/car/ford/interface.py: Currently all Q4 harnesses are not supported from my understanding. Commenting out this reference allows stock openpilot to see the car.

What did the physical install look like? Quite Involved (2-3 Hours)

This install is not for the faint of heart. It is time consuming and a little risky (due to having to disconnect airbag seatbelt tensioner wire which is the yellow plug in the photo below). But the risks can be mitigated (disconnecting the negative terminal whenever you are working with anything electrical or touching the airbag system). If you are handy, know your way around cars/electrical, and willing to put in the effort, it is very doable.

First off, the #ford channel in the comma.ai discord server is very helpful so if you haven't joined it already, do that now. Also, it is very necessary to get a 72 hour access to the service manual as you will need to remove lots of trim panel pieces.

馃毃 You will need to temporarily remove the rear seatbelt (which is integrated into the airbag system so best practice is to remove power from the car during the install) 馃毃

Remove the 13mm bolt that is grounded to the chassis to the left (DO NOT REMOVE THE SCREW FROM THE TERMINAL... THE TERMINAL BOLT WILL EASILY BREAK and a replacement is ~$150 USD)

For 2023, Ford relocated the Image Processing Module (IPMA) from the rear view mirror trim area to just under the right trunk window... behind the trim. The below image includes the Q4 harness:
23 Escape IPMA Location
As a result of this, third-party parts are needed to install with the increased distance (These are NOT affiliate links):

  • Monoprice SlimRun Cat6 20ft: The ethernet cable that comes included is not long enough. I use these cables all the time at work and selected this one specifically because the slim cable is easy to route behind the bottom door-sill trim panel pieces from the OBD2 port to the harness in the trunk area.
  • USB-C Extension: The USB-C cable that comes included is not long enough. To get the USB-C connection to the 3X from the harness in the trunk area, you will need an extender, good news is that the distance is perfect if you are running along the headliner to the rear view mirror. Once run, use the right-angle cable that came in the box to plug into the 3X.

You will need tools:

  • Trim Panel Removal Tools (never use metal to pry off a trim panel piece, make sure they're plastic)
  • 7mm Socket
  • 10mm Socket
  • 13mm Socket
  • T25 Torx Screwdriver
  • Gloves (Trunk weather seal has "goo")

Trim Panels removed/moved slightly:

  • Driver-Side lower door-sill trim: To tuck the cat6 cable
  • Trunk bottom trim pieces: To access IPMA
  • Right Lower Loadspace Trim: To access IPMA
  • Right Upper Loadspace Trim: To access IPMA & run USB-C to headliner
  • B-Pillar Trim: To run USB-C behind headliner
  • Rear-View Mirror Trim: To run USB-C cable to 3X on windshield

For more on the install, see this discord thread

What's next?

  1. Testing, Testing, Testing: More testing is needed as I've noticed some "Controls Lagging" & "Controls Mismatch" Errors. Nothing that I found dangerous but annoying and usually require a reboot of the device
  2. Collaboration: I will admit that I am not a CAN network expert and not a well-versed python dev so please feel free to pick my brain, request logs, & send code snippets to test.

Comma Checklist

  • added entry to CAR in selfdrive/car/*/values.py and ran selfdrive/car/docs.py to generate new docs
  • test route added to routes.py
  • route with openpilot:
  • route with stock system:
  • car harness used: Ford Q4

Copy link
Contributor

github-actions bot commented Apr 29, 2024

Thanks for contributing to openpilot! In order for us to review your PR as quickly as possible, check the following:

  • Convert your PR to a draft unless it's ready to review
  • Read the contributing docs
  • Before marking as "ready for review", ensure:
    • the goal is clearly stated in the description
    • all the tests are passing
    • the change is something we merge
    • include a route or your device' dongle ID if relevant

@github-actions github-actions bot added the car vehicle-specific label Apr 29, 2024
@northportio
Copy link
Author

After adding the files in this PR so far, my 23 Escape still fails to be recognized by Stock openpilot. On another popular Fork I can select my vehicle as a Ford mock E and the vehicle functions pretty well

@northportio northportio changed the title Add Support for 23 Ford Escape Refresh (CAN-FD, Q4 Harness) [$100 Bounty] Add Support for 23 Ford Escape Refresh (CAN-FD, Q4 Harness) Apr 30, 2024
@northportio
Copy link
Author

northportio commented Apr 30, 2024

Can anyone with experience adding a CAN-FD Ford provide guidance? Adding a bounty to this (sent via zelle, paypal, or crypto-equivalent at time of transaction).

@northportio northportio marked this pull request as draft April 30, 2024 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
car vehicle-specific
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant