From 32ad35a7596f4e769d80b1212c3ae5a55f00ee47 Mon Sep 17 00:00:00 2001 From: Timur Iskhodzhanov Date: Sat, 5 Sep 2020 20:28:31 -0700 Subject: [PATCH] Add info on 0x18, update the multiplier for Z rate or rotation --- can_db/ft86.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/can_db/ft86.md b/can_db/ft86.md index bf3afc7..c9c6092 100644 --- a/can_db/ft86.md +++ b/can_db/ft86.md @@ -3,14 +3,36 @@ Here is information on some of the PIDs that you're most likely to use with RaceChrono and equations to get the right scale, etc. +## PID 0x18 + +Update frequency: 100 times per second. + +`0x18` is a strange PID. Judging by the low PID number (which in CAN networks +implies higher priority) and the high update frequency, one would expect it to +have some important data, like data for ABS or ESC systems. But based on what is +currently known, it only has one the steering angle as a useful data channel. +The steering angle graphs are usually relatively smooth, and this data is also +available over `0xD0`, along with some much more important data, such as +accelerometers. + +Channel name | Equation | Notes +------------ | -------- | ----- +Steering angle | bytesToIntLe(raw, 0, 2) * 0.1 | Also available in 0xD0 +??? | `C` or bytesToIntLe(raw, 2, 1) | The value is 112 most of the time for me +??? | `D` or bytesToIntLe(raw, 3, 1) | 0–14 sawtooth +??? | `E` or bytesToIntLe(raw, 4, 1) | The value is 0 most of the time for me +??? | `F` or bytesToIntLe(raw, 5, 1) | The value is 0 most of the time for me +??? | `G` or bytesToIntLe(raw, 6, 1) | The value is 0 most of the time for me +??? | `H` or bytesToIntLe(raw, 7, 1) | Strange data channel. It changes in a strange way when the car turns. It also has a 0-14 sawtooth over some otherwise smooth curve. + ## PID 0xD0 Update frequency: 50 times per second. Channel name | Equation | Notes ------------ | -------- | ----- -Steering angle | bytesToIntLe(raw, 0, 2) * 0.1 | -Z rate of rotation | bytesToIntLe(raw, 2, 2) * -0.318309886 | The multiplier is 1/pi, but maybe should be 0.9 / pi +Steering angle | bytesToIntLe(raw, 0, 2) * 0.1 | Also available in 0x18 +Z rate of rotation | bytesToIntLe(raw, 2, 2) * -0.286478897 | The multiplier for º/sec appears to be ((90 / pi) * 100) ??? | bytes 4, 5 | Lateral acceleration | bytesToIntLe(raw, 6, 1) * 0.2 | Not 100% sure about the multiplier, but looks about right Longitudinal acceleration | bytesToIntLe(raw, 7, 1) * -0.1 | Not 100% sure about the multiplier, but looks about right