Notices
997 Forum 2005-2012
Sponsored by:
Sponsored by:

CAN PIDs for 997.2

Thread Tools
 
Search this Thread
 
Old 08-02-2020, 01:45 PM
  #1  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default CAN PIDs for 997.2

with additional time on my hands I started to tinker with reading vehicle data from the CAN bus.
The PIDs used by Porsche are not being disclosed by Porsche, so I wanted to start a thread where everyone who reverse-engineers a PID can add it here.
I hope that this is the start of a growing PID library
Most of the values below come from here: https://forum.autosportlabs.com/view...b9a4292b7c4b88 with a few added that I figured out on my own

************** RPM ***************
PID 578 / 0x242 (Hex) RPM
((Byte 3 * 256) + Byte 2) / 4

************** Coolant temp ***************
PID 581 / 0x245 (Hex) Engine temp (coolant)
The data (x) is in byte 1 (I start counting at 0)
Temp (C) = (x – 64 ) * 3/4
Temp (F) = (x – 64) * 27/20 + 32

************** Oil temp ***************
PID 1089 / 0x441 (Hex) Engine oil temp
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x - 60
Temp (F) = (x – 60) * 9/5 + 32

************** Sport / SportPlus Mode ***************
PID 0x308 Sport / SportPlus mode
both off: 80, 00, FF, 00, 8D, 00, 00, 10
SportPlus: A0, 80, FF, 00, 8D, 00, 00, 10
Sport: A0, 00, FF, 00, 8D, 00, 00, 10

************** PASM ***************
PID 0x442 PASM
suspension soft: A2, 00, 00, 00
suspension Sport: B3, 00, 00, 00

************** Vehicle Speed ***************
PID 1100 / 0x44C (Hex) Vehicle Speed (kph)??
((Byte 2 * 256) + Byte 1) / 100 - Reads ~2.75 kph when stopped - speedo speed?

************** Steering Angle ***************
PID 194 Steering Angle
Bytes 0 & 1, little endian, signed, X 0.045 (seems to mirror the E46 M3 config; multiplier needs to be tested)

PID 194 Steering rate of change
Bytes 2 & 3, little endian, signed, X 0.045 (multiplier needs to be tested)

************** Vehicle Speed ***************
PID 330 Vehicle Speed (kph)
((Byte 3 * 256) + Byte 2) / 100 - tracks to GPS speed

************** Throttle Position ***************
PID 578 TPS (%) - Actual (e.g., if you have cruise control on; may also show throttle moderation by stability control)
Byte 5 / 255

PID 582 Pedal value (%) - Throttle requested by gas pedal
Byte 3 / 255

************** Wheel Speeds ***************
PID 586 Individual wheel speeds
LF (Bytes 0,1), RF (Bytes 2,3), LR (Bytes 4,5), RR (Bytes 6,7) = ((Odd Byte * 256) + Even Byte)/100 (little endian)
The following 2 users liked this post by Hatzenbach:
NoTurboRequired (02-28-2022), ylk1 (03-28-2024)
Old 02-21-2021, 03:22 PM
  #2  
lordvonpineapple
Advanced
 
lordvonpineapple's Avatar
 
Join Date: Jun 2020
Location: Wollongong, NSW, AU
Posts: 53
Received 27 Likes on 17 Posts
Default

Hi,
I am playing with getting various metrics over OBD2 PIDs. I have a 2010 997.2 C2S, and here's a table of which OBD2 commands my car responds to over ELM327 via a commodity Bluetooth OBD2 adapter talking to an iPhone.

So yeah, it doesn't handle some basic desirable things like Oil Temp. I will now look at seeing if I can send CAN commands over ELM to get this info, but I am a complete newbie in this area.
Attached Images
File Type: pdf
Heidi's PID Commands.pdf (60.8 KB, 306 views)
Old 02-27-2022, 02:36 PM
  #3  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default

Here is a new mystery I am trying to solve:
I am trying to grab the time from the CAN bus
I found CAN-Id 0x301 seems to have the time, but it's a bit strange

if we're start counting at 0, then
byte 4 has the hour
byte 5 has the minutes
byte 6 has the second

example 0x00 0x00 0x00 0x00 0x11 0x36 0x15 = 17:54:21 = 5:54:21 PM

so far so good, what puzzles me is that for every digit it goes like that
0x00 = 0
0x10 = 1
0x20 = 2
....
0xF0 = 15
0x10 = 16
....

for the numbers 1 to 15 the lower bit comes first and then the higher bit
but for numbers higher than 15 it's back to higher bit first and then lower bit

this means that 0x10 can both be 01 and 16
does anyone have a good explanation for that?


************************

Nevermind, the problem was between the seat and the keyboard





Last edited by Hatzenbach; 03-01-2022 at 01:42 PM.
Old 02-27-2022, 09:16 PM
  #4  
