Has anyone been successful in using RaceChrono Pro with a Tesla Model 3? I have installed an OBDII Interface and am using OBDLink LX. RaceChrono is connecting fine, now I would like to receive the channels for throttle position and brake pedal and RPM.
Can RaceChrono Pro autodetect these channels?
For the Torque App these channels are converted to Excel like
.Tesla Throttle Position,"Throttle", "0111","(A*100)/255","0","100","%","7e0","",""
.Tesla Brake Pedal Status,"Brake", "01AF","A","0","3","","7e0","",""
.Tesla RPM,"RPM","019B ","(A*256+B)","0","15000","RPM","7e0","",""
Any help appreciated!
Comments
These channels should work, but only the current beta version which is available for Android only. See FAQ how to join the beta group. The v6.0.11 doesn't have "OBD-II header" feature, so v6.1.0 or newer is needed.
Add these as new custom OBD-II channels under the Vehicle Profile in settings.
Let's take the throttle position for example (enter the values without quotes):
- Channel: "Accelerator position"
- PID: "0x0111" (It's in the 3rd column from your list)
- OBD-II header: "0x7e0" (8th column)
- Equation: "(A*100.0) / 255.0" or "(bytesToUint(raw, 0, 1) * 100.0) / 255.0" (4th column)
PIDs are OBD2 language commands to request certain data. Tesla does not speak it. We are just listening to whatever data passes by between the different modules. See if racechrono can get out of OBD2 mode and has a CANBUS mode, then it might work.
1) Make sure you have v6.1 or later (available from beta group)
2) Enable "Settings > Expert settings > Experimental devices"
3) Add a CAN-Bus reader from the "+ Add other device" button
5) Plug-in the OBDLink reader to your car, and turn on power to your car
6) Go to your Vehicle profile in RaceChrono settings
7) Enable the CAN-Bus "test mode"
8) Add new CAN-Bus channel
9) You should see the raw CAN-Bus data after entering a correct PID.
Let me know when you get this far. Then you'll need to figure out the equations.
I had to disable the OBDII reader first to allow OBDLink to be recognized as an additional device (I selected OBDLink LX/MX/ +Bluetooth (CAN-Bus) from the list). Now I have a connection with 0,2 kbits. Problem is just entering the PID is not enough to be able to save the channel, the field source data requires some input and I cannot select "use realtime data" (sorry, my app is in german, so not all field names might be translated correct to english)
It should need only Channel, PID, and equation. then it should let you save the new channel. Use ”raw” as the equation at first, without the quotes.
The editor has not been tested with the new readers at all so expect ot to be clunky. This is the reason its behind expert settings. But you might get around it by saving the channel with correct PID, and then restarting the test connection.
I will try to work on this again next week.
>> It should need only Channel, PID, and equation
Correct, my fault! I have defined 4 channels with raw as an equation. Question is now how to tell RCP the brake pedal is data3 and accelerator is data 7 on pid 0x118. The time frame is 10ms, the data 8 bytes.
>> I will try to work on this again next week
There is no urgency at this, racing season is over... ;-)
@Martin_snr
I believe I have the same table of reverse engineered CAN-Bus messages as you have.
So let's take a look at the brake pedal and accelerator, PID 0x118.
CAN ID: "0x118": This is same as the PID in RaceChrono channel editor. Just enter 0x118 there.
Time period: "10 ms": This tells you how often this message is transmitted. 10 ms translates to 100 Hz, 100 times a second. You can ignore this column.
Bytes: "8": This tells you how many bites are in the messages. You can ignore this column.
Data 3: "Brake Pedal u2 SB 19 1-BrakePress": This is the third data value (channel) within the messages within PID 0x118. The u2 tells you it is unsigned integer that is 2 bits long. SB 19 tells you it starts at bit 19. "1-BrakePress" probably means you will get value 1 when it's pressed. No idea about the possible values 2 and 3, but 0 is probably not pressed.
As probably only values 0 and 1 are useful, I would use "bitsToUint(raw, 20, 1)" to get the value, instead of "bitsToUint(raw, 19, 2)". If you want to scale that to % to be used as "Brake position (%)" in RaceChrono, you can do "bitsToUint(raw, 20, 1) * 100.0". Then you will get 0% when pedal is not depressed, and 100% when depressed.
Data 7: "Pedal Position % u8 SB 32 scale 0.4". We decode just like above, except for the scale. Start with "bitsToUint(raw, 32, 8)". It will probably give you values 0 when not depressed, and 255 when fully depressed as this is 8-bit value with range of 0-255. The scale 0.4 is not really exact, but is roughly equivalent with dividing with 2.55. So equation of "bitsToUint(raw, 32, 8) / 2.55" should give 0-100%.
Let me know how this works.
Also when trying to figure out the equations for other channels, please refer to https://racechrono.com/support/equations
Here's the spreadsheet in question:
https://docs.google.com/spreadsheets/d/1ijvNE4lU9Xoruvcg5AhUNLKr7xYyHcxa8YSkTxAERUw/edit#gid=0
Thats exactly the spreadsheet I am using - and hey, it works just like you described it!
I added the two equations from above and as a result got two working channels, one is acceleration between 0 and 100% and the other brake as 0 or 100%.
Thanks a lot and please tell all other Tesla drivers RCP is working for them!
Can you show the specific data please