Can’t get any PIDs to work for Ford ABS module

First, I know the header is 0x760 and response header is 0x768. I’ve seen posts on here with other fords able to get brake pressure and steering angle, but I’m stuck. I can’t get a single 0x760 request to return anything.

I know the module is on HSCAN2, and I don’t think I can communicate with any of the modules on that CAN unless I’m using FORScan.

Anyone have an idea how to get the data? Init clauses? settings in the MX+?

btw 2020 mustang GT is the car.


  • I had some luck on my Fiesta ST as listed in this thread (unsure if it translates to your :

    I didn't set a response prefix, and used PID 0x222B0D with the equation "bytesToint(raw, 1, 2) / 3.6" which seems to give semi-promising results when looking at the data live. Maybe the response prefix would help with my data?

    Unfortunately, the data doesn't seem to record or export particularly well. It seems like I'm only getting an update every couple of seconds which isn't particularly useful. I assume this is due to needing to switch from the standard OBD2 PIDs to the ABS module and then back again, but I haven't really done much to confirm that.

    I'm not really planning on spending much more time on it until I get my hands on a RaceCapture unit (
  • You're using 0x760 as the header right?

    I know the one of the PIDs that forscan uses to measure brake line pressure is 0x222B0D. I sniffed basically all the track related PIDs and there are 2 or 3 you can use for brake pressure and steering angle.

    I'm just not sure why no other program can pull the data or log it . Also, if I try to talk to the ABS unit, it sometimes becomes unreadable in forscan. I feel like there's checksum or diagnotic requirement to access HSCAN2 for security reasons or something. OR maybe I broke it tuning the car.

    I'm probably going the racecapture or AIM route too, but I've been waiting to see someone else get it working with a TC-298 PCM (2018+ mustang in the US, I think).
  • @Hobo_Bob if you're using the MX+, can you do me a favor?

    In OBD Link (or its equivalent for android), can you check the enhanced data and see if the ABD module recognizes and PIDs? It breaks my cars modules into 3 groups (Network A, B, C). Network B contains 5 modules including the ABS module. There are no PIDs detected on all 5 modules on Network B. Networks A and C both have all their PIDs their.

    Thanks if you're able to do this.
  • @MinDseTz yes, I am using the 0x760 header. I'll try to take a look at the modules tomorrow.

    I'm not exactly sure how forscan is finding all of the pids, but that does ring a bell. I know there were a number of reported pids that didn't return any data. When I was originally looking for that 0x222B0D pid, I was just searching by name and came across it.
  • I got it! the initialization was the problem.

    I looked at what FORScan was doing with wireshark and copying the init before calling the pid worked.

    I got the abs module to return wheel speed, brake pressure, wheel angle, etc. This was on “car scanner” on iOS though. I still need to make sure RaceChrono works but I’m surpised I got data.

    Also there are some really well make CAN sniffing solutions out there. Like CANedge/ CSSelectronic’s or Vehicle spy.

    FORscan is awesome for diagnostics or changing parts for upgrades that come on higher trim models. It has essentially oem level of coverage when it comes to PIDs but It’s just really slow when it comes to polling.

  • @aol_of_RaceChrono if you are able to help me with this, I’d appreciate it. I need to add “start diagnostic commands” for ABS PIDs but I’m not sure how. Adding these to the init.

    I have it working on other apps using there commands prior to requesting the PID.





    any idea where I can put them?


  • edited October 2022
    @MinDseTz "Initialisation commands" under the vehicle profile should work. Not sure if you can request normal OBD-II after that though.
  • Yeah it seems like it won’t allow me to pull abs stuff unless I change the protocol.

    if anyone reads this after the fact, you only need STP53 and STPBR500000. It’s changing the protocol to MSCAN, then increasing the br. Since the HSCAN2 is connect to the MSCAN, it acts like your in HSCAN mode. Still looking for a way to make it all work

  • edited October 2022
    If it's just STP53 and STPBR500000, just put them to initialisation commands. STP53\nSTPBR500000 should do it.
  • The problem is STP53 won’t give me access to the PCM or BdyCM. If “start/stop diagnostic commands” existed I could put STP53\nSTPBR500000 as the start, then ATTP6 for the stop.

    What I’ve been trying is using a obd splitter with the MX+ connected and a second obd connector connected (MPVII). I’m just going to use the MX+ for brake pressure and steering angle. The MPVII can pull dozens on PIDs at very high polling speeds (up to 100hz) when connected to a laptop.

    As long as I don’t have any commands going to the PCM from the MX, both devices work fine.

  • @MinDseTz Ok I see. This will obviously require a changes in RaceChrono.

    RaceChrono doesn't really support second OBD-II device polling. I mean it may or may not work, but I would avoid doing that. Some of the responses may come through on the wrong adapter and cause unexpected things.
  • @aol_of_RaceChrono so you're right about data going through wrong adapter. I've found using those 2 init commands (STP53 and STPBR500000) on the MX+ connection prevents any issues. STP53 should be using the MSCAN (3 and 11 pinout) network and the MPVII is only looking at the CAN (6 and 14 pinout) network. I've tested this setup multiple times without and disconnects/issues.

    This works temporarily, but I think I'm going to try making 2 esp32 devices so I can consolidate the data.
Sign In or Register to comment.