Notices

Demonstration of native data logging in Porsche via EXLAP

Thread Tools
 
Search this Thread
 
Old 03-06-2023 | 08:54 PM
  #1  
edub's Avatar
edub
Thread Starter
Pro
 
Joined: Feb 2021
Posts: 731
Likes: 352
Default Demonstration of native data logging in Porsche via EXLAP

I have finished a demonstration of how to interface with the EXLAP protocol that is present in Porsche and many Volkswagon branded cars.

EXLAP is a telemetry service in the car which you can subscribe to various data feeds. This is the same service that the Porsche Track Precision Pro application uses for it's telemetry. What makes EXLAP interesting is it does not require a physical connection to the car CANbus, it can be done over wireless, which makes it a good data source for use from an existing data logger, tablet or phone.

https://github.com/edub0/EXLAP

From a short data log I saw some neat things
```
Events Sent - Event Type
6448 "longitudinalAcceleration"> -
6448 "lateralAcceleration"> -
6448 "engineSpeed"> -
6448 "dayMilage_HP"> - ?
6448 "dayMilage"> - ?
6448 "chassisUndersteering"> -
6448 "chassisOversteering"> -
6448 "brakePressure"> -
6448 "absChargingAirPressure">
6447 "wheelAngle"> -
6447 "relAllWheelDriveTorque">
6445 "yawRate">
6445 "vehicleSpeed"> -
6443 "espTyreVelocities"> -
6442 "acceleratorPosition"> -
3237 "navPosition_HP">
650 "vehicleTime">
648 "ExAc_Resources"> -
621 "Nav_GeoPosition">
621 "Nav_CurrentPosition">
621 "Nav_Altitude">
276 "gearboxOilTemperature"> -
276 "espPassiveSensing"> -
276 "espLamp">
276 "currentGear"> -
```


Some of the data I want to look into more are

https://github.com/edub0/EXLAP/blob/...p_cmds.py#L841
def Sub_espTyreVelocities():
"""
Update Rate: 10Hz
Indicates individual wheel speed. Must be based on expected rollout. Unit of measure Kmph


<Dat timeStamp="2000-01-31T13:14:28.698000-7:00" url="espTyreVelocities">
<Abs name="frontLeft" val="95.2"/>
<Abs name="frontRight" val="95.2"/>
<Abs name="rearLeft" val="96.80000000000001"/>
<Abs name="rearRight" val="96.5"/>
</Dat>
"""


https://github.com/edub0/EXLAP/blob/...p_cmds.py#L999

def Sub_espPassiveSensing():
"""
Update Rate: As needed
Electronic Stability Control - unconfirmed
<Dat timeStamp="2000-01-31T13:23:48.381000-7:00" url="espPassiveSensing">
<Act name="isPassiveSensing" val="false"/>
"""

https://github.com/edub0/EXLAP/blob/..._cmds.py#L1062

def Sub_brakePressure():
"""
Update Rate: 10Hz
Brake pressure in psi


<Dat timeStamp="2000-01-31T13:14:02.088000-7:00" url="brakePressure">
<Abs name="brakePressure" val="17.7"/>
</Dat>
"""

https://github.com/edub0/EXLAP/blob/..._cmds.py#L1296

def Sub_vehicleSpeed():
"""
Update Rate: 10Hz
Vehicle speed as indicated in driver dashboard. unknown 'state' purpose.


<Dat timeStamp="2000-01-31T13:14:00.388000-7:00" url="vehicleSpeed">
<Abs name="speed" val="19"/>
<Enm name="unit" val="mph"/>
<Enm name="state" val="valid"/>
</Dat>
"""

https://github.com/edub0/EXLAP/blob/..._cmds.py#L1492

def Sub_chassisOversteering():
"""
Update Rate: 10Hz
Likely indicates oversteer condition based off wheel velocities


<Dat timeStamp="2000-01-31T13:23:38.280000-7:00" url="chassisOversteering">
<Rel name="oversteering" val="0"/>
</Dat>
"""


Ultimately, I would like to export this data for use with other data logging systems. While the most active data sources only seem to be 10Hz, that isn't awful to enhance other applications telemetry and without requiring a physical tap into the CANbus.
The following users liked this post:
malloc (06-04-2023)
Old 03-06-2023 | 09:21 PM
  #2  
