Update on project. I've been able to nail down some of the ArbID's and data values contained in certain byte positions. I was specifically after IC gauge data, so here a list from 2007 and newer GM trucks. Some of these likely carry over into the cars, but I haven't tried to verify any of them there. I found most of what we needed for the gateway project using some simple CAN tools and a couple nodes in a bench setup.

Name ArbID Byte # Scaling Description
GMLAN Broadcasts


Messages Streaming
ECM - RPM 0x000000c9 B2 B3 (B2B3*.25) or (B2*256)+B3)/4 IE: 0b3c = 2876 Rpm
ECM - Oil Pressure 0x000004d1 B3 (B3*0.766) = PSI Scaling is in PSI [0x29 = open circuit]
ECM - Fuel Level 0x000004d1 B6 (B6*100/255) = % Level is 0-100 % [0x26 = open circuit]
ECM - Throttle Position 0x000003d1 B2 (B2*100/255) = % Range 0-100 %
ECM – Engine Temp 0x000004c1 B3 (B3-40) = Temp C Scaling is Celsius [0x16 = open circuit]
ECM - Speedometer 0x000003e9 B5 B6 (B5B6/100) = MPH Speed [0x80 0x00 = open circuit]
TCM - Gear Position 0x000001f5 B4 ASCII Values 1 thru 9 1=P, 2=R, 3=N, 4=D/M6 to 9=1/M1

I also isolated some of the GM specific dynamic pids used by OBD scan tools like the TechII to setup streaming of requested parameters. These are assigned a memory allocation area within FA-FE range, a broadcast speed, and are continuously sent with a specific ArbID so long as the OBD "tester present" command is received by the node. Speeds up the data flow and lessens the load on the bus compaired to the standard OBD "request pid / receive reply" way of doing things.

I'd love to work on learning more of the ArbID and byte positions for things like torque limiting requests if anyone is interested. Guessing someone with experience reading late model bin files could search by known ID's and possibly associate some of these commands used between nodes.

Cheers

-K