CAN PIDs for 997.2
#32
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
And one more item to add to the list. Here is where you get the oil pressure via CAN bus:
PID 0x441 (that's same as for oil temp), but it's in byte 6 (if you start counting at 0)
0x00 = "0" on the oil pressure gauge (I guess that's 0 bar)
0x7F = "5" on the oil pressure gauge (I guess that's 5 bar)
PID 0x441 (that's same as for oil temp), but it's in byte 6 (if you start counting at 0)
0x00 = "0" on the oil pressure gauge (I guess that's 0 bar)
0x7F = "5" on the oil pressure gauge (I guess that's 5 bar)
#33
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
And here's a question for the community:
All the PIDs and Bytes I posted above are for 997.2
I just tested them on a 997.1 and the PID and values for coolant temp, Sport mode, PASM and time are the same.
Oil temp is at the same location for a 997.1 as for a 997.2, but the formula to convert to Celsius or Fahrenheit isn't the same.
Does anyone what the formula is to calculate oil temp in a 997.1 ?
For reference, here is how you get the oil temp in a 997.2:
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
All the PIDs and Bytes I posted above are for 997.2
I just tested them on a 997.1 and the PID and values for coolant temp, Sport mode, PASM and time are the same.
Oil temp is at the same location for a 997.1 as for a 997.2, but the formula to convert to Celsius or Fahrenheit isn't the same.
Does anyone what the formula is to calculate oil temp in a 997.1 ?
For reference, here is how you get the oil temp in a 997.2:
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
#34
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
and I'm answering my own question:
How to calculate oil temp from CAN bus readings:
For 997.2:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x - 60
Temp (F) = (x – 60) * 9/5 + 32
For 997.1:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x * 3/4 - 48
Temp (F) = (x * 3/4 - 48) * 9/5 + 32
How to calculate oil temp from CAN bus readings:
For 997.2:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x - 60
Temp (F) = (x – 60) * 9/5 + 32
For 997.1:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x * 3/4 - 48
Temp (F) = (x * 3/4 - 48) * 9/5 + 32
The following users liked this post:
jchapura (04-06-2024)
#35
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
I just started looking into this and found this article! I'm using an ELM 327 and ODB2 Fusion which allows for entering custom PIDS, so going to try Hatzenbach's Engine Oil temp at 0x441 (Hex), byte E with formula E * 3/4 - 48.
hpfiend mentioned CEL errors, can a list of Pxxxx error codes be pulled from a custom PID, (if we knew what its number was) ?
As for detecting Sport Mode, is there a way (via ODB2) to enable/disable Sport mode? -- it's probably only READ access, but just curious?
hpfiend mentioned CEL errors, can a list of Pxxxx error codes be pulled from a custom PID, (if we knew what its number was) ?
As for detecting Sport Mode, is there a way (via ODB2) to enable/disable Sport mode? -- it's probably only READ access, but just curious?
Last edited by James Manios; 04-09-2024 at 02:24 PM.
#37
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
We might be thinking the same thing?? "automatic sport mode"? I was toying with the idea to pull the Sport mode module (997.1) and solder 2 wires onto the pins of the contact pad (for sport mode and sport suspension) and via an Arduino connected to switched power, pulse Sport on, and wait 1 sec and pulse Sport Suspension off etc -- but when looking at videos of the module it didn't look like contact points were easily accessible, it's not a regular push-button but a compression contact pad. Waiting for summer to try pulling it for myself.
Last edited by James Manios; 04-09-2024 at 02:39 PM.
#38
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
We might be thinking the same thing?? "automatic sport mode"? I was toying with the idea to pull the Sport mode module (997.1) and solder 2 wires onto the pins of the contact pad (for sport mode and sport suspension) and via an Arduino connected to switched power, pulse Sport on, and wait 1 sec and pulse Sport Suspension off etc -- but when looking at videos of the module it didn't look like contact points were easily accessible, it's not a regular push-button but a compression contact pad. Waiting for summer to try pulling it for myself.
And yeah I wouldn't mess with the button itself, but only by doing it via CAN bus command.
#39
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
![](https://cimg3.ibsrv.net/gimg/rennlist.com-vbulletin/1280x720/photo_2024_04_10_08_22_48_a73d064d90563b020e38adf7f2172a977532ce37.jpg)
#40
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
Thank you for this thread Hatzenbach!
I would like to confirm some of these PIDs for a 997.1 Tubo.
All PIDs were tested on CAN Drive with cables going from the ABS.
************** RPM *************** works
PID 578 / 0x242 (Hex) RPM
((Byte 3 * 256) + Byte 2) / 4
************** Coolant temp *************** works
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 *************** both do not work
For 997.2:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x - 60
Temp (F) = (x – 60) * 9/5 + 32
For 997.1:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x * 3/4 - 48
Temp (F) = (x * 3/4 - 48) * 9/5 + 32
************** Sport Mode *************** works
PID 776 / 0x308 Sport
off: Byte[0] is 0x80 or sometimes 0x90
Sport: Byte[0] is 0xA0 or sometimes 0xB0
************** PASM *************** works
PID 1090 / 0x442 PASM
suspension soft: A2, 00, 00, 00
suspension Sport: B3, 00, 00, 00
************** Vehicle Speed *************** does not work
PID 1100 / 0x44C (Hex) Vehicle Speed (kph)??
((Byte 2 * 256) + Byte 1) / 100 - Reads ~2.75 kph when stopped - speedo speed?
************** Vehicle Speed *************** works
PID 330 / 0x14A Vehicle Speed (kph)
((Byte 3 * 256) + Byte 2) / 100 - tracks to GPS speed
************** Throttle Position *************** not tested
PID 578 / 0x242 TPS (%) - Actual (e.g., if you have cruise control on; may also show throttle moderation by stability control)
Byte 5 / 255
PID 582 / 0x246 Pedal value (%) - Throttle requested by gas pedal works
Byte 3 / 255
************** Wheel Speeds *************** works
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)
__________________
Now I only need the PID an byte number for the intake air temperature!
I read it out with a tester via OBD2 and the number format matches this formula:
Temp (C) = (x – 64 ) * 3/4
So the values are only .0, .25, .5 and .75 or with one decimal .3, .5 and .8.
I even plugged off the intake air sensor and put in a potentiometer on the NTC pin of the intake sensor plug.
This changed the values on the tester but I could not find the values on the bus.
I searched for the values with the reverse formula Value = (Temp from Tester / 0.75) + 64.
I hope somebody can help me.
Greetings from Germany!
I would like to confirm some of these PIDs for a 997.1 Tubo.
All PIDs were tested on CAN Drive with cables going from the ABS.
************** RPM *************** works
PID 578 / 0x242 (Hex) RPM
((Byte 3 * 256) + Byte 2) / 4
************** Coolant temp *************** works
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 *************** both do not work
For 997.2:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x - 60
Temp (F) = (x – 60) * 9/5 + 32
For 997.1:
PID 0x441 (Hex)
The data (x) is in byte 5 (I start counting at 0)
Temp (C) = x * 3/4 - 48
Temp (F) = (x * 3/4 - 48) * 9/5 + 32
************** Sport Mode *************** works
PID 776 / 0x308 Sport
off: Byte[0] is 0x80 or sometimes 0x90
Sport: Byte[0] is 0xA0 or sometimes 0xB0
************** PASM *************** works
PID 1090 / 0x442 PASM
suspension soft: A2, 00, 00, 00
suspension Sport: B3, 00, 00, 00
************** Vehicle Speed *************** does not work
PID 1100 / 0x44C (Hex) Vehicle Speed (kph)??
((Byte 2 * 256) + Byte 1) / 100 - Reads ~2.75 kph when stopped - speedo speed?
************** Vehicle Speed *************** works
PID 330 / 0x14A Vehicle Speed (kph)
((Byte 3 * 256) + Byte 2) / 100 - tracks to GPS speed
************** Throttle Position *************** not tested
PID 578 / 0x242 TPS (%) - Actual (e.g., if you have cruise control on; may also show throttle moderation by stability control)
Byte 5 / 255
PID 582 / 0x246 Pedal value (%) - Throttle requested by gas pedal works
Byte 3 / 255
************** Wheel Speeds *************** works
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)
__________________
Now I only need the PID an byte number for the intake air temperature!
I read it out with a tester via OBD2 and the number format matches this formula:
Temp (C) = (x – 64 ) * 3/4
So the values are only .0, .25, .5 and .75 or with one decimal .3, .5 and .8.
I even plugged off the intake air sensor and put in a potentiometer on the NTC pin of the intake sensor plug.
This changed the values on the tester but I could not find the values on the bus.
I searched for the values with the reverse formula Value = (Temp from Tester / 0.75) + 64.
I hope somebody can help me.
Greetings from Germany!
Last edited by Messmaker; 04-22-2024 at 05:54 PM.
The following users liked this post:
Hatzenbach (04-22-2024)
#41
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
@Messmaker thank you for confirming. Unfortunately I don't have an answer for your question
but I don't believe that intake air temperature is actually available on the CAN bus.
And I have no idea how to get data from OBDII.
Greetings from a German in California :-)
![Frown](https://rennlist.com/forums/images/smilies/frown.gif)
And I have no idea how to get data from OBDII.
Greetings from a German in California :-)
Last edited by Hatzenbach; 04-22-2024 at 11:09 PM.
#42
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
I'm doing the same thing, just got the MCP2515 and hooked up to an arduino and using pins 6,14 for ODB2 -- but I noticed there seemed to be a couple of Porsche CAN bus ports, can you confirm you are using 6,14 ? In Adam's example his car gives info all the time, but when I hooked up to my 997.1 Turbo, it just said "CAN RX TX Started"? I noticed you had said the bus was quiet until you asked for information so maybe this is correct, just want to make sure I'm going down the right path. If you did use 6,14 did you also use a data speed of 500?
Last edited by James Manios; 04-23-2024 at 01:48 PM.
#43
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
and a couple more decoded PIDs:
0x502 Light sensor in the instrument cluster
bit 3 (start counting at 0), values range from 0 - 250 (decimal)
this PID is available on the motor can bus, the one in the wiring loom next to the fuse box
0x503 Light sensor in the middle of the dashboard, this is actually an infrared sensor, used by the A/C
bit 4 (start counting at 0), values range from 0 - 188 (decimal)
this PID is available on the display can bus (the one which also goes to the SportChrono clock)
0x502 Light sensor in the instrument cluster
bit 3 (start counting at 0), values range from 0 - 250 (decimal)
this PID is available on the motor can bus, the one in the wiring loom next to the fuse box
0x503 Light sensor in the middle of the dashboard, this is actually an infrared sensor, used by the A/C
bit 4 (start counting at 0), values range from 0 - 188 (decimal)
this PID is available on the display can bus (the one which also goes to the SportChrono clock)
#44
Rennlist Member
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
@Messmaker can you also confirm if this is also the same for a 997.1 Turbo:
PID 0x441 (that's same as for oil temp), but it's in byte 6 (if you start counting at 0)
0x00 = "0" on the oil pressure gauge (I guess that's 0 bar)
0x7F = "5" on the oil pressure gauge (I guess that's 5 bar)
and - bonus question - do you know how I get the boost on a 997.1 Turbo?
PID 0x441 (that's same as for oil temp), but it's in byte 6 (if you start counting at 0)
0x00 = "0" on the oil pressure gauge (I guess that's 0 bar)
0x7F = "5" on the oil pressure gauge (I guess that's 5 bar)
and - bonus question - do you know how I get the boost on a 997.1 Turbo?