More PIDs for Torque App

j91z28d1

Member
May 28, 2023
6
tx
I'm dying to figure out how to sniff out pids to add to tq app. it's so useful for stuff on road trips.


I have a hybrid yukon and have found a bunch of good pids online around for the hybrid battery data but I also have a tech 2 and would love to be able to find a few handy things I can view with it. I get tq app won't be able to activate things like the bi-directional. stuff like self leveling air bag pressure when loading the trailer for tongue weight, now I have to pull the tech 2 out. but I'd love to just use my phone for it.


I also really like your idea of being able to put oil temp into the data line to view easily too. I have found a oil temp pid online but I believe it's calculated, since it just just climbs slowly and never shows hot. that and my truck doesn't have a oil temp sensor anywhere.


I understand I need a split obd2 cable to hook up 2 things at once. but I don't know what terminal is or how to use it. I was thinking with the tech 2 since I can select each data individually to look at, it might narrow down what it's asking the ecm for. making it easier to find?


anyways.. I get its a steep learning curve but I'd like to learn how to do this and will buy whatever I need.
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
@TJBaker57 is the resident expert on these matters. For starters, you are going to need a serial terminal app to use to monitor the communications and an ELM327 interface. Here are a couple of links you might check out for Android serial terminal apps:
WiFi: Serial WiFi Terminal
Bluetooth: Serial Bluetooth Terminal
A good reference document on ELM327 - OBD is attached below.
 

Attachments

  • ELM327DS.pdf
    372.7 KB · Views: 15

j91z28d1

Member
May 28, 2023
6
tx
thank you. I will try to read thru and see if any of it makes sense haha. at least get familiar with some terms.

I have 2 Bluetooth ELM plug in, both were off a list of known good one from the Dr prius app list. I got 2 different ones, incase one was better than the other. both seem to work well enough to reading modules other than the main ecm. I just keep one in each car.


do I have that correct. I need a splitter with a Bluetooth ELM hooked up to one side connected to the phone running terminal app and a scanner hooked up to the other and terminal app is recoding what's being sent around on the data lines?
if so I'm going to order one off Amazon. unless there's some quality differences in those too. seems there are in every adaptor these days.
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
You will need a splitter in order to monitor the bus with the Tech 2 connected. Before shelling out any cash I would experiment with the terminal emulator and the ELM327 device to the point that you can connect, see and capture data. You will need to work out the device settings and initial AT command set that needs to be sent in order to establish communications. They will look something like this:
ATZ - reset
ATSP - set protocol to Auto
ATH1
ATS1
ATMA - bus monitoring mode
Note: These inputs are for my '03 Suburban with Class 2 Serial Bus/SAE J1850 VPW interface. I believe your '08 Hybrid Tahoe has CANBus so there may/will be some minor variations.

Once you sift through the initial fire-hose of data you can focus on specific receiving & sending modules using the ATMRxx (monitor receiver) & ATMTxx (monitor transmitter) commands. Your Tech 2 should show up us a module F1.
 

j91z28d1

Member
May 28, 2023
6
tx
I will try and see what I get.

I ordered a right angle splitter anyways, it gets tech 2 cable out of the way.

I got free time at work in a few days, I'll see if I can wrap my head around some of this stuff. I really hope so. I've been messing with diy tuning stuff since the obd1 days but I've never really understood the Communications part. just what's needed to make the engine run well after other guys did the hard part of mapping it all out.

oh and I thought I saw something asking for oil pressure that was working. heres what seems to work in the gmt900 I think they are called?

oil pressure
221470
A*0.578

oil temp. I believe it's calculated thou.. seems newer ecm's use a lot of calculated Temps die things like cats and stuff.
221154
A-40

I know there's more to pids, but that was all I needed to put into torque. whatever the default header is worked.
 

j91z28d1

Member
May 28, 2023
6
tx
so got a min to see if I can connect. looks like I could connect but the only command that did anything was ATMA. that's just key on engine off.

I'll attach a screen cap. but since mine is the newer can type should I be trying different commands? and should those commands show like a constant flow of information. or just a quick screen snapshot grab.

I haven't taken the time yet to read your PDF. I will thou, sorry if all these is in there.

