GM Class 2 Data Request

NickInMN

Member
Oct 4, 2024
9
Minnesota
I've been slowly trying to learn more about the J1850 VPW, specifically the GM flavor. This all started as a "simple" project to get the Oil Life and Fuel Filter life data from my Duramax ECM. At first I was just brute forcing things looking for very specific messages. Over the last few weeks I've decided to look at the bigger picture to get a better understanding of how it actually works. In doing so I started writing a Windows/Android/iOS application to parse Class 2 log files and make them easier to read. Somewhat similar to what TJBaker57 has done with his spreadsheet. I've made pretty good progress on this but I'm somewhat limited in my testing because the only vehicle I have is a truck with a Duramax swapped in. The only modules I have on the Class 2 bus are a TCM and ECM. I also have a BCM and IPC that I can plug in but they don't provide much info because so many other modules are missing.

Long story short, if anyone is willing to share their Class 2 logs with me so I can do some more testing and validation it would be much appreciated. Below are some screenshots of what I have so far.
 

Attachments

  • log.PNG
    log.PNG
    79 KB · Views: 26
  • filter.png
    filter.png
    17.1 KB · Views: 22
  • filter applied.png
    filter applied.png
    75.4 KB · Views: 21
  • details1.PNG
    details1.PNG
    17 KB · Views: 19
  • details2.PNG
    details2.PNG
    15.5 KB · Views: 15
  • response.PNG
    response.PNG
    20.5 KB · Views: 24

I have an overwhelming amount of logfiles.

A good deal of them were created for researching specific operating conditions or the like.

Here is one that contains a 2002 TrailBlazer during a startup. I paused like 15 seconds at each observed change during rotation of the ignition key so I could capture message traffic related to each change of state. Things like the "power moding" messages etc.

It begins with a "bus wake-up" from the drivers door module as I open the door.
 

Attachments

I have an overwhelming amount of logfiles.

A good deal of them were created for researching specific operating conditions or the like.

Here is one that contains a 2002 TrailBlazer during a startup. I paused like 15 seconds at each observed change during rotation of the ignition key so I could capture message traffic related to each change of state. Things like the "power moding" messages etc.

It begins with a "bus wake-up" from the drivers door module as I open the door.

Do you know what state your ignition key was in for this power mode?
28 FF 40 06 07 0F 0F DA

I'm working on documenting all the Class 2 messages in my 2004 Suburban.
On my truck, the power mode sequence looks like this:

Code:
TIMESTAMP  CLASS2 MESSAGE        CHKSUM  POWER MODE  KEY POSITION  INPUTS
---------  --------------------  --      ----------  ------------  ------
00:00.000  28 FF 40 06 04 01 0B  CD      unlock      unlock        ign0
00:00.000  28 FF 40 06 06 09 0B  94      accessory   accessory     ign0 + acc
00:00.132  28 FF 40 06 07 0B 0B  83      run         on            ign0 + ign1 + acc
00:00.166  28 FF 40 06 08 03 0B  5F      crank       start         ign0 + ign1
00:04.718  28 FF 40 06 07 03 0B  D9      run         start         ign0 + ign1

00:04.964  28 FF 40 06 07 0B 0B  83      run         on            ign0 + ign1 + acc

01:00.000  28 FF 40 06 07 09 0B  1B      run         accessory     ign0 + acc
01:00.123  28 FF 40 06 05 01 0B  42      RAP unlock  unlock        ign0
01:00.164  28 FF 40 06 09 00 0B  04      RAP         off           

01:03.616  28 FF 40 06 03 00 0B  0B      off awake   off

I haven't figured out what the last byte represents (always 0B for me, always 0F for you). But I also don't have a power mode of 0F.
 
Last edited:
Do you know what state your ignition key was in for this power mode?
28 FF 40 06 07 0F 0F DA

This is the RUN (on) key position and the "RUN" power mode for my 2002 TrailBlazer 4.2L.

It occurs before and after engine start.


On my truck, the power mode sequence looks like this:


My 2005 Yukon SLT with 5.3 LM7 looks like yours I think. I don't remember if I have studied the Yukons Power Moding.



Here is a link to some documentation of what the BCM uses to assess power mode.

 
@endjuser

I just scanned logfiles and found my Yukon pretty much is the same sequence as your Suburban.

I did catch an entry not seen in your listing..

28 FF 40 06 07 03 0B D9 seen between others.

Screenshot_20250219-202123_aGrep.jpg
 
@TJBaker57

Thank you. I checked a few other logs from the Suburban and noticed the same 07 03 sequence that was missing from my scan yesterday. I've updated my previous post to include that, as well as the related BCM inputs, in case anyone else is looking to decode.

Off-topic, do you happen to know the decoding for either of these messages:

