Troubleshooting the OBD-II PIDs feature

This discussion was created from comments split from: RaceChrono v6.0 beta for Android (beta feedback thread).


  • I have a "problem" with custom PID
    in my car a Fiat, to read custom PIDs you have to change also the header, IIRC the standard one is 0x3e8, to 0x3e0.
    Will you implement that too?

  • edited May 2019
    @Any what kind of parameters would you have used in other apps to get it? Like Torque app?
  • Yes I use Torque Pro, here you can find my "extra PID" example for Exaust Gas Temperature

    I have also build an Arduino obd data logger and to read that data, I have to use ATSH to switch beetween "normal" PIDs and custom ones.

  • Ok, that's interesting, I was completely unaware of this. I will add it to my TO-DO list for upcoming versions.
  • edited June 2019
    Playing around with the custom PID feature... I am close but can't quite get it working. Maybe just a noob error, but I followed along the best I could. I have 3 confirmed good PIDs / equations, when I plug in the values into the equations I am getting sane values.

    But when I start a log, no useable data/info.

    I am guessing the problem is my second and third argument in the bytesToUInt in the equations. Here is accel pedal position example:

    Pedal at 0%
    Pedal at 100%

    I plug in the source data manually for the 100% example and get a return of 99%

    I also notice that "use live data" does not work for custom defined PIDs, but works fine in the standard PID list. Use live data with the custom PIDs would be very useful for equation tweaking. Also custom naming would be neat. For example one of those custom PIDs is the octane adjust ratio, but there isn't really anything in the generic list that matches.
  • I get a lot of the same errors. But my biggest problem is it keeps kicking back that my PID isn't valid for extended PIDs. Because of this, it won't let me save.

    Custom naming is also a must. There generic list has a lot of options, but not all the ones I need.

  • edited June 2019
    Very good, first guys to try out the custom PIDs feature. There's bound to be problems and usability issues with a feature so complex, so please allow some incremental updates to smooth things out. :)

    @aaronc7 EDIT: The equations have integers and floats separately, which means 5 / 2 = 2 and 5 / 2.0 = 2.5. So add ".0" after those integers to get more precision out of the division operation. Looks like RaceChrono cannot handle 3 byte PIDs, because of a bug. I could not test it because I have have only vehicles that take 2 and 4 byte PIDs... This is also the reason why "Use live data" does not work for you. There will be a new beta today with this fixed. Notice: When this is fixed, you will not see the first two bytes. So 62 03 xx yy zz will be just xx yy zz, please take that in account with your equations.

    @Trevaskisb which PIDs are they? I will need to allow them in an update.
  • New update fixed it, working great now, thanks for the quick turnaround as usual!

    Does the app support pulling info from another module such as the BCM? Forscan is able to see tire pressure and other PIDs from the BCM so I know it's possible just need to do more digging. I have the PID and equations but I'm guessing theres additional prefix or something that is needed to access the module. Need to do more digging.

  • edited June 2019
    I'd need more info how it's pulled in ELM327 command set, to be able to say. In general you can query OBD-II PIDs and any of the cars ECUs can answer. Some ECUs might not answer to the standard OBD-II queries. RaceChrono does not support separate CAN-Bus headers for the PIDs right now (see @any comments on beginning of the thread). I will improve this feature in the coming versions for sure.
  • @Trevaskisb there is now an "Unrestricted custom OBD-II PIDs" expert setting in v6.0.6 that allows you to enter any PID you like. I'd still like to know the PIDs you're trying to pull, so I can allow the range without using that expert setting.
  • This stuff is a little over my head but the provided info is the BCM is.....

    Transmitter ID: 726

    Receiver ID: 72E

    Then the PIDs for each tire pressure sensor is 222813-222816.

  • @aaronc7 It might be the same thing @any is talking about...
  • @aol @aaronc7 yes it's the same thing in his case the custom header is 0x726 (I think it's a Ford)
  • Ford Focus ST Ecoboost correct.

  • Just like some other people on this forum I am trying to capture ECU data from my Suzuki (GSX-R750 2005) motorcycle. I have a OBDLINK LX. A friend of mine has already managed to read the ECU data (i.e. RPM) on a laptop via the bluetooth OBDLINK LX with the Suzuki SDS monitor software. We have also been able to make a connection between racechrono and the OBDLINK LX, managed to communicate via the AT commands, but have not yet been able to read data in racechrono. We've been playing around with the custom PID's, but we have some difficulty in understanding exactly what to type at PID and Source. Could anyone help us out on this? We figured to first try to read the RPM's. Once we've managed how to do that, other PID's should not be much of a problem. Also, we're happy to test some other commands etc if needed.
  • edited June 2019
    If you're familiar with ELM 327 AT commands then following should be understandable:

    Let's take example of standard PID for coolant temperature.

    You type following to ELM 327 terminal:
    01 05
    And get response:
    41 05 FF

    Same in RaceChrono would be PID "0x 01 05" and source data "0x FF". So the source data is the bytes you get back, but with two first bytes omitted. The "0x" in RaceChrono means the following bytes are in hexadecimal. You can also type integers there like "1234", but this is more useful in non-OBD stuff.

    You can get the source data automatically from the device, if you use the "Test connection" option on the vehicle profile screen.
  • edited June 2019

    So maybe I am dense, but I am having no luck configuring my custom pid for my BRZ for Oil Temperature. In Torque this works, but once I try to set it up in RaceChrono it shows an error. Can anyone explain where I am going wrong?

    OBD2 Mode and PID: 2101Minimum Value: -40

    Maximum Value: 215

    Scale factor: x1

    Unit type: C

    Equation: AC-40 (no space between A and C; "AC" is the location within the response)

    OBD Header: 7E0

    Thanks (and apologies for the massive screenshots)....

  • edited June 2019
    @calbanese RaceChrono does not have "AC" variable. I'm guessing the "7E" in the source data is the engine temperature. If the torque equation is correct, and "AC" variable is pointing to the first byte ("7E"), then entering equation "A-40" to RaceChrono will work.

    I'm not really expert on Torque App, but that equation does not make sense to me. I'm convinced that "AC" in Torque App means 29th byte of the response... So the use of AC variable here seems really weird.

    RaceChrono equations are not compatible with Torque App, but most simple ones should work. At least the ones that are correct...

    Here's the equation reference for RaceChrono:

  • Did the suggested solution for this - using “A-40” work for you?

  • @calbanese did you ever figure out how to make it work?
  • @slyvki So what I've found from users of RaceChrono is that Toyota GT86 and Subaru BRZ etc. need its custom OBD-II PIDs to be requested with a OBD-II header "7E0". Unfortunately the header cannot be set in RaceChrono v6.0, but it will be possible in upcoming v6.1.
  • RaceChrono v6.1 has just been uploaded beta group (Android only). You can now enter a custom OBD-II header for each channel, so the main issue in this thread should be fixed now.
  • bummer, im out of town for about another month. Hopefully you'll get feedback sooner, but either way I'll be sure to test it out along with the Android 10 stuff if needed (running a Pixel 3).
  • @aol Just did a quick test, seem It work fine. I'll do some track test next sunday.


  • @calbanese , @slyvki - I believe I got the FRS/BRZ oil temperature setting working. See my post in the other thread:
Sign In or Register to comment.