More PIDs for Torque App

OK, the fuel level PID that works on my 2007 Envoy SLE is:
PID 12
unit: %
equation: A/2.55
header: A982F1
The value sems pretty accurate although sometimes it jumps to a very different value then back to the proper value(don't know why).

I have to ask.... Where did you discover this PID setup?? Was it here somewhere or on another website?? Did you study up and create it yourself??

The reason I ask this is that while this works with Torque Pro other apps will likely not work with this setup. This is because this is not a true PID (parameter ID) but instead taps into the normal serial data communications between modules and most apps are not programmed to do this.
I'm actually very curious of this myself. I can answer half of this question about half of the data, but as a result I have a second question.

I'm not sure if this was already cleared up sometime in the last four pages, but here we go:
This is apparently the magic incantation for reading SAE J2178 data. Specifically data from page 21 of SAE J2178-4 in PDF form... under section 8.22 Fuel System.
I don't know where the A9 header byte comes from or what it does, but now I want to.
The 82 header byte is fuel system status command.
I don't know where the F1 header byte comes from or what it does either, but now I want to.

The PID of 12 matches the SAE J2178-4 definition for the fuel system secondary ID of 12 for fuel level percentage.

I would expect this to be a header of A982 and a PID of 12, followed by a footer of F1, or A9 followed by a PID of 8212F1 - but somehow it gets combined in such a way that it works, because this setup works perfectly for me.

Thoughts on what A9 and F1 mean and why the bytes are out of sequence?
 
Last edited:

azswiss

Member
May 23, 2021
1,007
Tempe, AZ
I believe A9 is a priority 5 (range: 0-7) Functional Request/Query. 82 is the Target byte and F1 is the diagnostic test tool and is the Source byte.
 
  • Like
Reactions: TJBaker57

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
I believe A9 is a priority 5 (range: 0-7) Functional Request/Query. 82 is the Target byte and F1 is the diagnostic test tool and is the Source byte.

I will add that the "A9" further identifies the message as a 3 byte header form, message type 9, with no IFR (in frame response).
 

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
I don't know where the A9 header byte comes from or what it does, but now I want to.
The 82 header byte is fuel system status command.
I don't know where the F1 header byte comes from or what it does either, but now I want to.

Head on over to J2178 volume 1, page 8. There you will find the details of the 3 byte form of the consolidated message header.

A fair amount of discussion about this type of message is kept here...

 

AmpOverload

Member
Jul 10, 2023
161
USA
I'm actually very curious of this myself. I can answer half of this question about half of the data, but as a result I have a second question.
[...]
Thoughts on what A9 and F1 mean and why the bytes are out of sequence?
@azswiss & @TJBaker57 nicely explained the meaning of the bytes, so all I have to add is an answer to "Thoughts on [...] why the bytes are out of sequence?". This is just how SAE J1850 functionally addressed messages work, as opposed to physically addressed messages (like Mode $22 PID commands to query vehicle data). With functional addressing under SAE J1850, the 3 OBD message header bytes (specified to an ELM327-compatible scantool with a single 'ATSH xx yy zz' command) use the 'yy' position to specify the so-called "Primary ID" ($82 "Fuel System" in our example) of the commands to follow. Then, each command sent to the scantool after that (until the OBD message header changes with another "ATSH xx yy zz" command) contains the so-called "Secondary ID" ($12 "Fuel Level - Percent" in our example). That's actually slightly over-simplified, because there are other things in functional addressing (like so-called "extended" addresses) but this is covered by SAE J2178-4.

I'll also add a footnote that the scantool address (specified in the 'zz' portion of the "ATSH xx yy zz" commands) can be anywhere from $F0 to $FD, per SAE J2178-1, Section 9 ("Physical Address Assignments"). This can be useful if/when you hook up more than 1 scantool to a vehicle, each of which must use a unique physical address.
 

LikeEnvoy

Member
Apr 17, 2012
128
Winnipeg, MB
TJ -
I have to ask.... Where did you discover this PID setup?? Was it here somewhere or on another website?? Did you study up and create it yourself??

The reason I ask this is that while this works with Torque Pro other apps will likely not work with this setup. This is because this is not a true PID (parameter ID) but instead taps into the normal serial data communications between modules and most apps are not programmed to do this.


Now then, we could possibly use that same approach to look into your TPMS issue. If the Trailblazer class vehicles use the same approach as my 2005 Yukon there will be a module that receives the radio signals from the tire sensors and then continuously broadcasts the data on the serial data bus where the cluster picks it up and does it's job if displaying said data. Using a serial terminal app and the same dongle that is used with the Torque app these data messages can be monitored and within these messages we can see what module is sending them and are all wheels represented or is one or more missing and so on.

On my Yukon the module responsible for TPMS is the passenger door module. I haven't had the opportunity to check a later model Trailblazer class vehicle so while I might guess it's the same module I cannot say that it is.
Sorry TJ, I've been busy with life and didn't get back to this thread until now. Sadly I don't remember where I found that PID setup. I have the excel sheet of yours and tried various things from there but I may have tried other sites until I found this seems to work. It's September 29th now so this thread has moved ahead, I know.
 
  • Like
Reactions: TJBaker57

Enroute

Member
Jul 21, 2020
55
Miami
Good evening everyone.

Drive by cable on my 2002 LM7. Can someone confirm the formula for the TPS position PID? My Torque app sometimes shows zero any other times shows 3 at idle and key on/eng off both hot and cold. I would think if the throttle blade is closing completely it should read zero but if the formula was wrong it would read wrong all the time. WOT shows 100 so the formula can not be to far off. It might just need a good cleaning but wanted to make sure I was not running down a rabbit hole.
 

AmpOverload

Member
Jul 10, 2023
161
USA
Good evening everyone.

Drive by cable on my 2002 LM7. Can someone confirm the formula for the TPS position PID? My Torque app sometimes shows zero any other times shows 3 at idle and key on/eng off both hot and cold. I would think if the throttle blade is closing completely it should read zero but if the formula was wrong it would read wrong all the time. WOT shows 100 so the formula can not be to far off. It might just need a good cleaning but wanted to make sure I was not running down a rabbit hole.
SAE standard Mode $01 PID $11 ("Absolute Throttle Position") is A/255*100 percent. I always see some noise (up to about 0.4 percent) in that value when it should be zero, so 3 percent sounds a little high to me. Others here will probably have more relevant answers though, since I typically test on GM cars, not trucks.
 

Enroute

Member
Jul 21, 2020
55
Miami
Thank you. I think it is high as well but it does not make sense to me that it reads zero sometimes and 3 at others. Any ideas on that?

Formula is correct on my app so I think it is time to clean the TB and IAC. WOT does show 100. I am having a intermittent misfire on #8 at idle only but not enough to set a code and I would like to rule out a dirty TB Before looking at other items.
 

AmpOverload

Member
Jul 10, 2023
161
USA
Thank you. I think it is high as well but it does not make sense to me that it reads zero sometimes and 3 at others. Any ideas on that?
Nothing to add from me, really. Three percent isn't alarmingly high, so if there were no obvious issues related to erroneous TPS reporting and if the live, monitored value of TPS is smooth (no large spikes, etc) as you move the pedal from 0 to WOT (and back to 0), then I'd just do what you're planning along with some pre- and post-cleaning monitoring of that value. And please let us know how it goes.
 

AmpOverload

Member
Jul 10, 2023
161
USA
GM "Cylinder Misfire" PIDs

In Torque Lite, one can choose "Add predefined set" in the OBD PID area to add GM-specific PIDs. I don't know how it works in Torque Pro, but I assume it's similar.

Can anyone who runs Torque Pro with the GM PIDs added please confirm whether or not the GM add-on list is assigning PIDs "221205" and "221206" as "Misfire Cyl.1 Current" and "Misfire Cyl.2 Current", respectively.

I'm asking because I think there's a chance that they have these 2 PIDs backwards.
 

azswiss

Member
May 23, 2021
1,007
Tempe, AZ
CSV extracted from Torque Pro below. Curious that the Mode/PID numbering is not sequential.

Long NameShort NameMode&PIDFormula
[GM]Misfire Cyl.1 CurrentMF C1 Cur221205A
[GM]Misfire Cyl.2 CurrentMF C2 Cur221206A
[GM]Misfire Cyl.3 CurrentMF C3 Cur221207A
[GM]Misfire Cyl.4 CurrentMF C4 Cur221208A
[GM]Misfire Cyl.5 CurrentMF C5 Cur2211EAA
[GM]Misfire Cyl.6 CurrentMF C6 Cur2211EBA
[GM]Misfire Cyl.7 CurrentMF C7 Cur2211ECA
[GM]Misfire Cyl.8 CurrentMF C8 Cur2211EDA
[GM]Misfire Cyl.9 CurrentMF C9 Cur2211EEA
[GM]Misfire Cyl.10 CurrentMF C10 Cur2211EFA
[GM]Misfire Cyl.11 CurrentMF C11 Cur2211F0A
[GM]Misfire Cyl.12 CurrentMF C12 Cur2211F1A
 
  • Like
Reactions: AmpOverload

AmpOverload

Member
Jul 10, 2023
161
USA
CSV extracted from Torque Pro below.
Many thanks, @azswiss!

Torque Lite only has PIDs for the first 6 cylinders, but they all match your Torque Pro list.

I have good evidence that, at least on the 2004 and 2005 Buick Century (and probably on all P04-PCM vehicles), those first 2 PIDs are backwards.

I know it's a long shot, but I wonder... Has anyone else ever encountered any doubt or confusion specifically about those Mode $22 PIDs $1205 and $1206?

I'd like to figure out if this is limited to GM P04 PCMs or if it's broader. I suspect the latter, given what I've seen over the years.

I will explain this more in another post, probably tomorrow. Just wanted to start the discussion and get some feedback.

Curious that the Mode/PID numbering is not sequential.
Agree. I've gotten used to it, though. 🤪
 

AmpOverload

Member
Jul 10, 2023
161
USA
Backwards GM "Cylinder Misfire" PIDs

It appears to me that both Torque Lite and Torque Pro are using PID add-on lists for GM vehicles that have the (PCM-node) Mode $22 PID numbers for "Current Cylinder Misfire" backwards for cylinders #1 and #2! I am convinced that this is true for the 2004 and 2005 Buick Century and I suspect that it's probably true for many other GM vehicles.

Analysis/Details:

Ignoring the higher-numbered cylinders (which are not in dispute and are not the focus of my post), I've seen several sources of common GM Mode $22 PIDs over the years that, contrary to the Torque Pro list posted by @azswiss above, show this:
  • $1205 = Misfire Current Cylinder #2
  • $1206 = Misfire Current Cylinder #1
  • $1207 = Misfire Current Cylinder #3
  • $1208 = Misfire Current Cylinder #4
I wondered if that seeming misordering on cylinders #1 and #2 was a simple mistake or if it was correct. Many years ago, I'd assumed that it was a simple mistake, probably just innocently copied from one list to another. But I still wondered about it.

Then, a couple years ago, I disassembled and examined the code from a binary dump of a 2005 Century PCM and found what I think was the first convincing evidence (in the "handler" code for those 2 PIDs) that the list I show above was actually correct. After that, I basically forgot about the issue.

Then, just the other day, after idly collecting misfire data on a 2004 Century (P04 PCM), I noticed something very interesting while analyzing the data:
misfire-data--evidence-that-PIDs-1205-and-1206-are-backwards.png

That graph shows both current and "historic" misfire data for cylinders 1, 2, 4, and 5. (Cylinders 3 and 6 were intentionally omitted to declutter the graph, because those 2 cylinders had no "events" during that run).

The "HMFC-#" and "CMFC-#" labels on the left side show the "Historic" and "Current" values for those 4 cylinders. PID numbers are shown too.

On this short (2m43s) data collection, there were 4 misfire events: 2 on cyl #5 (top, 1st [red] line), 1 on cyl #2 (7th [white] line), and 1 on cyl #4 (bottom, 8th [brown] line). (Cyl #4 is mostly irrelevant to this discussion; I left it in the graph to show the consistency of current/historic data events in an additional cylinder.)

Looking along the timeline at the times of the various "current" cylinder misfire events for both cylinders 4 & 5, you can see "bumps" in the equivalent cylinder number's "historic" line that correspond in time to when the bump for the equivalent cylinder's "current" event ends. For example, look at the two cyl #5 misfire events on the top (red, "CMFC-5") line. Notice how the (green, "HMFC-5") line right below it have 2 bumps that correspond to the 2 bumps in the red line? The same thing can be seen for cyl #4, in the bottom (brown) line and the 5th (purple) line.

But now look at the "current"/"historic" lines for cyl #2 -- i.e. the 7th (white) and 4th (yellow) lines. There's a bump in the "current" (white) line with no corresponding, trailing bump in the "historic" (yellow) line! And the same problem is seen, but in reverse, for the the "current"/"historic" lines for cyl #1 -- i.e. the 6th (light blue) and 3rd (dark blue). There's bump in the "historic" (dark blue) line with no corresponding, leading bump in the "current" (light blue) line! Furthermore, the bump in #1 "historic" comes perfectly in time after the bump in #2 "current" ends, as if it "went along with" that event.

When I saw this, I realized that either the "current" or "historic" PIDs for cylinders #1 & #2 had to be backwards. But I didn't (and still don't) know for sure which case it was. I'm assuming that it's the former case -- i.e. that the "current" PIDs are backwards and the "historic" PIDs are correct, simply based on the PID lists I've seen over the years, which I initially thought were wrong and am now convinced were/are correct!

Conclusion:

So, this graph was created with what I now consider erroneous (Torque-like) PID assignments for "current" cyl #1 and #2. The actual misfire event, I contend, was on cyl #1, not #2. If true, this would explain:
  • the "history" misfire data for cyl #1 and #2
  • the various lists I've seen over the years that assert that cyl #1 and #2 are PIDs $1206 and $1205, respectively
@azswiss: If this is true, it means that your "GM PIDs" spreadsheet might need either a correction or, at a minimum, a footnote of some sort, for those 2 PIDs.

I'd been meaning to try to resolve this apparent discrepancy for years now. I just got lucky that the collected misfire data nicely (even if "accidentally") demonstrated the issue! :smile:

Given that some of the lists I've seen showing (correctly, it seems) PID $1205 as cylinder #2 were for GM non-P04 PCMs (e.g. P01, P59), I suspect that this Torque Lite/Pro error affects more than just P04 PCMs, probably including P01 and P59 PCMs. I don't know if it affects P10 and P12 (and/or other) PCMs, but it might.

I've already modified my own PID list to generate correct graphs (etc). I just wanted to bring this issue to the attention of any Torque Pro users (of which I am not).

I'd appreciate any input that anyone else has on this or related issues, now or any time later.
 
Last edited:
  • Like
Reactions: TJBaker57

AmpOverload

Member
Jul 10, 2023
161
USA
I've now confirmed (via Tech2Win, set up for both a 2004 Buick Century [P04 PCM] and a 2005 Chevy Avalanche [P59 PCM, I think]) that PID $1205 is indeed used for display of "Misfire Current Cyl. 2" and PID $1206 for "Misfire Current Cyl. 1". This further confirms my assertion that the Torque "GM add-on PIDs" list is wrong in at least some cases of GM PCMs.

I strongly suspect that the P01 PCMs, being similar to the P59 PCMs, are affected.

However, it should be mentioned that another possibility is that the GM PCM code is broken, mis-reporting the 2 cylinders' misfire values. That seemed unlikely to me because I would think that someone would have discovered that long ago and I would hopefully have heard about it. So, for now at least, I reject that possibility.

The next time I perform a repair on that Century (which is not my vehicle), I may take the opportunity to induce a misfire on a specific cylinder to confirm, without a doubt, just which PID is associated with which cylinder, removing even the possibility mentioned in the previous paragraph.

I have further confirmed via Tech2Win that this does not appear to be an issue on at least one vehicle type, a 2002 TrailBlazer (@TJBaker57's vehicle, with P10 PCM, IIUC).

Applicability of this issue to other GM PCMs (e.g. P12) remains unknown.

I will update this thread with more info if/when it becomes available.

In Summary: If you have a GM vehicle with a P01, P04, or P59 PCM, be careful about interpreting Torque Lite/Pro "current cylinder misfire" information for cylinders #1 & #2 if those PIDs came from Torque's "add-on GM PIDs"!
 

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
The next time I perform a repair on that Century (which is not my vehicle), I may take the opportunity to induce a misfire on a specific cylinder to confirm, without a doubt, just which PID is associated with which cylinder, removing even the possibility mentioned in the previous paragraph.

So here is an incomplete report, but I will put it here nonetheless.

I just now used a Tech 2 and the "cylinder balance test" which selectively disables a single cylinder one at a time. This was done on my own 2002 4.2 LL8.

Reviewing the data log reveals "cylinder 1" as selected by the Tech 2 during said balance test to be reported at PID 1205. Cylinder 2 is at 1206 and so on. There were insufficient misfires to generate a history value so I cannot comment there.

I guess that be absolutely certain I could manually disable cylinder 1 by some means right at the coil like setup a test where I can physically remove the control signal or something similar?

Next up I will have a look at my 2005 Yukon with 5.3 LM7.
 

AmpOverload

Member
Jul 10, 2023
161
USA
I just now used a Tech 2 and the "cylinder balance test" which selectively disables a single cylinder one at a time. This was done on my own 2002 4.2 LL8.

Reviewing the data log reveals "cylinder 1" as selected by the Tech 2 during said balance test to be reported at PID 1205. Cylinder 2 is at 1206 and so on. There were insufficient misfires to generate a history value so I cannot comment there.
OK, good! If your 2002 TrailBlazer is really a P10 PCM as I think, then that seems to confirm my earlier statement that it is not affected.

A problem I have is that I don't know which GM vehicles use which PCM variants. I don't think I've ever seen a nice list. I had a web page that showed a lot of the PCM variants and many of the vehicles they were used on but cannot seem to find it ATM!

However, since I last posted, I found some evidence that seems to imply that the 2006 TrailBlazer uses a P12 PCM. So I selected a variant of that vehicle in Tech2Win and it does appear to be affected, but I really should confirm it because my head is starting to spin at this point with all the variants! 🥴

I guess that be absolutely certain I could manually disable cylinder 1 by some means right at the coil like setup a test where I can physically remove the control signal or something similar?
I'm not certain what the best way to induce a misfire in a specific cylinder might be. I was considering simply removing a single cylinder's plug wire for a short duration but I'm always hesitant to experiment on a vehicle that's not mine.

Next up I will have a look at my 2005 Yukon with 5.3 LM7.
Based on my 2005 Avalanche test, I'm suspecting that you'll find that it is affected. Waiting with 'bated breath.... :smile:
 

AmpOverload

Member
Jul 10, 2023
161
USA
The other problem I have is not always knowing which "Product Line(s)" to select in Tech2Win. I chose "C" for the 2005 Avalanche (EDIT: even though the VIN has 'E' at that spot, which was not available in Tech2Win) because it had the 5.3-liter V8 "L59" engine option. What do you choose for your 2005 Yukon?
 
Last edited:

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
The other problem I have is not always knowing which "Product Line(s)" to select in Tech2Win. I chose "C" for the 2005 Avalanche (EDIT: even though the VIN has 'E' at that spot, which was not available in Tech2Win) because it had the 5.3-liter V8 "L59" engine option. What do you choose for your 2005 Yukon?


For my Yukon I choose "K" and then later of course the 5.3 LM7 that I have.

Unfortunately the Yukon cylinder balance test does not display misfire counts! Odd.

So I will have to go manual on this one.
 

AmpOverload

Member
Jul 10, 2023
161
USA
For my Yukon I choose "K" and then later of course the 5.3 LM7 that I have.
Thanks! I think I figured out my problem. GM uses VIN character #4 for "platform" on the Buicks (and maybe on all passenger cars) but it appears that they might use VIN character #5 for that same info on trucks! The 2005 Avalanche had a "K" at position 5.
Unfortunately the Yukon cylinder balance test does not display misfire counts! Odd.
I need to play with that option a bit. I don't think I've tried it since I got my VCX Nano last week.
 

Enroute

Member
Jul 21, 2020
55
Miami
I can confirm that the misfire history PID swap is also true on my 2002 LM7. This subject refers back to post #546 and from as far back as post #123. I had actual misfires on cylinder 1 & 2 and watched as the counts on each transferred from current to history confirming the issue.
 
  • Like
Reactions: AmpOverload

Enroute

Member
Jul 21, 2020
55
Miami
To add from my testing, I believe it is not the “current“ PID‘s are swapped but the history. I have monitored and troubleshooted this by removing the plug wire from each cylinder separately and watched side by side current on the left and history on the right to verify. It also proved out that that the only cylinders effected by this is 1 & 2.
 

AmpOverload

Member
Jul 10, 2023
161
USA
I can confirm that the misfire history PID swap is also true on my 2002 LM7. This subject refers back to post #546 and from as far back as post #123. I had actual misfires on cylinder 1 & 2 and watched as the counts on each transferred from current to history confirming the issue.
I know why I missed #123 (before my time) but I have no idea how I missed #546! Thanks for the extra info!
 

AmpOverload

Member
Jul 10, 2023
161
USA
To add from my testing, I believe it is not the “current“ PID‘s are swapped but the history. I have monitored and troubleshooted this by removing the plug wire from each cylinder separately and watched side by side current on the left and history on the right to verify. It also proved out that that the only cylinders effected by this is 1 & 2.
Now I'm even more intrigued. The plot thickens....
 

AmpOverload

Member
Jul 10, 2023
161
USA
Found it! It looks like everything listed on that page for "LM7" is using P01 or P59, so I suspect you have a P59. Exactly what vehicle do you own, though, in case I'm missing something?
 

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
Well I will further muddy the waters here. I just pulled harness wires on my 2005 5.3 LM7. Cylinder 1 first then cylinder 2 second. My current counts were swapped but my history counts were true.

Cylinder 1 current = 1206
Cylinder 2 current = 1205
Cylinder 1 History = 1201
Cylinder 2 History = 1202

My Tech 2 displayed the results properly.
 
  • Like
Reactions: AmpOverload

AmpOverload

Member
Jul 10, 2023
161
USA
Well I will further muddy the waters here. I just pulled harness wires on my 2005 5.3 LM7. Cylinder 1 first then cylinder 2 second. My current counts were swapped but my history counts were true.

Cylinder 1 current = 1206
Cylinder 2 current = 1205
Cylinder 1 History = 1201
Cylinder 2 History = 1202

My Tech 2 displayed the results properly.
Actually, I think you're clearing the waters. Unless I've missed something, everything you've tested matched my predictions and even ruled out the "longshot" possibility that GM's PCM code was wrong.

The only thing that confuses me now is @Enroute's suggestion that it's the "history" counts whose PIDs are swapped in the Torque definitions and not the "current" counts. And when I read his post #125 it seems to be saying the opposite of that. :confused:
 

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
The only thing that confuses me now is @Enroute's suggestion that it's the "history" counts whose PIDs are swapped in the Torque definitions and not the "current" counts. And when I read his post #125 it seems to be saying the opposite of that. :confused:

We have the advantage of seeing the data packet creation details that at the least suggest the PIDs vary between platforms/ECM/PCM.

That, coupled with my test where I physically disconnected a coil while recording the PID values proves at least in the case of my 2005 P59/LM7 combo that cylinder 1 current misfires are reported at PID 1206 and #2 at 1205.

Just watching current and history counts per cylinder on an engine that has multiple misfires occuring cannot prove which PID(s), current or history, could be switched. Only a controlled test can do that.

I cannot help but wonder if this was purposefully programmed like this in the PCM, or an error that was simply adjusted for later in the scantool programming.
 

AmpOverload

Member
Jul 10, 2023
161
USA
We have the advantage of seeing the data packet creation details that at the least suggest the PIDs vary between platforms/ECM/PCM.
Very true. I also have a hardware vehicle simulator that is turning out to be far more useful than I ever envisioned when I was designing it! :smile:

That, coupled with my test where I physically disconnected a coil while recording the PID values proves at least in the case of my 2005 P59/LM7 combo that cylinder 1 current misfires are reported at PID 1206 and #2 at 1205.
Indeed. BTW, many thanks for doing those tests! I won't have access to any GM vehicles for several days, unfortunately.

Just watching current and history counts per cylinder on an engine that has multiple misfires occuring cannot prove which PID(s), current or history, could be switched. Only a controlled test can do that.
Agreed. That's what I was essentially pointing out in the middle part of my post #576 above.

I cannot help but wonder if this was purposefully programmed like this in the PCM, or an error that was simply adjusted for later in the scantool programming.
I suspect the latter. If true, however, it makes me wonder why the P10 PCM uses sensible PID assignments but the later P12 PCM seemingly goes back to the oddball "swapped" assignments! 🤪

The bottom line, AFAICT, is pretty much what I said at the end of post #576, but with the addition of "P12" to that list of PCMs.

@Enroute: BTW, I forgot to mention the website with that "what GM PCMs are used on what vehicles" data whose saved page I finally found on my PC. So, in case anyone else finds it useful:

https://www.pcmperformance.com/programming.html
 

Enroute

Member
Jul 21, 2020
55
Miami
Great job guys! I just looked at my torque app under manage PIDS. Cleared the list and added the predefined GM PID list From scratch. Interestingly, the list shows the following:

cyl 1. Current. 221205
cyl 1. History. 221201
cyl 2. Current. 221206
cyl 2. History. 221202

so it does seem that it is the ”current” PID’s that are swapped And my reference from my post #125 does state the issue correctly. Sorry for adding confusion to this topic over and above the confusion that the predefined PID list seems to define them incorrectly. Do you guys seem to think that this swap could be PCM version dependent?
 

azswiss

Member
May 23, 2021
1,007
Tempe, AZ
  • Like
Reactions: AmpOverload

AmpOverload

Member
Jul 10, 2023
161
USA
so it does seem that it is the ”current” PID’s that are swapped And my reference from my post #125 does state the issue correctly. Sorry for adding confusion to this topic over and above the confusion that the predefined PID list seems to define them incorrectly.
Thanks for clarifying. No problem on the confusion factor. I think it's reasonably well sorted now.

Do you guys seem to think that this swap could be PCM version dependent?
I suppose it depends on what you mean by "version".

Strictly speaking, there's really no way to know that any given PID assignment will work (EDIT: the same way) on 2 different vehicles' PCMs unless they share the same Operating System ID ("OSID").

In practice, however, I'll bet that the various "families" of PCMs behave quite similarly within a single "family". In other words, I'd be surprised to see a P04 PCM that wasn't using out-of-order PIDs for "current misfires" on cylinders #1 & #2.
 
Last edited:

TJBaker57

Original poster
Lifetime VIP Donor
Member
Aug 16, 2015
3,316
Colorado
the predefined PID list seems to define them incorrectly

Well, not universally true.

For some vehicles the predefined list is correct as far as misfire PIDs go.

That is what we established here today. My 2002 4.2 LL8 with P10 PCM reports cylinder 1 current misfires at PID 1205 and current #2 misfires at PID 1206 in accordance with the predefined list.

Something to keep in mind..... I believe the bulk of what is in the predefined list were user contributed. There are errors elsewhere in there, such as the equation for "shift error"s. They don't handle negative values as they should.
 

AmpOverload

Member
Jul 10, 2023
161
USA
For some vehicles the predefined list is correct as far as misfire PIDs go.
So true. But somewhat comically (IMHO), assuming PCM families behave similarly, Torque Pro would probably be correct far more often on those 2 PIDs if that GM add-on list swapped the cylinder #1 & #2 "current misfire" PIDs! 😄

There are errors elsewhere in there, such as the equation for "shift error"s. They don't handle negative values as they should.
Irrelevant side issue: That reminds me of something I saw yesterday during my testing....

While using Tech2Win (with version 33.004, North American Operations "firmware"), I noticed that on the "Engine Data 1" screen, but not on the "Misfire Data" screen, Tech2Win shows high absolute values of Mode $22 PID $000C as negative "Engine Speed" values! These 2 screenshots were taken with the same simulated vehicle traffic:

Tech2Win-Engine-Data-1-shows-large-Engine-Speed-value-as-negative.pngTech2Win-EVAP-Data-shows-large-Engine-Speed-value-as-positive.png

For reason(s) unknown, Tech2Win is (incorrectly) treating "Engine Speed" as a signed value on "Engine Data 1" (for just 1 example) and (correctly) as an unsigned value on "Misfire Data".

Yes, 14848 RPM is not a realistic engine speed on a 2004 Century 🤣, but nevertheless, this Tech2Win behavior is in direct contrast to the SAE J1979 specification for Mode $01 PID $0C ("Engine RPM"), which states the lower limit as 0.0 and the upper limit as 16383.75. Since that PID is in the $00-$FF range shared by Modes $01 and $22, it seems to me like Tech2Win should not be doing that. If different (non-SAE-standardized) PID limits are to be used, GM should be doing that in a GM-specific Mode $22 PID, above the $FF point. 😠
 

AmpOverload

Member
Jul 10, 2023
161
USA
Formula For "O2 Sensor Voltage" PIDs:

Using various techniques (Tech2Win, etc), I've recently been investigating some GM PCM Mode $22 PIDs that I had not yet fully characterized.

PIDs $1145 ("Oxygen Sensor Output Voltage, Bank 1, Sensor 1") and $1146 ("... Sensor 2") have been on my "suspicious" list for a long time now. Over the years, I've never been quite sure of the formula for them.

In short, recent testing has convinced me that it should be:
Code:
A/256*0.9 volts

Or, more simply stated:
Code:
A/230.4 volts

Personally, I prefer the former version since it doesn't obscure the real nature of the equation like many other equations I've seen over the years.

History/Details:

Based on my own real-world testing, I've been using "A/230 volts" in recent years, despite having seen a file (long ago) that's used by PCM-tuning folks that had the formula as "A/230.4" in volts.

Torque Lite's GM add-on PID set uses:
Code:
(0.434*A)*10 millivolts

That's equivalent to:
Code:
A/230.4147465 volts

My most recent testing shows that the conversion is indeed somewhere right around 230.4 volts, but that always seemed like an odd formula to me. But then I realized that the correct equation, presented in a sensible, logical form is probably:
Code:
A/256*0.9 volts

In other words, I suspect that a "90% of full scale" adjustment is being applied to a typical 256-step (0-255) 5-volt sensor. That works out to exactly:
Code:
A/230.4 volts

which is what the tuner file had been using. And it exactly matches what I see in Tech2Win (configured as a 2004 Buick Century). Based on that, I've now modified my equation for PIDs $1145 and $1146 to be "A/256*0.9 volts".

@azswiss: I decided to check what the "GMT PIDs" spreadsheet is using and found that it uses the Torque definition in one spot (which is close enough to what I assert is the "real" formula to not worry about it much).

But there are 2 other spreadsheet definitions that use this rather odd formula, for both PIDs $1145 and $1146:
Code:
(A*.005)-0.068 volts

I'm not sure where that came from, but I suspect that it may be wrong. To my eye, it looks like it's a slightly modified version of the proper equation for the O2 sensor voltage values in SAE-standard (SAE J1979) PIDs $14 - $1B:
Code:
A/200 volts

It's certainly possible that the formula for those 2 PIDs is dependent on the vehicle or, probably more precisely stated, on the PCM family (P01/P59, P04, P10, P12, etc) or even the Operating System ID (OSID). But I suspect that the same formula would be used on those 2 PIDs across various GM PCM families.

P.S. @azswiss: In the "GMT PIDs" spreadsheet, I see several references to "2003 TrailBlazer". Since, IIUC, that's @TJBaker57's vehicle, shouldn't those all be "2002"?
 

azswiss

Member
May 23, 2021
1,007
Tempe, AZ
Re: "2003 Trailblazer" vs "2002 Trailblazer"; looks like a typo on my part when I added the reference application info to the PID data I received from @TJBaker57 (note: the data source is referenced in the PID sheet under the "Source/Reference" heading and contained in the "TJBaker57 CSV 8-29-21" tab). Will be corrected for the next rev.

The source of the formulas for PIDs $1145 and $1146 also came from this file.
 

Attachments

  • GMT_PIDS_Rev_5.xlsx
    86.2 KB · Views: 32

Forum Statistics

Threads
23,721
Posts
642,586
Members
19,251
Latest member
Sheik480

Staff Online

Members Online