88 09 10 22 XX (theoretically engine torque, but I don't know the conversion formula)
88 25 29 07 XX (something to do with wheels from the ABS/TCS, but not wheel speed)
 
Last edited:
@NickInMN

Attached is a sample log exported from my own VPW decoding project. It's supposed to be a .csv file, but had to rename it to .txt for uploading to the forum.

I haven't figured out how to decode all of the messages yet, so take the "Value" details with a grain of salt for anything that lists the information source as "Observed"

Hope this helps!
 

Attachments

Last edited:
88 09 10 22 XX (theoretically engine torque, but I don't know the conversion formula)


Units are Newton Meters and resolution is 1 bit = 4 NM.


88 25 29 07 XX (something to do with wheels from the ABS/TCS, but not wheel speed)


I have watched this one also but have not figured out what it is.


I haven't figured out how to decode all of the messages yet, so take the "Value" details with a grain of salt for anything that lists the information source as "Observed"


I have spreadsheets that break out some of these unknowns so I can see how they behave. I haven't looked at your upload yet.
 
Units are Newton Meters and resolution is 1 bit = 4 NM.

Thank you.

On my Suburban, a conversion of (a * 4) seems a bit high for a 5.3L.
Using (a * 3) matches up to the curve I found here:
https://www.automobile-catalog.com/...uburban_lt_12-ton_4x4_5_3l_v-8.html#gsc.tab=0

torque-plot.png

I've noticed some other messages like that where GM is using a different secondary address for functional messages already defined in J2178 but they decided to use a different scale (e.g. UNM-08-131)
 
Last edited:
Thank you.

On my Suburban, a conversion of (a * 4) seems a bit high for a 5.3L.
Using (a * 3) matches up to the curve I found here:
https://www.automobile-catalog.com/...uburban_lt_12-ton_4x4_5_3l_v-8.html#gsc.tab=0

View attachment 116285

I've noticed some other messages like that where GM is using a different secondary address for functional messages already defined in J2178 but they decided to use a different scale (e.g. UNM-08-131)


My go-to test would be to record what Tech-2 displays vs the class 2 message for these sorts of things.

Usually I pretty much defer to the Tech-2 output regardless of what I think it should be.

Some time ago I evaluated a PID, $19FC and came up with a multiplier of about 2.7. That's close to the 3.0 you have there. This was on a P10 PCM though.

In looking at it again I see I misread the message you had posted. I looked too quickly and got the source address as the secondary address. So I then grabbed the wrong data from J2178.
 
Last edited:
@TJBaker57

That's a great point... I will test logging this weekend with the Tech2 running and see how those DPID responses match up to the broadcast functional message.

On my Tech2, the only Torque entry I see is in Powertrain → Data Display → Engine Data Display → Engine Data 2, which is for "Torque Request Signal" in N-m

Reverse engineering the Tech2 PCMCIA card tables (my other side project), I can see that there are actually two Torque PIDs listed under "Engine Data 2":
  • $1336 Torque Request Signal
  • $1337 Torque Delivered Signal (not displayed on the Tech2 screen for my truck)
It looks like they both have a multiplier of 2.64, which matches your observation.
I don't see PID $19FC in the list. What T2 pathing gets you there?
 

Attachments

  • tech2-engine-data-2-pids.png
    tech2-engine-data-2-pids.png
    201.1 KB · Views: 21
  • Like
Reactions: TJBaker57
I don't see PID $19FC in the list. What T2 pathing gets you there?

The $19FC I referred to is on a P10 PCM. 2002-2005 GMT360/370 platform.

For the P10 PCM the PID is located in the TAC Data, the TCC Data, and the Transmission Data.

The P59 does not have $19FC.

Haven't looked specifically at the Yukon Tech 2 menus lately.

For Engine Torque on your Tech 2 maybe look at Transmission Live Data instead of Engine data. I think my Autel AP200 uses the same DPID setup as a Tech 2.
 
Reverse engineering the Tech2 PCMCIA card tables (my other side project),

If I had the know-how I would jump right into something like this !!


That's a great point... I will test logging this weekend with the Tech2 running and see how those DPID responses match up to the broadcast functional message


Try as I might I have had no success with this Engine Torque PID/Equation. I recorded a logfile of all data traffic yesterday while my Autel AP200 was displaying the live data. Simultaneously I ran a screen recording capturing the Autel display.

Thus far while I can see similarity to the displayed Autel Engine Torque data readout here and there I have been unable to nail it down.

In the Autel Engine Torque display Newton meters are displayed as whole numbers only while Ft-Lbs have several decimal points. This led me to believe the 'native' output is Nm.

I have found nothing that I can reconcile with the displayed values. PID $19DE, a 2 byte value 'looks' like it should be it.
 
@TJBaker57

It looks like I was a bit off on my interpretation of the Tech2 PID $1336 (Torque Request Signal) from Engine Data 2. It is 2 bytes, but instead of (a * 2.64) multiplier it's (a * .0264) in N-m. I still haven't quite worked out the rules for reading PID data from the Tech2 PCMCIA tables.. there are multiple phases of calculations/conversions that happen between the VPW data and what gets displayed on screen.

Driving around the block, PID $1336 was consistently $4600 (473 N-m) for me, even at idle. So (at least in my Suburban) that PID seems rather useless.

PID $19DE (Engine Torque) from Transmission Data menu is also 2 bytes, and from what I can tell running the Tech2 conversion function it's (a * 2.7116)

I matched that up to the functional message and they are definitely related. The functional message appears to be something like (a * 2.5 - 100) but don't quote me on that yet. For example, the low point reports $27 which calculates to negative 2.5 N-m where PID $19DE reports 0 N-m.

Now that we know PID $19DE and the functional message are indeed both engine torque in N-m, I'll try to gather a larger/longer/more precise dataset by just looking at $19DE instead of all the PIDs that the Tech2 was requesting.
 

Attachments

  • pid-19de.png
    pid-19de.png
    106.6 KB · Views: 9
  • Like
Reactions: TJBaker57
Driving around the block, PID $1336 was consistently $4600 (473 N-m) for me, even at idle. So (at least in my Suburban) that PID seems rather useless.


I get the same for PID $1336 on my 2005 5.4 LM7.


Now that we know PID $19DE and the functional message are indeed both engine torque in N-m, I'll try to gather a larger/longer/more precise dataset by just looking at $19DE instead of all the PIDs that the Tech2 was requesting.

Now and then I will configure a DPID with whatever PID(s) I need then record that data stream.
 
Now and then I will configure a DPID with whatever PID(s) I need then record that data stream.
I need to update my logger to send periodic "test device present" messages to keep the DPID report alive whilst I'm driving... hopefully will have time to do that this week.

Regarding the other (88 25 29 07 XX) "wheels" message, I plotted it against vehicle speed (from PCM) and actual wheel speed (from VSES/EBCM) during my last test run. It appears to be related to wheel speed, but with additional spikes for changes in what I'm guessing is acceleration. I also tried plotting the lateral accelerometer and yaw sensor, but those don't seem to be related. (It also appears that the EBCM doesn't report wheel speeds below 3mph.)

wheels-message.png

J2178 has definitions for "wheel slip" and "wheel load" that are not otherwise used in my truck, so it could be one of those but with a GM-specific identifier/calculation... however, being more of an IT guy than a car guy, I have no idea what either of those should look like on a graph.
 
I need to update my logger to send periodic "test device present" messages to keep the DPID report alive whilst I'm driving... hopefully will have time to do that this week.

NOT being an IT guy I use readily available workarounds!! I use an OBD2 splitter and a second device to send those keep alive messages !!

J2178 has definitions for "wheel slip" and "wheel load" that are not otherwise used in my truck, so it could be one of those but with a GM-specific identifier/calculation... however, being more of an IT guy than a car guy, I have no idea what either of those should look like on a graph.


I have seen those "wheel slip", "wheel load" definitoons also. Haven't come up with any potential explanations though.
 
If you have no objection to considering an "AI Opinion"... I queried *GPT4ALL* Off Line on this"Wheel Slip vs. Wheel Load" issue, and the reply was interesting:

WHEELSLIPVSWHEELOAD.jpg


Free for Download, Installation and completely Private Off Line Use:

 
NOT being an IT guy I use readily available workarounds!! I use an OBD2 splitter and a second device to send those keep alive messages !!

That was my previous setup, too :smile:

The last time I had the dash apart to fix the cacophony of blend door actuators, I swapped out my VCIM for a DIY logger module in a cardboard box that saves everything to an SD card. The original plan was to tie into the microphone and audio out lines on the VCIM cable to make a little voice-prompt system that you could talk to in place of OnStar... but since then, they invented ChatGPT and my little project has seemed less interesting/useful.

Regarding engine torque, I ran a few test runs with the following data points:
  • Functional message 88 09 10 22 XX: guessing (A * 2.5 - 100) engine torque in N-m
  • PCM PID $19DE: according to Tech2 is (A * 2.7116) engine torque in N-m
  • VSES DPID $03: according to Tech2 is (A * 100 / 256) delivered torque in %
engine-torque.png

It looks like the (A * 2.5 - 100) formula does generally match up to $19DE, with the exception of occasionally reporting a small negative value when the engine torque is near zero. What's odd to me is that the VSES data (delivered torque %) lines up 1:1 with the PCM (engine torque N-m) data, despite one being percentage and the other being Newton-meters in Tech2. I guess that means that Delivered Torque (%) is a calculated value as well, e.g. % = (N-m * 0.1 + 40)
 
Last edited:
  • Like
Reactions: TJBaker57

Forum Statistics

Threads
24,349
Posts
649,570
Members
20,928
Latest member
huntylterer

Members Online