today I found low side ac pressure and compressor rpm on my tech 2. so many little things that would be so handy to have quick access too. really hoping I can wrap my head around finding these pids.
 

Attachments

  • Screenshot_20230531-182054.png
    Screenshot_20230531-182054.png
    617.9 KB · Views: 10

azswiss

Member
May 23, 2021
860
Tempe, AZ
The screen shot indicates you are connected so that's a start. Based on prior comments in this forum, I *believe* that monitoring all modules on the CANBus very quickly results in a buffer overflow (as is apparently shown in the screenshot above) so the next step is to identify the messages containing the data you need and the modules responsible for transmitting & receiving providing that data. You should check out the section entitled "CAN Messages and Filtering" on page 41 of the ELM327 reference document. Looks like you also need to set the terminal to do a CR or LF for each new message (not sure where that is, sorry). @TJBaker57 will know where to take this from here.
 

j91z28d1

Member
May 28, 2023
6
tx
thanks for the reply.. I am currently reading the documents. lots of info. I'm going to try sending some of the simple commands tomorrow.


I see it has a small amount of memory. this is going to be very difficult to grab something specific. I see that now haha. I was picturing in my head the info streaming by and as you hit a button on one the other one can see what it's sending and receiving. but I see that's not how any of it works haha.


the learning curve is steep.
 

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
TJBaker57 will know where to take this from here.

Actually, not so much! I have mentioned on several occasions that my knowledge of CANBUS is next to zip. As I own no vehicle that uses CANBUS I have never had the need to delve into that arena. The most I can do here is add a few comments...

EDIT: Just noticed I have multiple versions of the ELM327DS datasheet and thus the page mumbers I reference may be different than other users!

Post 447, the screenshot:

1) you entered "ATZ-reset". ATZ is a complete command, nothing is to be entered after it. The "reset" part is not needed.

2) you entered "ATSP". The ATSP command is not a complete command and it DOES need an additional parameter. Additionally, I would use the command "ATTP" instead. It is similar but does not cause some troubles that using ATSP can. In the data sheet for the ELM327 chip (page 35) is a listing of the available possibilities for both the ATSP and/or ATTP commands.

Screenshot_20230602-092238.png


3) I will echo azswiss comment about setting an option for end of line character(s) in the serial terminal application settings. Every place you see an occurrance of "^M" is a result of an improper setting for "end of line" in the terminal app.

4) I would add the command to turn on the terminal applications display of message headers. This makes it possible to see where each message is coming from. The command is "ATH1". Send this before sending the ATMA command.

5) As you noted your buffer fills quickly. The data stream in CANBUS is very fast and there is no way for these little OBD2 adapters to keep up with displaying it all. For this reason you will need to explore a few options/commands for filtering the CANBUS data stream. As mentioned by @azswiss, Pages 41, 42, and 43 of the ELM327 data sheet deal with some of this. Here I cannot be of much help. I have noodled around a little with these concepts but never gained a good footing.
 
Last edited:

j91z28d1

Member
May 28, 2023
6
tx
my splitter came in.. seems handy even if I can't get anything from it for this haha.

my truck is a bit of a in between I think. like my clone tech 2 won't connect to my other car, a 2014 full can car i think. I don't really know what that means but someone has found working pids for these things, sadly I got in late and seems all guys are gone, so I have no idea how they sniffed them out.

looking on YouTube it seems someone using a raspberry pi to write a program that could do. can stuff. I wouldn't totally buy something if it would make this easier.

I have been super busy at work, which I'm usually not. so haven't got to much time into this like I expected. but I am curious how you found something useful out of the displayed data. like I did the same command twice and got totally different set of stuff, and that was just engine off doing nothing. I was thinking you'd hit record, say move the shift level and capture the data, and then enter it till you found something that returned a response and worked from there.

is that kinda how you found stuff?


do you guys have any knowledge about how the more expensive dongles like say the obdlink LX works compared to these elm327 chip ones? same thing or newer tech? I see they were able to actually changing tuning stuff on a few obd2 ecm's using pcm hammer and tuner pro software. any chances these would make finding pids any easier?
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
my clone tech 2 won't connect to my other car, a 2014 full can car
Tech 2 is not going to work with anything after 2008; you need an MDI.

