Notices

Demonstration of native data logging in Porsche via EXLAP

Thread Tools
 
Search this Thread
 
Old 03-06-2023, 08:54 PM
  #1  
edub
Pro
Thread Starter
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 723
Received 347 Likes on 191 Posts
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
Rennlist Hoonigan
which cost no drachmas
Lifetime Rennlist
Member


Rennlist
Site Sponsor
 
Matt Romanowski's Avatar
 
Join Date: Dec 2001
Location: Manchester, NH
Posts: 12,640
Received 967 Likes on 581 Posts
Default

Very cool! Thanks for posting this.
Old 03-06-2023, 09:26 PM
  #3  
ProCoach
Rennlist
Basic Site Sponsor
 
ProCoach's Avatar
 
Join Date: Jun 2008
Location: Durham, NC and Virginia International Raceway
Posts: 19,097
Received 3,270 Likes on 1,865 Posts
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
Advanced
 
lordvonpineapple's Avatar
 
Join Date: Jun 2020
Location: Wollongong, NSW, AU
Posts: 53
Received 27 Likes on 17 Posts
Default

Very interesting. What Porsche model years support EXLAP?
Old 03-19-2023, 07:27 AM
  #5  
edub
Pro
Thread Starter
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 723
Received 347 Likes on 191 Posts
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
Intermediate
 
MaddGTS's Avatar
 
Join Date: Jan 2022
Posts: 38
Received 9 Likes on 8 Posts
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
Pro
Thread Starter
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 723
Received 347 Likes on 191 Posts
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
Intermediate
 
MaddGTS's Avatar
 
Join Date: Jan 2022
Posts: 38
Received 9 Likes on 8 Posts
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
Pro
Thread Starter
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 723
Received 347 Likes on 191 Posts
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
Intermediate
 
MaddGTS's Avatar
 
Join Date: Jan 2022
Posts: 38
Received 9 Likes on 8 Posts
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
Pro
Thread Starter
 
edub's Avatar
 
Join Date: Feb 2021
Posts: 723
Received 347 Likes on 191 Posts
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
Rennlist Member
 
LiveToDrive's Avatar
 
Join Date: May 2021
Location: Florida
Posts: 58
Received 19 Likes on 9 Posts
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
Rennlist Member
 
boxer-11's Avatar
 
Join Date: Sep 2013
Location: Olympia, WA
Posts: 451
Received 54 Likes on 37 Posts
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
Intermediate
 
MaddGTS's Avatar
 
Join Date: Jan 2022
Posts: 38
Received 9 Likes on 8 Posts
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
Rennlist
Basic Site Sponsor
 
ProCoach's Avatar
 
Join Date: Jun 2008
Location: Durham, NC and Virginia International Raceway
Posts: 19,097
Received 3,270 Likes on 1,865 Posts
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 02:40 PM.