Matt Romanowski's Avatar
Matt Romanowski
Rennlist Hoonigan
which cost no drachmas
Lifetime Rennlist
Member


Rennlist
Site Sponsor
 
Joined: Dec 2001
Posts: 12,741
Likes: 1,037
From: Manchester, NH
Default

Very cool! Thanks for posting this.
Old 03-06-2023 | 09:26 PM
  #3  
ProCoach's Avatar
ProCoach
Rennlist
Basic Site Sponsor
 
Joined: Jun 2008
Posts: 19,273
Likes: 3,473
From: Durham, NC and Virginia International Raceway
Default

Cool!
__________________
-Peter Krause
www.peterkrause.net
www.gofasternow.com
"Combining the Art and Science of Driving Fast!"
Specializing in Professional, Private Driver Performance Evaluation and Optimization
Consultation Available Remotely and at VIRginia International Raceway






















Old 03-19-2023 | 07:00 AM
  #4  
lordvonpineapple's Avatar
lordvonpineapple
Advanced
 
Joined: Jun 2020
Posts: 53
Likes: 27
From: Wollongong, NSW, AU
Default

Very interesting. What Porsche model years support EXLAP?
Old 03-19-2023 | 07:27 AM
  #5  
edub's Avatar
edub
Thread Starter
Pro
 
Joined: Feb 2021
Posts: 731
Likes: 352
Default

Originally Posted by lordvonpineapple
Very interesting. What Porsche model years support EXLAP?
I haven't seen a good list, but Porsche says 911 and 718's so I would assume at least 2020 cars and up.

Porsche posted about the track precision app as early as 2017 on Facebook, so maybe some cars from that era have it.

The earliest I have seen exlap presented was 2017, but that's version 1.3 and change log errata goes back two more versions. It could be in earlier cars maybe?

Last edited by edub; 03-19-2023 at 07:28 AM.
Old 05-26-2023 | 10:25 AM
  #6  
MaddGTS's Avatar
MaddGTS
Intermediate
 
Joined: Jan 2022
Posts: 38
Likes: 9
Default

Thanks, this is fascinating.

Is the prerequisite that the computer running the python script is connected to the car's in-car wifi hotspot?

Will the script output the data to a csv file?
Old 05-26-2023 | 03:41 PM
  #7  
edub's Avatar
edub
Thread Starter
Pro
 
Joined: Feb 2021
Posts: 731
Likes: 352
Default

Originally Posted by MaddGTS
Thanks, this is fascinating.

Is the prerequisite that the computer running the python script is connected to the car's in-car wifi hotspot?

Will the script output the data to a csv file?
Yes the hotspot needs to be up and running for the script to access the EXLAP API.

The script doesn't format output into CSV right now. It just puts a exlap.txt file into the same directory as where the script runs from, with output formatted as XML that the EXLAP API natively produces (https://github.com/edub0/EXLAP/blob/...LL170C4-L170C4)

ie.

<Dat timeStamp="2000-01-31T13:14:28.698000-7:00" url="espTyreVelocities">
<Abs name="frontLeft" val="95.2"/>
<Abs name="frontRight" val="95.2"/>
<Abs name="rearLeft" val="96.80000000000001"/>
<Abs name="rearRight" val="96.5"/>
</Dat>