I did the same command twice and got totally different set of stuff, and that was just engine off doing nothing.
Not surprising since the amount of CAN traffic is overwhelming the buffer on the ELM327; you are taking a small snapshot of a constant firehose of activity. This is why filtering the data is essential.

@TJBaker57's advice regarding headers is key:
I would add the command to turn on the terminal applications display of message headers. This makes it possible to see where each message is coming from. The command is "ATH1". Send this before sending the ATMA command.
Filter by Transmit or Receive module via the AT MT xx & AT MR xx commands, respectively, or byte filtering using the AT CRA command. Identifying the appropriate modules and/or bytes is going to take some experimentation; trial & error coupled with some fortuitous Googling.
 
Last edited:

Mooseman

Moderator
Dec 4, 2011
25,257
Ottawa, ON
Tech 2 is not going to work with anything after 2008; you need an MDI.
False. It will work up to 2013. Have used it on my 2011 Caprice. It's tis2000 that won't work. And since then, the online ACDelco TDS will not work at all with the Tech 2 anymore.
 

Sb350

Member
Jul 8, 2021
8
Finland
I'd like to see the IAC steps on my 2001 lm7. There was some discussion in this thread earlier, but did it actually work? What are the parameters for the torque app? I'm not a an expert with these PID things.. I do have hptuners to monitor the IAC, but it would be easier to see it on my 10" tablet I have mounted to the dash.
 
Next one, fuel level, doesn't read 100% when I fill my tank but that is the same reading given by Tech 2. One could adjust my Equation for that by reducing the divisor, 255 an appropriate amount I suppose.

Fuel Level
PID = 221155
Min = 0
Max = 100
Scale = x1
Units = Percent
Equation = A/255*100
Header = Auto

First of all, thank you very much for posting this all, this thread has come up many times in my google searching over the last few days, along with a few others including PCMhacking, etc. I don't actually own a GMT, just parts of them (LS swaps...) but got so much good info from this thread I decided to join just to say thanks and help out.

221155 is actually the raw 8 bit ADC value into the ECU - from my reverse engineering work I did last night, it appears to be your standard 40-250 ohm fuel level sender to low reference voltage, and a roughly 250 ohm pull-up to AVref. As a result, from my testing, the lowest voltage you'll see into the ADC is roughly 0.66V and the highest is roughly 2.5V, unless there's a wiring fault. So the lowest ADC count you'll see is roughly 34 and the highest is roughly 128.

The ACTUAL, ECU-corrected (including on vehicles with dual tanks and two level senders... you can calibrate all of this in HPTuners) fuel gauge value intended for the IPC is 2212C5. Same math you used here, except it should give you a real fuel gauge reading instead of only ranging from about 13% to about 50%, and should be roughly linear, at least if your ECU's calibrated correctly for the sender and tank in use.

Thanks again, and I'm sure I'll be chiming in with more data as I find it. I'm currently combining every single source of GM 22xxxx extended PIDs I can find into a master table so I can find the gaps and fill them in wherever they're covered by the ECUs I work with.

Hopefully this hasn't already been covered by the thread in the last 4 years, I'm still working my way through it.
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
I'm currently combining every single source of GM 22xxxx extended PIDs I can find into a master table so I can find the gaps and fill them in wherever they're covered by the ECUs I work with.
Attached below is an Excel file of PID's I have found (includes reference vehicle & source where known). Enjoy!
 

Attachments

  • GMT_PIDS_Rev_3.xlsx
    79.7 KB · Views: 11
  • Like
Reactions: AmpOverload

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
The ACTUAL, ECU-corrected (including on vehicles with dual tanks and two level senders... you can calibrate all of this in HPTuners) fuel gauge value intended for the IPC is 2212C5


Thanks for popping in here! Not much action lately.

All my mode/service 22 PID scans on P10 & P12 PCMs from GMT360/370s return a negative response from the PCM. So we don't have that PID, at least on the LL8 engine.

My 2005 Yukon with an LM7 does return a value for that 12C5 PID though I have not evaluated it yet in real time. I am only referring to my library files of previous pidscans here right now.