Wayne Smith
Rennlist Member
 
Wayne Smith's Avatar
 
Join Date: Oct 2014
Posts: 5,120
Received 1,195 Likes on 762 Posts
Default

No help from here. But working on getting the reverse camera working reliably with the 9xx system it was found the CANBus had unusual formats that were different between MT and PDK as well as 2009 vs later models. Cabs were also different per my recollection. MT vs PDK could be due to the extra TCU residing on the bus. I don't know about the rest.
Old 03-01-2022, 01:46 PM
  #5  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default

OK, here's the next one I found:
CAN-Id 0x301 seems to have the time

if we're start counting the first set of bytes at 0, then
byte 4 has the hour
byte 5 has the minutes
byte 6 has the second

example 0x00 0x00 0x00 0x00 0x11 0x36 0x15 = 17:54:21 = 5:54:21 PM

HOWEVER, (courtesy of CAN gateways) this Can-Id is not available on the main CAN bus (by the fuse box). I found it on the CAN wires that go to the Sport Chrono clock

Last edited by Hatzenbach; 03-01-2022 at 01:47 PM.
The following users liked this post:
Wayne Smith (03-01-2022)
Old 01-19-2023, 01:16 PM
  #6  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default

and something new I just found out yesterday

************** Sport / SportPlus Mode ***************
PID 0x308 Sport / SportPlus mode
both off (lights off): 80, 00, FF, 00, 8D, 00, 00, 10
both off (lights on):
80, 08, FF, 00, 8D, 00, 00, 10
SportPlus (lights off): A0, 80, FF, 00, 8D, 00, 00, 10
SportPlus (lights on):
A0, 88, FF, 00, 8D, 00, 00, 10
Sport(lights off): A0, 00, FF, 00, 8D, 00, 00, 10
Sport(lights on): A0, 08, FF, 00, 8D, 00, 00, 10

How to determine if the headlights are on:
PID 0x308
if 2nd byte ends with "0" headlights are off
if 2nd byte ends with "8" headlights are on
Old 01-19-2023, 07:27 PM
  #7  
wilhit10
Advanced
 
wilhit10's Avatar
 
Join Date: Nov 2010
Location: Yorktown, Va
Posts: 50
Likes: 0
Received 3 Likes on 1 Post
Default

I have a canalyzer and do can for a living if you guys need any help. Also, done some stuff with can/arduino, can/pie, etc. I created an entire dbc for an e46 M3 that can be read in to the aim system.

Last edited by wilhit10; 01-19-2023 at 07:31 PM.
The following 3 users liked this post by wilhit10:
Hatzenbach (01-19-2023), lordvonpineapple (07-16-2023), maschinetheist (01-20-2023)
Old 01-20-2023, 03:27 PM
  #8  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default

Originally Posted by wilhit10
I have a canalyzer and do can for a living if you guys need any help. Also, done some stuff with can/arduino, can/pie, etc. I created an entire dbc for an e46 M3 that can be read in to the aim system.
Cool! I would love to know how to get the oil pressure from the CAN Bus
Old 05-23-2023, 03:25 PM
  #9  
jmartpr
Rennlist Member
 
jmartpr's Avatar
 
Join Date: Jul 2015
Posts: 4,755
Received 1,474 Likes on 918 Posts
Default

Originally Posted by wilhit10
I have a canalyzer and do can for a living if you guys need any help. Also, done some stuff with can/arduino, can/pie, etc. I created an entire dbc for an e46 M3 that can be read in to the aim system.
Wow....would you be able to do a custom DBC for a GT4RS?
Old 05-23-2023, 03:34 PM
  #10  
edub
Pro
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 720
Received 341 Likes on 189 Posts
Default

Originally Posted by wilhit10
I have a canalyzer and do can for a living if you guys need any help. Also, done some stuff with can/arduino, can/pie, etc. I created an entire dbc for an e46 M3 that can be read in to the aim system.
Can I ask, I'm curious why DBC's are not just out and online everywhere for popular cars?

For example, I searched about for a GT4 DBC and didn't find one. The only ones I saw were proprietary and encrypted for specific data loggers. It doesn't make sense to me why things would be this way. What in your opinion is the reason DBC's are not more widely avaliable?
Old 07-14-2023, 08:50 PM
  #11  
JasonRussell
8th Gear
 
JasonRussell's Avatar
 
Join Date: Jul 2023
Posts: 8
Received 2 Likes on 2 Posts
Default

Hello Everyone. I am new to Rennlist but I ran across this older post that that looks to be very helpful.

