RaceChronoDiyBleDevice/can_db/mazda_mx5_nc.md

238 lines
7.3 KiB
Markdown

# Mazda MX5 2005-2015 (third generation, including NC/NCFL/NCFLFL or MK3/MK3.5/MK3.75)
Here is information on some of the CAN IDs that you're most likely to use with
RaceChrono and equations to get the right scale, etc.
Please note there is still much work in progress, any contributions are welcome.
## CAN ID 0x081
Update frequency: 100 times per second.
`0x081` contain data related to steering angle. This CAN ID is available only in
cars with DSC module, so all cars from 2007 onwards.
Only 4 bytes long.
Byte | Meaning
---- | -------
0 | unidentified
1 | on/off (EF/6F or 11101111/01101111)
2 & 3| signed values for the steering angle
Channel name | Equation | Notes
------------ | -------- | -----
Steering angle | `bytesToInt(raw, 2, 2)` | positive values are from centered position (0) to right, negative otherwise
## CAN ID 0x085
Update frequency: 100 times per second.
`0x085` contain data related to braking. This CAN ID is available only in
cars with DSC module, so all cars from 2007 onwards.
Byte | Meaning
---- | -------
0 & 1 | together with byte 1 represent the pressure of the braking system
2 | brake siwtch ON/OFF, information contained in bit 0 (MSB, from left)
3 | Not changing
4 | Not changing
5 | Not changing
6 | Not changing
7 | Not changing
Channel name | Equation | Notes
------------ | -------- | -----
Brake pressure | `(3.4518689053*bytesToInt(raw, 0, 2)-327.27)/1000.00` | multipliers are obtained from data from Leisurehound user on miata.net, may be wrong. Unit is kPa
Brake percentage | `min(0.2*(bytesToInt(raw, 0, 2)-102),100)` | this is an alternative to get brake percentage. When not pressed the value is 102, after braking and releasing it goes briefly down to 99 so you may see slightly negative percentage.
Digital | `bitsToUint(raw,17,1)/2` | 0-1 value
## CAN ID 0x090
Update frequency: 100 times per second.
`0x090` WIP. Probably related to accelerations. This CAN ID is available only in
cars with DSC module, so all cars from 2007 onwards.
Byte | Meaning
---- | -------
0 | WIP
1 | WIP
2 | WIP
3 | WIP
4 | WIP
5 | WIP
6 | WIP
7 | WIP
Channel name | Equation | Notes
------------ | -------- | -----
... | ... | ...
## CAN ID 0x200
Update frequency: 100 times per second.
`0x200` WIP. Probably related to torque. Byte 7 contain
Throttle Valve Position
Byte | Meaning
---- | -------
0 | WIP
1 | WIP
2 | WIP
3 | WIP
4 | WIP
5 | WIP
6 | WIP
7 | Throttle Valve Position (%)
Channel name | Equation | Notes
------------ | -------- | -----
Throttle Position | `bytestouint(raw,7,1)*100/255.00` | Scale may need adjustment, doesn't take into account the offset for idle. Same value available in CAN ID 0x215 byte 6
## CAN ID 0x201
Update frequency: 100 times per second.
`0x201` This CAN ID is related to engine speed, vehicle speed
and accelerator position.
Byte | Meaning
---- | -------
0 | With byte 1 represent engine speed
1 | With byte 0 represent engine speed
2 & 3| WIP: follows RPM
4 & 5 | represent vehicle speed
6 | Accelerator pedal position (%)
7 | Always FF
Channel name | Equation | Notes
------------ | -------- | -----
Engine RPM | `bytestouint(raw,0,2)/4.00` |
Speed | `((bytestoint(raw,4,2)/100.00)-100)/3.6` | Raw speed data is given in km/h with a 100 km/h offset. The "3.6" at the end of the equation is needed to switch to m/s that is the unit used internally for calculation by RaceChrono. In the calculation RaceChrono will then multiply automatically for the correct value to transform the m/s to your choice of units (i.e. km/h or mph).
Accelerator Position | `bytestoint(raw,6,1)*2.00` | This is a percentage, increments of 0.5%
## CAN ID 0x215
Update frequency: 100 times per second.
`0x215` WIP. Mostly related to fault codes but
byte 6 contain Throttle Valve Position
Byte | Meaning
---- | -------
0 | WIP
1 | WIP
2 | WIP
3 | WIP
4 | WIP
5 | WIP
6 | Throttle Valve Position (%)
7 | WIP
Channel name | Equation | Notes
------------ | -------- | -----
Throttle Position | `bytestouint(raw,6,1)*100/255.00` | Scale may need adjustment, doesn't take into account the offset for idle. Same value available in CAN ID 0x200 byte 7
## CAN ID 0x231
Update frequency: 40 times per second.
`0x231` Is related to transmission, probably has
more significative data for AT cars. On MT cars
only interesting bit is the clutch switch
Byte | Meaning
---- | -------
0 | Always FF (on MT)
1 | bit 7 (MSB, counting from left) clutch switch; bit 6 (MSB) may be related to neutral/in gear?
2 | Always FF (on MT)
3 | Always FF (on MT)
4 | Always 00 (on MT)
5 | Always 00 (on MT)
6 | Always 00 (on MT)
7 | Always 00 (on MT)
Channel name | Equation | Notes
------------ | -------- | -----
Digital | `(bitstouint(raw,15,1)-4)/2` | 0 - 1 value
## CAN ID 0x240
Update frequency: 10 times per second.
`0x240` Contains engine related data such as
cooling water temperature, air intake temperature
spark angle, calculated load, throttle valve position
only interesting bit is the clutch switch
Byte | Meaning
---- | -------
0 | Calculated Load (%)
1 | Engine Coolant Temperature (°C)
2 | WIP: seems related to ignition timing (deg)
3 | Throttle Valve Position (%)
4 | Intake Air Temperature (°C)
5 | Always 00
6 | Always 00
7 | Always 00 (faults?)
Channel name | Equation | Notes
------------ | -------- | -----
Percentage | `100*(bytestouint(raw,0,1)/255.00` | can't find Engine Load on RaceChrono list of channels
Coolant temperature | `bytestouint(raw,1,1)-40` | RaceChrono does calculation in °C then converts to your unit of choice. Same data availble in byte 0 of ID 420
Throttle position | `100*bytestouint(raw,1,1)/255` | Scale may need adjustment. This ID should refer to absolute opening value, i.e. taking into account the opening at idle. Still, the value at idle for my measurements seems too high (11%...)
Ignition advance
Intake temperature | `bytestouint(raw,4,1)-40` | RaceChrono does calculation in °C then converts to your unit of choice
## CAN ID 0x4b0
Update frequency: 100 times per second.
`0x4b0` is dedicated only to wheel speed representation
Byte | Meaning
---- | -------
0 & 1 | Front Left Wheel Speed
2 & 3 | Front Right Wheel Speed
4 & 5 | Rear Left Wheel Speed
6 & 7 | Rear Right Wheel Speed
Channel name | Equation | Notes
------------ | -------- | -----
Vehicle Speed Front Left | `((bytestoint(raw,0,2)/100.00)-100)/3.6` | Raw speed data is given in km/h with a 100 km/h offset. The "3.6" at the end of the equation is needed to switch to m/s that is the unit used internally for calculation by RaceChrono. In the calculation RaceChrono will then multiply automatically for the correct value to transform the m/s to your choice of units (i.e. km/h or mph).
Vehicle Speed Front Right | `((bytestoint(raw,2,2)/100.00)-100)/3.6` |
Vehicle Speed Rear Left | `((bytestoint(raw,4,2)/100.00)-100)/3.6` |
Vehicle Speed Rear Right | `((bytestoint(raw,6,2)/100.00)-100)/3.6` |
## Typical histogram of CAN IDs
Here's what the distribution of CAN IDs looks like in the CAN bus while idling
in a parking lot:
CAN ID (hex) | CAN ID (decimal) | Number of packets received over a 10 second period
---- | --- | ---
081 | 129 | 1000
085 | 133 | 1000
090 | 144 | 1000
200 | 512 | 1000
201 | 513 | 1000
204 | 516 | 500
211 | 529 | 1000
212 | 530 | 100
215 | 533 | 1000
21A | 538 | 500
231 | 561 | 400
240 | 576 | 100
39A | 922 | 100
420 | 1056 | 100
430 | 1072 | 100
4B0 | 1200 | 1000
4EC | 1260 | 400
4F0 | 1264 | 10
4F1 | 1265 | 10
4FF | 1279 | 100