There is, I believe, another way to also get fuel level....maybe. Cannot remember if I have tried this. Sometimes I don't use a PID at all and instead send a serial data request for the value in question.
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
There is, I believe, another way to also get fuel level....maybe. Cannot remember if I have tried this. Sometimes I don't use a PID at all and instead send a serial data request for the value in question.
Is this it?

Name - Displayed Fuel Level %
Mode - 12
Formula - A/2.55
Min - 0
Max - 100
Units - Percent
Header - A982F1
 
Alright, now that I've caught up entirely on the thread...

And one more educated guess also seen buried at pcmhaking.net after ferreting it out ...

Fuel Trim Cell
PID = 221190
Scale = x1
Units =
Equation = A
Header = Auto

There's a related value of "Fuel Trim Index" seen. I will admit I don't even know what that value is. Will need to get some driving samples from Tech 2 to see if I can pin down the PID.
I'm 99% sure I know what this is. It's likely an older, rudimentary system similar to the dynamic PID setup you discovered a page or two ago, specifically for handling the trim table. So I suspect you would either use the fuel trim index PID and the fuel trim cell PID in combination to keep your local fuel trim table fully up to date in the scan tool, or possibly somehow write to the fuel trim index PID to tell the ECU which cell you want the fuel trim cell PID to reflect. If you have VCM Scanner from HPTuners, try having it update the ltft/stft maps (in the upper right of the screen at least on my install) while snooping what it's doing on the bus, I bet you see a lot of 221190s going by.

So I thought I would go after something that I had figured would be an easy one. And it would have been had I taken it for granted that the returned value was in fact the correct one. Alas, I did not. Startup ECT (Engine Coolant Temperature). I imagined I would simply be finding an ECT reading at startup that was stored as is in another PID. Not so fast, not so fast. Had a candidate PID in mind and went out this AM to have a look at the readings. Expected to find the same values for ECT and Startup ECT while the engine was cold. Nope! Not the same. Hhrrrmm?? After literally hours of observations and calculations, permutations and combinations I came up with an equation based on the ECT (at startup) that yields a value that closely matches (so far) the value seen in my Startup ECT PID. It would appear that the PCM alters the ECT temp at startup to derive a "Startup ECT, the purpose of which I have not a clue. And there may be other factors in play as well but this is what I have observed this morning.

The value returned by this PID when lower than 113 degrees Fahrenheit is raised from the actual temperature. The value is lowered when above 113 degrees Fahrenheit.

Examples: startup at 203 degrees F And startup ECT is 180 F. Startup at 113 F and you get 113 F. Startup at 37.4 F and you get 57 F as Startup ECT. Why? Hell if I know!

So after all my figuring it turns out the value given by the PID needs no equation. Only if one wanted to calculate a startup ect would you then use "4/3*[05]+53" (where [05] is the internal torque pid for engine coolant temp) Why would anyone do this? Again, not a clue. For now I have a gauge that yields the difference between my equation and the PID value. Only good for comparison before startup of course.

Here is the actual Startup ECT from the PCM:

Name = Startup ECT
PID = 22160D
Scale = x1
Units = °F
Equation = A
Header = Auto

View attachment 90725
this "feels" like some kind of startup fuel table enrichment hack/crutch - but I have no proof of it. I'd guess they bodge the ECT value on certain startups to bump the way either cold or hot starts behave. Or possibly for use by a smart HVAC system to block it from running the heat on cold startups? I dunno, I'm spitballing here.

Anyone know circumstances where one O2 sensor heater would be on and the other off? Tech 2 displays two distinct HO2S commands.

I have identified 2 bits, #1 & #2 in PID 1112 that toggle with the O2 heater commands but I don't know which is which. Not sure it even matters generally. So this equation will admittedly be a little 'different'. I cannot tell which heater is which so I will configure my equation to tell if both heaters are commanded off, or both commanded on, or if any single heater is commanded on.

HO2S Heaters #1&#2
PID = 221112
Scale = x1
Units =
Equation = Lookup(Bit(A:1)+Bit(A:2)::0='O2Htrs_OFF':1='O2Htr_ON':2='O2Htrs_ON')
Header = Auto


Additionally I have candidate "Power Enrichment" and "Loop Status" bits.