I have been experementing with OBDII data and using "01- Show Current Data" service to request Hex "0C" Engine Speed from my 2015 Boxster and it seems to work. I see that Hatzenbach has been able to get some really interesting data such as sport mode and accessory status using PID requests. My question is, are you getting this data from the OBDII diagnostic connector and are you using the OBDII service request data command to get this information or are you listening to a different Can Bus for this information? I noticed that his PID 578 / 0x242 (Hex) is a different PID address than what I see on PID 12 /0xOC (Hex) for engine RPM. Any information or feedback you could give would be greatly appreciated!
The following users liked this post:
lordvonpineapple (07-16-2023)
Old 07-14-2023, 10:11 PM
  #12  
slicky rick
Rennlist Member
 
slicky rick's Avatar
 
Join Date: Apr 2010
Posts: 2,490
Received 85 Likes on 55 Posts
Default

Wow these sound German to me... what values are we talking about and how is this relevant to repairs and mods? Hope someone could educate me and of course the other rennlist members
The following users liked this post:
JasonRussell (07-17-2023)
Old 07-16-2023, 12:47 AM
  #13  
Hatzenbach
Rennlist Member
Thread Starter
 
Hatzenbach's Avatar
 
Join Date: May 2011
Location: San Carlos, CA 94070
Posts: 1,896
Received 482 Likes on 226 Posts
Default

Originally Posted by JasonRussell
Hello Everyone. I am new to Rennlist but I ran across this older post that that looks to be very helpful.

I have been experementing with OBDII data and using "01- Show Current Data" service to request Hex "0C" Engine Speed from my 2015 Boxster and it seems to work. I see that Hatzenbach has been able to get some really interesting data such as sport mode and accessory status using PID requests. My question is, are you getting this data from the OBDII diagnostic connector and are you using the OBDII service request data command to get this information or are you listening to a different Can Bus for this information? I noticed that his PID 578 / 0x242 (Hex) is a different PID address than what I see on PID 12 /0xOC (Hex) for engine RPM. Any information or feedback you could give would be greatly appreciated!
I was only able to get these data directly from the CAN bus. I wasn't able to pull any data from the two CAN pins in the OBDII connector. I tapped in the main CAN bus by the fuse box.
but my understanding is that these PiD are dependent which ECU (Bosch Motronic) is being used, even a 997.2 GT3 has different PIDs than my 997.2 C4S
can you educate me about the “show data request” ?
The following users liked this post:
JasonRussell (07-17-2023)
Old 07-16-2023, 08:11 AM
  #14  
lordvonpineapple
Advanced
 
lordvonpineapple's Avatar
 
Join Date: Jun 2020
Location: Wollongong, NSW, AU
Posts: 53
Received 27 Likes on 17 Posts
Default

Yes, you can get a lot of stuff through the ODBII connector, but it requires custom PIDs that need to be sent to custom CAN addresses. Therefore you need to set up the ELM327 for protocol, headers, receive and send address and flow control. These are different settings to a normal ELM327 for sending/receiving standard PIDs. So it will depend on what level of tools / software you are working with whether you will be able to do this. I am working at the custom software / app level, and my iPhone app can initialise and switch between standard ODBII and then to the Porsche protocol (at least for the Siemens ECU in my Porsche 997.2 C2S) and back whenever I want to access data that Porsche (or the standard) doesn't provide over standard ODBII PIDs. i.e. My phone app can successfully read my car's 6 OverRev ranges via the OBDII port via a commodity Bluetooth adapter without any other software, tools or cables.
The following 2 users liked this post by lordvonpineapple:
Hatzenbach (07-17-2023), JasonRussell (07-17-2023)
Old 07-16-2023, 08:26 AM
  #15  
lordvonpineapple
Advanced
 
lordvonpineapple's Avatar
 
Join Date: Jun 2020
Location: Wollongong, NSW, AU
Posts: 53
Received 27 Likes on 17 Posts
Default

Originally Posted by Hatzenbach
Cool! I would love to know how to get the oil pressure from the CAN Bus
What car do you have? All 997.2 except the GT3 use the Siemens EMS SDI 3.1 ECU. Thats what I have (997.2 C2S) and I am trying to figure out the Porsche ODBII protocol for my car. So far I have learnt that there are three different data items available concerning oil pressure: Absolute Oil Pressure, Oil Pressure Deviation, Oil Pressure Sensor. Absolute Oil Pressure has its own request message '21 02', while both Oil Pressure Deviation and Oil Pressure Sensor items are returned by the same request message '21 1A'.
I haven't looked at how to decode the response messages for any of these though.

My car doesn't not respond to Oil Temp over the standard ODBII PID (boo!) but Oil Temperature is available on the custom Porsche protocol via request message '21 32'.
The following 2 users liked this post by lordvonpineapple:
JasonRussell (07-17-2023), LucV (07-16-2023)


Quick Reply: CAN PIDs for 997.2



All times are GMT -3. The time now is 03:31 PM.