This is going to be the first in a series of posts that cover CAN BUS discovery on my 2018 Porsche Cayman. The goal of this project is to unlock all of the hidden CAN PID’s (and ultimately build a DBC file and repo for them). Ultimately unlocking all of the cars sensors for use in logging during track days. Brake pressure, Oil pressure, TPMS (tire temp + pressure), Tire rotation speed, ABS / TCS activation, Steering wheel degrees, etc, etc. All exciting data points that we’d love to get access to.
I was interested in capturing track day data from the OBD, and I discovered that the CAN BUS that is accessible through the OBD2 port on the 718 has basically NO DATA available on it. This connection comes from the CAN BUS Gateway and my guess is none of the data is provided to it without a manufacturer coded scan tool. Example: Porsche dealer tool message to the gateway – “Hey give me this data from the CAN-BUS here is my special code” and the gateway responds with that data. Great for keeping that info locked away, not helpful for accessing it.
This led me to try and wire up a direct connection to the internal CAN DRIVE line. This line is the Brown/Black (CAN HIGH) Brown/Brown (CAN LOW) set on the 981 / 982. You’ll notice in the picture to the right, that there are in fact 2 pairs of these same colors. One of them is the (useless to us) one that goes to the OBD2 connector. I was able to obtain circuit diagrams for the Porsche CAN Gateway and the Diagnostic port. Using the process of elimination. You want the pair (Brown/Black) going to the gateway (PIN 16) , NOT the pair going to the Diagnostic (OBD2) port. I was able to put a Ohm meter continuity check in PIN 6 of the OBD2 port and rule out one of the two sets. I very carefully spliced into it with the correct sized twisted wire. Wrapped and soldered a connection. Ready to test!
Reverse Engineering
What got me started down this path was this video by Dan Dulac on Reverse Engineering his R8/Huracan Powertrain. This series is a great watch, and what you’ll need to understand the next steps.
SETUP:
- You have a Porsche 718 (982) Cayman / Boxster 2017-2024 S GTS T
- The 718 GT4 may have different CAN wiring
- This may also work on the 981 Cayman / Boxster 2012-2016 as the body wiring harness is the same, but the CAN messages may differ
- You have a PC running Windows 10+
- You have a copy of SavvyCAN for Windows
- You have a SavvyCAN compatible USB2CAN dongle
- You have tapped into the correct CAN DRIVE BUS wired to the gateway.
- DO THIS AT YOUR OWN RISK – Damaging the wires to the CAN BUS is basically like cutting / tapping an Ethernet cord in your companies network closet. If you have no experience with electronic hardware, just don’t.
- Triple check you have CAN HIGH (Brown/Black) and CAN LOW (Brown/Brown) connected correctly.
- Make sure you twist your wires, keep their length to a minimum, and do not terminate with a 120Ohm resistor.
- For some ESP 32, RaspPi, and Arduino CAN modules – you may have to solder to remove the 120Ohm.
- Remove the jumper (or don’t install it) on your USB2CAN dongle. This is the same as disabling the resistor.
- Connect everything up – Turn the ignition to ON – you don’t need to start the vehicle.
Go to Connection Settings and Add a new connection. For the USB2CAN converter you will select QT SerialBus Device (PeakCAN) and the port should automatically show usb(X) if it’s plugged in and the drivers are running. Software for the PU2CANFD here.
The CAN DRIVE BUS operates at a Speed of 500000. Enable the bus and you should immediately see data start to stream in the main window.
I started to methodically go through and identify ID’s. The throttle information looks to be on 0x105 (261) and the brakingĀ info on 1×106 (262). This lines up with a VW DBC I downloaded. I still believe that a Porsche DBC exists that has most of what I’m looking for. If you HAVE that DBC, or you’re interested in helping the community brute force figure out all the PID’s, please leave a comment, or hit me up over at the 718 Forums. (user webkris)
BO_ 261 ThrottlePosition: 0 718Cayman
SG_ ThrottlePosition : 48|8@1+ (0.4,0) [0|1] “” 718Cayman
BO_ 262 BrakePressure: 0 718Cayman
SG_ BrakePressure : 16|8@1+ (1,-99) [0|100] “” 718Cayman