Name = Power Enrichment
PID = 221120
Scale = x1
Units =
Equation = Lookup(Bit(A:7)::0='Inactive':1='Active')
Header = Auto


Name = Loop Status
PID = 221120
Scale = x1
Units =
Equation = Lookup(Bit(A:0)::0='Open':1='Closed')
Header = Auto

Here is a screenshot just after engine shutdown...

View attachment 90743
All I can think is - if they're actually HO2S heater status bits - you might want to read the datasheets from Bosch on the LSU 4.2 and 4.9 sensors as well as the CJ125 ASIC intended for managing their heater operation. Their warmup algorithm and operation is non trivial - you want to warm them up only after any condensation/dew has been blown off by the exhaust stream, or go slow enough that it boils off without stress fracturing the sensor element, the heater is only used when the element is not being heated sufficiently by the exhaust stream itself (so not at wide open throttle and not under certain other conditions, etc) so there are definitely conditions where you may or may not want your heaters on. This is a very common area for mistakes to be made by lower end wideband O2 sensor controllers/AFR gauges, which (along with people running fuels and oils that quickly poison the element) is a big part of why LSU sensors are a "lol, you should have been carrying a spare, didn't you know that?" part according to many WBO2/AFR gauge makers, despite lasting hundreds of thousands of miles in OEM GM vehicles.

Using pid 2215
Are you truncating or abbreviating these PIDs or is this actually what you entered? I'm guessing truncated/abbreviated but if that's what you entered, try 2212c5 or 221155.

Attached below is an Excel file of PID's I have found (includes reference vehicle & source where known). Enjoy!
NOW I see this, having already started my own version pages before I got to this post. :lol:

Thanks for popping in here! Not much action lately.

All my mode/service 22 PID scans on P10 & P12 PCMs from GMT360/370s return a negative response from the PCM. So we don't have that PID, at least on the LL8 engine.

My 2005 Yukon with an LM7 does return a value for that 12C5 PID though I have not evaluated it yet in real time. I am only referring to my library files of previous pidscans here right now.

There is, I believe, another way to also get fuel level....maybe. Cannot remember if I have tried this. Sometimes I don't use a PID at all and instead send a serial data request for the value in question.
I'd love to hear about that serial data request, my interest in this subject is mostly because I want to build a custom PCB to operate the factory gauges in my vehicles (a 79 Jeep J10, a 88 Jeep Comanche, and a 94 Safari RV based on an Isuzu NPR) directly off the class 2 serial data stream from the P01/P59 ECUs.

So far I can tell you that a 03 Savana 3500 GMT600 w/ LQ4 and P59 ECU (12593058 OS) definitely responds correctly to the 12C5 PID, as well as the raw ADC 1155 PID. I know there's a secondary sending unit input as well that I'm debating hooking up to a sender in my reserve tank and calibrating, so I'm kind of curious what the 1155 equivalent for that input would be, guessing it may only exist on GMT800s though. Maybe 1156? I'll dig through azswiss' spreadsheet shortly and see if I can find it.

I should hopefully have a 06/07ish GMT800/900 Escalade LQ9 ECU and engine on the bench shortly to prod at and see what PIDs I find. Wish I could remember what year I pulled it from.
 
  • Like
Reactions: chevyman1973

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
I should hopefully have a 06/07ish GMT800/900 Escalade LQ9 ECU and engine on the bench shortly to prod at and see what PIDs I find. Wish I could remember what year I pulled it from.

You should be able to grab the year from the VIN in the PCM, yes?
 
You should be able to grab the year from the VIN in the PCM, yes?
I can, but it's currently 3000 miles away (I'm halfway through moving cross country) and it's unlikely I'll be in a position to mess with it till next month.

At this point I think I've probably got nothing more useful to add till then, unfortunately. Just found your class 2 serial data broadcast/IPC info thread linked in this one though, so thanks again, reading all of that now.
 
  • Like
Reactions: TJBaker57

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
Is this it?

Name - Displayed Fuel Level %
Mode - 12
Formula - A/2.55
Min - 0
Max - 100
Units - Percent
Header - A982F1

That looks correct. I may have a look today and see if I get a response.

I believe that I have seen some modules that don't respond to requests of this format even though they broadcast the information regularly without being requested.
 

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
Is this it?

