- Thu Jun 19, 2014 10:34 pm
#172102
I've been working with the OBD II UART device and it works wonderfully with standard PID's (with the exception of coolant temp, but it could just be the example car I'm working with).
I have successfully based some of my code around the code found in this thread: https://forum.sparkfun.com/viewtopic.php?f=14&t=38253
I am specifically interested in using a oil temp PID that is non-standard. The code is for a subaru brz/gt86/scion frs and according to people using the Torque android app the pid is as follows:
OBD2 Mode and PID: 2101
Minimum Value: -40
Maximum Value: 215 (this is just the maximum that this location can support, which does not mean the sensor can read that high)
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 (Auto also works, but seems to take longer)
However I'm not sure how to interpret this. So, I dug further and found this tidbit from people who use the scanguage-x, a commercial canbus capable obd II gauge:
Gauge Unit TXD RXF RXD MTH Note
Oil temp C 07E02101 010702E80324 3008 00010001FFD8 Required FW 4.05 or higher
Which leads me to believe that all I need to send to the UART device is a 07E02101, but this gives a response of "NO DATA".
I also understand that I need to increase the size of the rxData[] buffer that is used in the sample code linked above, but the "NO DATA" is observed directly as coming from the OBD II UART device.
Is this a CANBUS PID and I need to send it as $07E02101 or perhaps use the "SH" command and set the header to 07E then send the query of 02101? If I do that does that just set the header for that query or for all future queries until I change it?
I have successfully based some of my code around the code found in this thread: https://forum.sparkfun.com/viewtopic.php?f=14&t=38253
I am specifically interested in using a oil temp PID that is non-standard. The code is for a subaru brz/gt86/scion frs and according to people using the Torque android app the pid is as follows:
OBD2 Mode and PID: 2101
Minimum Value: -40
Maximum Value: 215 (this is just the maximum that this location can support, which does not mean the sensor can read that high)
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 (Auto also works, but seems to take longer)
However I'm not sure how to interpret this. So, I dug further and found this tidbit from people who use the scanguage-x, a commercial canbus capable obd II gauge:
Gauge Unit TXD RXF RXD MTH Note
Oil temp C 07E02101 010702E80324 3008 00010001FFD8 Required FW 4.05 or higher
Which leads me to believe that all I need to send to the UART device is a 07E02101, but this gives a response of "NO DATA".
I also understand that I need to increase the size of the rxData[] buffer that is used in the sample code linked above, but the "NO DATA" is observed directly as coming from the OBD II UART device.
Is this a CANBUS PID and I need to send it as $07E02101 or perhaps use the "SH" command and set the header to 07E then send the query of 02101? If I do that does that just set the header for that query or for all future queries until I change it?