Add info on 0x18, update the multiplier for Z rate or rotation

This commit is contained in:
Timur Iskhodzhanov 2020-09-05 20:28:31 -07:00
parent 699bdd69ee
commit 32ad35a759
1 changed files with 24 additions and 2 deletions

View File

@ -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) | 014 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