Name - Displayed Fuel Level %
Mode - 12
Formula - A/2.55
Min - 0
Max - 100
Units - Percent
Header - A982F1


Works in the 2005 5.3 LM7 Yukon.

Screenshot_20230710-123556.png

Instead of requesting I can monitor the functional address 83 but it takes a while before I see a secondary ID of 12 though (4th column)

Screenshot_20230710-123545.png

Also seen are a likely GM proprietary secondary ID of 0A, a form of fuel usage and an SAE standard secondary ID of 13, fuel level as a volume instrad of a percent.

Here below I asked for first, fuel level as percent, second fuel level as volume, and lastly fuel capacity. The volume and capacity gave me a 2 byte response value. This is all in the Yukon.

Screenshot_20230710-124439.png
 
  • Like
Reactions: azswiss
Interesting! I was trying to test some of that out myself, but all of my ELM327 devices flipped me the bird simultaneously (except for the one 3 timezones away at the moment...) so I gave up. Good to see that it's the broadcast data I was expecting.

I was able to verify that SAE J2178 commands 4A 11 (oil pressure) and 82 12 (fuel level %) reflect the 22115C and 2212C5 PIDs within a few PSI/a fraction of a percent, at least on my 03 P59 ECU, so I believe there are only minor rounding or fencepost errors on the equations listed in this thread for all of those PIDs, at most.
 

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
So I am still fiddling with this and that here and there and recently discovered an error in the "[GM]" PIDs set that came with Torque Pro. If you have ever tried to see the shift error PIDs you might have seen a weird value for some of the shifts. In my case I saw an error of 6.28 seconds for a shift that was maybe .2 seconds or so in duration. I have seen this over the years but never really sought to find out what was going on there.

In my copy of Torque Pro the equation for all 3 shift error PIDs is "A/40". Here is the thing,,, for positive values the equation works. But for negative values it does not work as delivered. It needs the addition of a function that recognizes hexadecimal representations of negative values. That function is "SIGNED". You can see this function used in other [GM] PIDs like the TCC Slip PID.

So in the 3 different shift error PID equations change the "A/40" to "SIGNED(A)/40”.
 

AmpOverload

Member
Jul 10, 2023
106
USA
[...] recently discovered an error in the "[GM]" PIDs set that came with Torque Pro.
[...]
So in the 3 different shift error PID equations change the "A/40" to "SIGNED(A)/40”.
@TJBaker57

Great catch on the updated formula for GM Mode $22 'shift time error' PIDs! I've been decoding them (albeit not in Torque Pro) as "(unsigned)A/40" for several years now and it makes far more sense that the "A" would be 'signed', so thank you for posting!

One thing I've wondered about, though. Are the units for these 3 (or 4, see below) "shift time error" PIDs really "seconds"? I don't have a Tech2 and I've wondered if that's the way a Tech2 would show those PID values. Is it possible that the units are "%" and not "seconds"? I'm just curious, since I haven't found anything conclusive either way.

@azswiss

Many thanks for keeping and publishing your "GMT PIDs" spreadsheet and thanks to all the contributors who were instrumental in supplying the data!

I have a suggested addition. I don't have a GM truck but there seems to be a lot of PID commonality between your vehicles and various other GM vehicles of the 2001-2005 era that I've experimented with. So I'll humbly suggest adding Mode $22 PID $1996 as "[GM] Last Shift Error" using the (now new-and-improved) formula "signed(A)/40". My notes show that I got that PID (and all the other 'shift time' and 'shift time error' PIDs) from this 2003-era HPTuners thread post by 'beerman'.

I have collected data that convinces me that the PID is correct (along with all the other shift-time-related PIDs), but I understand if you'd like someone with more history on this forum (e.g. TJBaker57) to confirm this PID's authenticity, especially given that, to date, I've only tested it thoroughly on Buicks ("P04" PCMs).

Hope that's a bit helpful....

Many thanks to all who've shared info on this site!
 
  • Like
Reactions: TJBaker57

azswiss

Member
May 23, 2021
860
Tempe, AZ
Revised PID Spreadsheet attached (Rev 4). Corrected equations ("signed(A)/40") for Shift Error, added Mode $22 PID $1996 as "[GM] Last Shift Error".
 