Parsing the response is possible using the export and parse functions that dsgenerate.py created after reading the XML schema (https://github.com/edub0/EXLAP/blob/...xlapv2_subs.py).

Without understanding how the data was going to be used in the multitude of telemetry interpreters out there, extending logs to different formats wasn't in scope for this project. I understand its annoying not to have a turn key solution to get data natively, but this was done to demonstrate how to interface with the API and readily extensible.

There are some softwares which utilize EXLAP natively, incorporating it into a telemetry presentation and lap session format. CircuitStorm for example

Old 05-26-2023 | 04:12 PM
  #8  
MaddGTS's Avatar
MaddGTS
Intermediate
 
Joined: Jan 2022
Posts: 38
Likes: 9
Default

That's fine, as long as the data is output in a human readable format in a file, that's perfect.

Can you share the command line to run this and would the "password" be the same or do I need to do something unique to authenticate to my 911?
Old 05-26-2023 | 04:33 PM
  #9  
edub's Avatar
edub
Thread Starter
Pro
 
Joined: Feb 2021
Posts: 731
Likes: 352
Default

Originally Posted by MaddGTS
That's fine, as long as the data is output in a human readable format in a file, that's perfect.

Can you share the command line to run this and would the "password" be the same or do I need to do something unique to authenticate to my 911?
I would like to help but this project currently is more like a 'must be this tall to ride' in that, understanding the static functions and requirements of the script are a prerequisite for using it. I'm not saying you can't use it, but it would be a unpleasant experience based on the questions.

You'll need to check if your car has the same subnet as the static IP found in the script, create a creds.py file with (password = xxxx and user = xxxx) in it and store that in the path for the script to import. I can't publish any credentials for the project either which limits the scripts utility to simply checking if EXLAP is available and responding.

A raw data feed of 10Hz sources would also be a relatively big haystack to parse manually. It really needs to be correlated into a timeline and presentation layer to analyze.

Sorry, this feels terrible saying but I can't support individual use cases for what is a very rough tool.

Check out https://www.petreldata.com/product/c...r-for-android/ - this gives 3 free laps per session and may capture something specific that you're interested in if your data logging needs are light. It also uses EXLAP as a data source.
Old 05-26-2023 | 05:55 PM
  #10  
MaddGTS's Avatar
MaddGTS
Intermediate
 
Joined: Jan 2022
Posts: 38
Likes: 9
Default

My question was not clear. I saw where to add the IP, that's not an issue.

My question was more about the user/pass, i wanted to know if you used the ones floating around in the web (e.g. user:RSE_3...) that authenticate to access the other signals or had another method.

Btw have you looked at the Android app EXLAP reader on GitHub: https://github.com/martoreto/aauto-vex-vag ?


Last edited by MaddGTS; 05-26-2023 at 06:11 PM.
Old 05-27-2023 | 12:39 AM
  #11  
edub's Avatar
edub
Thread Starter
Pro
 
Joined: Feb 2021
Posts: 731
Likes: 352
Default

I have seen that one https://github.com/martoreto/aauto-v...r.java#L63-L73

I don't see the known creds for Porsche in there, afaik the cleartext username PHP-D22200 wasn't on google. But if it shows up on google or some paste site then probably worth trying.
Old 05-30-2023 | 11:43 AM
  #12  
LiveToDrive's Avatar
LiveToDrive
Rennlist Member
 
Joined: May 2021
Posts: 58
Likes: 19
From: Florida
Default

I believe this data is available on 2015+ vehicles. I’m getting that data (at least some of it) from my 2016 GT4 using CircuitStorm software.
The following users liked this post:
edub (05-31-2023)
Old 06-01-2023 | 05:43 PM
  #13  
boxer-11's Avatar
boxer-11
Rennlist Member
 
Joined: Sep 2013
Posts: 451
Likes: 54
From: Olympia, WA
Default

Are there useful and/or interesting channel/signals with data here that cannot also be found in the VBO exported data from the Precision Track App??

In your original post, you mention wanting as a goal to use the data with other logging systems -- do you mean you want to examine data with other logging systems analysis apps (so i2pro, Circuit Tools, Race Studio 3, Atlas, etc)??

Depending on what you are trying to do and what you want to see by way of signals, the VBO format is already a documented text file that isn't that hard to morph into formats that some of these other software tools can ingest.
The following users liked this post:
edub (06-04-2023)
Old 06-01-2023 | 06:19 PM
  #14  
MaddGTS's Avatar
MaddGTS
Intermediate
 
Joined: Jan 2022
Posts: 38
Likes: 9
Default

This method exposes more signals, for example, I don't believe the Porsche Track app exposes gearbox oil temperature, individual wheel speed, torque split (AWD only), or yaw rate.

I can confirm that edub's code works on a 991.2.
The following 2 users liked this post by MaddGTS:
boxer-11 (06-01-2023), ProCoach (06-01-2023)
Old 06-01-2023 | 06:56 PM
  #15  
ProCoach's Avatar
ProCoach
Rennlist
Basic Site Sponsor
 
Joined: Jun 2008
Posts: 19,273
Likes: 3,473
From: Durham, NC and Virginia International Raceway
Default

Originally Posted by MaddGTS

I can confirm that edub's code works on a 991.2.
That's because the messaging is the same on the PT CAN.


Quick Reply: Demonstration of native data logging in Porsche via EXLAP



All times are GMT -3. The time now is 05:43 PM.