Use monospace font for more equations

This commit is contained in:
Timur Iskhodzhanov 2020-09-09 00:06:47 -07:00
parent b434026a4c
commit 267a82a032
1 changed files with 34 additions and 33 deletions

View File

@ -17,13 +17,13 @@ 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.
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
@ -31,12 +31,12 @@ Update frequency: 50 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
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)
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
Combined acceleration | sqrt(pow2(bytesToIntLe(raw, 6, 1) * 0.2) + pow2(bytesToIntLe(raw, 7, 1) * 0.1)) |
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
Combined acceleration | `sqrt(pow2(bytesToIntLe(raw, 6, 1) * 0.2) + pow2(bytesToIntLe(raw, 7, 1) * 0.1))` |
## PID 0xD1
@ -44,8 +44,8 @@ Update frequency: 50 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
Speed | bytesToIntLe(raw, 0, 2) * 0.01569358787 | May want to check the multiplier against an external GPS device
Brake position | min(C / 0.7, 100) | The third byte is the pressure in the brake system, in Bars. The 0.7 divider seems to be a good value to get 100% at pressure slightly higher than those you're likely to use on the track for cars with no aero. You can use 0.8 or 0.9 if you see 100% too often.
Speed | `bytesToIntLe(raw, 0, 2) * 0.015694` | May want to check the multiplier against an external GPS device
Brake position | `min(C / 0.7, 100)` | The third byte is the pressure in the brake system, in Bars. The 0.7 divider seems to be a good value to get 100% at pressure slightly higher than those you're likely to use on the track for cars with no aero. You can use 0.8 or 0.9 if you see 100% too often.
## PID 0xD4
@ -53,10 +53,10 @@ Update frequency: 50 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
Wheel speed FL | bytesToIntLe(raw, 0, 2) * 0.01569358787 | Use same multiplier as for speed in 0xD1
Wheel speed FR | bytesToIntLe(raw, 2, 2) * 0.01569358787 | Use same multiplier as for speed in 0xD1
Wheel speed RL | bytesToIntLe(raw, 4, 2) * 0.01569358787 | Use same multiplier as for speed in 0xD1
Wheel speed RR | bytesToIntLe(raw, 6, 2) * 0.01569358787 | Use same multiplier as for speed in 0xD1
Wheel speed FL | `bytesToIntLe(raw, 0, 2) * 0.015694` | Use same multiplier as for speed in 0xD1
Wheel speed FR | `bytesToIntLe(raw, 2, 2) * 0.015694` | Use same multiplier as for speed in 0xD1
Wheel speed RL | `bytesToIntLe(raw, 4, 2) * 0.015694` | Use same multiplier as for speed in 0xD1
Wheel speed RR | `bytesToIntLe(raw, 6, 2) * 0.015694` | Use same multiplier as for speed in 0xD1
## PID 0x140
@ -64,11 +64,12 @@ Update frequency: 100 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
Accelerator position | A / 2.55
Clutch position | (B & 0x80) / 1.28 | On/off only
Engine RPM | C + (D & 63) * 256
Accelerator position | `A / 2.55`
Clutch position | `(B & 0x80) / 1.28` | On/off only
Engine RPM | `C + (D & 0x3f) * 256`
??? | `D & 0xc0`
??? | byte 4
Throttle position | F / 2.55 | Not tested
Throttle position | `F / 2.55` | Not tested
??? | bytes 6, 7
## PID 0x141
@ -77,12 +78,12 @@ Update frequency: 100 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
Accelerator pedal position? | bytesToIntLe(raw, 0, 2) | Follows `A` from `0x140` closely with ~9860 for 0% and ~11625 for 42%. Needs more testing.
Throttle position? | bytesToIntLe(raw, 2, 2) | Follows the accelerator pedal position with some smoothness, but is independent at idle revs, and when inching in traffic by modulating the clutch. Scale is unknown.
??? | bytesToIntLe(raw, 4, 2) | Goes up on acceleration, jumps down when coasting. Might be intake pressure, fuel pressure, etc.
Gear | (G & 0xF) * (1 - (min(G & 0xF, 7)) / 7) | It's basically just `G & 0xF` but neutral is reported as `7`, hence the complex math to turn it into a 0. The reverse gear is reported as `1`. The value can be wrong when the clutch pedal is depressed.
??? | G & 0xF0 | I saw values of 128, 160, 192 here.
??? | H | Equals to 16 when I lift off the accelerator, then turns to 8, then 0.
Accelerator pedal position? | `bytesToIntLe(raw, 0, 2)` | Follows `A` from `0x140` closely with ~9860 for 0% and ~11625 for 42%. Needs more testing.
Throttle position? | `bytesToIntLe(raw, 2, 2)` | Follows the accelerator pedal position with some smoothness, but is independent at idle revs, and when inching in traffic by modulating the clutch. Scale is unknown.
??? | `bytesToIntLe(raw, 4, 2)` | Goes up on acceleration, jumps down when coasting. Might be intake pressure, fuel pressure, etc.
Gear | `(G & 0xF) * (1 - (min(G & 0xF, 7)) / 7)` | It's basically just `G & 0xF` but neutral is reported as `7`, hence the complex math to turn it into a 0. The reverse gear is reported as `1`. The value can be wrong when the clutch pedal is depressed.
??? | `G & 0xF0` | I saw values of 128, 160, 192 here.
??? | `H` | Equals to 16 when I lift off the accelerator, then turns to 8, then 0.
## PID 0x360
@ -90,11 +91,11 @@ Update frequency: 20 times per second.
Channel name | Equation | Notes
------------ | -------- | -----
Engine oil temperature | C - 40
Coolant temperature | D - 40
Cruise control ON | (F & 16) / 16 | Means the mode is "On", but not necessarily "Set". Not tested much.
Cruise control set | (F & 32) / 32 | Not tested much.
Cruise control speed | H | In the same unit as the current speed display units? Not tested much.
Engine oil temperature | `C - 40`
Coolant temperature | `D - 40`
Cruise control ON | `(F & 16) / 16` | Means the mode is "On", but not necessarily "Set". Not tested much.
Cruise control set | `(F & 32) / 32` | Not tested much.
Cruise control speed | `H` | In the same unit as the current speed display units? Not tested much.
TODO: would be great to find how to read the ambient temperature, and maybe the
intake temperature.