Attachments

  • GMT_PIDS_Rev_4.xlsx
    79.1 KB · Views: 8
  • Like
Reactions: AmpOverload

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
One thing I've wondered about, though. Are the units for these 3 (or 4, see below) "shift time error" PIDs really "seconds"? I don't have a Tech2 and I've wondered if that's the way a Tech2 would show those PID values.


Well now here you go, a Tech 2 view showing one of those paramters as seconds...

PXL_20230724_230348477.jpg
 
  • Like
Reactions: AmpOverload

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
Revised PID Spreadsheet attached (Rev 4). Corrected equations ("signed(A)/40") for Shift Error, added Mode $22 PID $1996 as "[GM] Last Shift Error".

Might want to add a note:

Mode 22 PID 1996 is not supported by the P10 PCM, tested on 2 2002s, 1 2003 and 1 2005 in my arsenal.

It is supported by the 2006 P12 PCM I have.
 

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
humbly suggest adding Mode $22 PID $1996 as "[GM] Last Shift Error"

I checked my scan logs and found that the P10 PCM seems to not support mode 22 PID 1996. It returns a 7F out of range error.

It was supported in the only P12 PCM I have, a 2006.
 

AmpOverload

Member
Jul 10, 2023
106
USA
@azswiss: Thanks for the update! I haven't had time to compare my current understanding of GM PIDs against everything in the spreadsheet, but I may have other Mode $22 PIDs for consideration in the future.

@TJBaker57: Wow, fantastic! Many thanks! That screenshot is about as conclusive as it gets and I can forever stop wondering now. 😀
 
  • Like
Reactions: TJBaker57

AmpOverload

Member
Jul 10, 2023
106
USA
I've been looking over Rev 4A of the "GMT PIDs" spreadsheet, specifically on the "PIDs" tab...

I must state up front that I'm looking at GM "P04" PCMs and don't have regular access to any GM trucks, but historically (or maybe I should say "hysterically" :smile:), I have noticed a lot of overlap in the various families of GM PCMs' PID assignments, so I think/hope that my observations may be useful. If not, please feel free to let me know. (I have thick skin.)

Entry "2212C5" (Mode $22 PID $12C5) is a bit of a mystery to me. For one thing, it has 2 entries, at rows 250 & 328.

Row 328 (seemingly entered as an "unknown" entry from a PID scan on a "2003 Suburban 4x4 L59 4L60E") looks like an unneeded duplicate and maybe (if appropriate) should just have that vehicle note added to the row 250 entry?

Row 250 identifies the PID as "Fuel Tank Level% -F". (BTW, what does the "-F" suffix mean on those names in column "B"?) This entry doesn't match my experience with this PID. In P04 PCMs, this PID is from the PCM, not any of the BCMs, but maybe that's different on GM trucks. And on P04 PCMs, it's a 2-byte (not 1-byte) reply, with a formula of "AB/51" (or thereabout, but it's close to that), as verified by decoding the same information but via a functionally addressed command using SAE-standard Primary ID $82 and Secondary ID $12 ('Fuel System' / 'Fuel Level - Percent'). So I'm wondering if this PID is really as different on GM trucks as this spreadsheet entry implies.

Also, just curious... Is the spreadsheet supposed to be sorted, e.g. by column "D" (Mode + PID)? If so, there are several entries out of order, making it hard to compare my known PIDs with those in the spreadsheet, especially when I'm looking for a group of PIDs that are related and numerically close to each other, i.e. by PID number.

Sorry for the long write-up, but it's hard to accurately describe some of this without getting a bit long-winded. :smile:

Hoping this information is actually useful and not a "wild goose chase" of sorts. :smile:
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
Always good to have a second set of eyes reviewing the data. Answers/comments below:

Rows 250 & 328 look to be duplicates. Column L ("Source/Reference") indicates where the initial record came from. Note: I have seen comments that a PID can have different definitions between vehicles (though I have not encountered this directly).

I scanned my truck for PID's and, where possible, attempted to match them up with PIDs from other sources. In the case of Row 328 entry (Unknown) the scan of my truck indicated this was a PID, but I was not able to match to any PIDs that were already in the list. I found this PID subsequently but apparently did not remove the duplicate.

