Extra PID Ford

Hello, is somebody know the equations of the extra PID Ford parameters ? I would like record some parameters like brake pedal position, brake pressure applied, engaged gear, ...
Best regards,
French Mustang GT driver


  • As there's no responders yet, I recommend searching the dedicated Ford forums in the internet. I'd start with searching "custom OBD PIDs" and maybe "Torque app".
  • I'm highly interested in this too, and I think I can get us close to the finish line but not quite across it just yet.

    I've found a Brake Fluid Line Hydraulic Pressure pid in the ABS module of my Ford Fiesta ST (but it seems to also appear in several Focus forum posts; so hopefully it would work in the Mustang too?).

    Name: Brake Fluid Line Hydraulic Pressure

    Pid: 222b0d

    Approximate Equation (kPa): (25000 * A + 100 * B) / 3

    Approximate Equation (% [assuming max of 14000 kPa]): (25000 * A + 100 * B) / 420

    OBD Header: ABS

    That OBD Header is the issue that I'm running into with RaceChrono. "ABS" seems to work fine in Torque (despite not being a decimal or hex which RaceChrono doesn't like) and is actually used in other Torque predefined Ford-specific pids that appear to be coming from the ABS module (e.g. ABS Wheel Speed 1-4). I'm not sure if that's just telling Torque to look at the ABS module instead of sending a header to OBD2, but hopefully @aol can help us out.

    If we can get this working, I'll see what I can figure out about engaged gear, but that may be different between our cars. I'm also interested in Steering Angle, but not nearly as much as brake pressure.

  • edited January 2020
    Yes, "ABS" is not a valid OBD-II header as it's not hexadecimal. I'm not expert in the Torque app, but I assume this is a variable for the real hexadecimal OBD-II header that is used to access Ford's ABS ECU. Maybe you could find what it is in the app? I'm guessing this is defined somewhere in the settings? Alternatively you could write down the raw OBD-II request and response, that the Torque app displays when you "Test" the custom PIDs defined in that app. From there I could (probably) see which header is being used.

    The hexadecimal numbers need to be prefixed "0x" in RaceChrono, so that PID will be "0x222b0d".

    The same equations will work in RaceChrono, but "25000 * A + 100 * B" is probably meant to be "25600 * A + 100 * B". And it's better written "bytesToUint(raw, 0, 2)" in RaceChrono. Also dividing integer with integer will produce integers in RaceChrono, so make sure to divide with floating points to preserve precision eg.: "bytesToUint(raw, 0, 2) / 3.0"
  • Here is a screenshot from Torque (I'm sure you're tired of seeing these by now...):

    It only seems to be sending the pid, but blanking out the OBD Header results in "no data".

    Based on your input, it seems I can simplify the equation to just: (256 * A + B) / 4.2

    And the RaceChrono equivalent equation would be: (256.0 * bytesToUint(raw, 0, 1) + bytesToUint(raw, 1, 1)) / 4.2

  • edited January 2020
    Unfortunately the request header is not displayed on the screenshot. I'm wondering if there's some standard or "standard" OBD-II header for ABS, similar to what 7DF is for engine ECU. Unfortunately my current OBD-II knowledge ends here.
  • edited January 2020

    (256.0 * bytesToUint(raw, 0, 1) + bytesToUint(raw, 1, 1)) / 4.2

    Is same as:

    bytesToUint(raw, 0, 2) / 4.2

    Also the response bytes seem to be offset so that you actually should use the following with RaceChrono:

    bytesToUint(raw, 1, 2) / 4.2

    As RaceChrono expects 2 bytes for the response to be the PID, and rest is payload. So there's one extra byte in the payload for RaceChrono.

    Unfortunately this is all theoretic until we figure out the "ABS" OBD-II header :)
  • I think I've got it! This post (https://themustangsource.com/forums/f726/can-bus-how-our-cars-modules-communicate-529879/) references 0x760 which seems to have done the trick!

    I also noticed that the pressure can go slightly negative if I lift off the brakes hard enough, so I've changed that to bytesToint to account for that.

    So that gives me:

    Name: Brake Fluid Line Hydraulic Pressure

    Pid: 222b0d

    RaceChrono Equation (%): bytesToint(raw, 1, 2) / 3.6

    OBD Header: 760

    Thanks for all your help!

  • I also slightly adjusted the "max" value lower so that 100% braking is a more reasonable pressure since 12000 kpa was actually pushing me back into my seat and would probably just throw on ABS anyway.

  • Excellent, well done!
  • Regarding the gear and steering angle, I couldn't find any pids that returned anything for the gear, but my car is a manual, so that might just not be available for me.

    I did find this pid also in ABS for the steering angle:

    Name: Steering Angle

    Pid: 223302

    RaceChrono Equation (degrees): bytesToint(raw, 1, 2) / 10.0 - 780

    OBD Header: 760

  • edited January 2020
    @Hobo_Bob If you tried only ABS, I should point out you probably won't find gear number from ABS ECU. Did you try 221E12 already (I assume without a header, so engine ECU), as mentioned in: http://www.2gfusions.net/showthread.php?tid=1962
  • I've been using FORScan (https://forscan.org/home.html) to look for pids, but I was only looking for anything from any module with "gear" in the name. Only one popped up that looked promising, but it wasn't returning data for me. If I can find something there that returns data, then I can then scout the internet for the name to see if anyone has listed the actual pid and equation.

    221e12 is also returning no data for me unfortunately.

  • @Hobo_Bob, it may well be that your original assessment is correct, and it's not available. But if the current gear is displayed in your gauge cluster, I would believe it would be available somehow. If not, then there probably isn't a sensor for it.
  • @Hobo_Bob did you try 2211b3?

Sign In or Register to comment.