In the case of Row 250 (Fuel Tank Level% -F), I found this entry at the following link (note: it no longer appears to work): https://torquebhp.fandom.com/wiki/GM_Extended_PIDs . As for the "-F", that was taken directly from the reference source.

The entries *should* have been sorted in order, clearly a miss during an update. Filters have been setup for each column to facilitate the kinds of searches/comparisons you are looking for; they will catch any out-of-sequence listings.

Looking forward to any additional data, fixes required, comments, etc. I will start Rev 4B with these comments, but will hold on releasing pending further feedback. Thanks!
 
  • Like
Reactions: AmpOverload

AmpOverload

Member
Jul 10, 2023
106
USA
Thanks for the info, @azswiss!

I should probably withhold my questions and comments until I've had a chance to go through the whole spreadsheet, even though that could wind up taking me months.

As for PID re-use, I typically don't trust that any Mode $22 PID (by number) works the same on 2 different vehicles of the same manufacturer. That's why I'm a bit worried about commenting at all on PID entries in the spreadsheet. They could be accurate for various GM trucks but not for the "P04" PCM vehicles I typically test on. And I really don't want to waste anyone's time.

Nevertheless, I'll keep poring over the spreadsheet as time permits. (I could not figure out how to sort by column, but that could easily be my limitation as I'm not much of a spreadsheet guy and I cannot open this particular spreadsheet in my preferred program [Gnumeric]. But I'll manage.)
 

azswiss

Member
May 23, 2021
860
Tempe, AZ
Not a waste of anyone's time if it makes the spreadsheet more useful/accurate. Also, feel free to suggest additional columns and/or clarifications (e.g. adding "PCM" columns).

Not familiar with Gnumeric. I confirmed that the filtering works in Google Sheets.
 

TJBaker57

Original poster
Member
Aug 16, 2015
2,897
Colorado
And on P04 PCMs, it's a 2-byte (not 1-byte) reply, with a formula of "AB/51" (or thereabout, but it's close to that),


What precisely does "AB/51" translate to? Is this some form of shorthand used in whatever software you are evaluating PIDs with?

All 2 byte responses I have seen are evaluated either with a register shift like "A<8+B" or more obviously as "A*256+B".

Although Torques equation editor will accept the notation "AB" it does not yeild a proper result.
 

AmpOverload

Member
Jul 10, 2023
106
USA
Also, feel free to suggest additional columns and/or clarifications (e.g. adding "PCM" columns).
I don't expect you or anyone else to change existing spreadsheet entries, but one thing that would be useful (for future entries) for those "unknown" PIDs, in addition to the existing info on "tested vehicle", would be an example of an actual vehicle reply, preferably with OBD message headers previously enabled ("ATH1" command to scantool). That makes it easy to see, for example, how big the PID reply is (in bytes), which can help someone trying to decipher possible PID meanings.
Not familiar with Gnumeric. I confirmed that the filtering works in Google Sheets.
Thanks for the Google Sheets suggestion. I had to look it up to see if it had an online version. It does, but it requires a Google account, which rules me out. Not a big problem, though, since I can read the spreadsheet, just in a program that I'm highly unfamiliar with, slowing me down.
What precisely does "AB/51" translate to? Is this some form of shorthand used in whatever software you are evaluating PIDs with?

All 2 byte responses I have seen are evaluated either with a register shift like "A<8+B" or more obviously as "A*256+B".

Although Torques equation editor will accept the notation "AB" it does not yeild a proper result.
Sorry for the confusion. "AB" is taken as shorthand to mean "A*256+B". (I find use of a 'shift' operator mostly inappropriate unless the data has bitfields.) My notation is essentially treating the "A" and "B" bytes as a single 16-bit (unsigned, unless specified otherwise) value. I use that notation all the time and thought at least some other apps did too, but I could easily be mistaken. It's just easier, especially when you get into PIDs with a 4-byte reply representing a single value ("ABCD" versus something too long to type)! :smile: But I'll try to stick to Torque Pro convention.
 

Forum Statistics

Threads
23,273
Posts
637,483
Members
18,472
Latest member
MissCrutcher

Members Online