rusefi_documentation/Knio_carhack_Nissan.md

715 lines
12 KiB
Markdown

# knio/carhack Nissan 370Z CAN Data
Copy-paste of [https://github.com/Knio/carhack/blob/master/Cars/Nissan.markdown](https://github.com/Knio/carhack/blob/master/Cars/Nissan.markdown)
```md
Nissan 370Z CAN-BUS Data
========================
This file is for attempting to reverse engineer the CAN-BUS data
on a 2010 Nissan 370Z.
Data
----
Active IDs with power in ACC or ON:
002
160
180
182
1F9
215
216
245
280
284
285
292
2DE
342
351
354
355
358
35D
385
421
512
54C
551
580
5C5
60D
625
6E2
ID 002 - Unknown
----------------
interval 10ms
IGN ACC: no data
IGN ON:
(A, B, C, D, E)
* `A`, `B` - Steering wheel angle
* NOTE: `B` is the high-order bit
* `C` - Unknown - Goes up when steering (power steering under load)
* `D` - Unknown - Always 7
* `E` - Unknown - A strange permutation of 16 numbers
ID 160 - Unknown
----------------
interval 10ms
Related to engine load/fuel/something
IGN ON:
(50, 3, 32, 0, 8, 255, 192)
(61, 85, 217, 0, 8, 255, 224)
(61, 85, 220, 0, 8, 255, 224)
IGN ENG:
(A, B, C, D, E, F, G)
* `A` - Unknown - Sensor data.
* `B` - Unknown - Bitfield.
* `C` - Unknown - Sensor data. Related to throttle position
* `D` - Unknown - Sensor data. typically 0.
* `E` - Unknown - Bitfield. 8, or 224 - G
* `F` - Unknown - Sensor data. typically 255. related to `E` and `F`
* `G` - Unknown - Bitfield. related to `E`. typically 224
`B`, `E`, `G` all change values when first acellerating
ID 180 -- Unknown
-----------------
Related to throttle/fuel system.
When IGN in ACC: no data
When IGN in ON:
Sends once:
(0, 0, 50, 3, 32, 0, 1, 0)
Sometimes:
(0, 0, 93, 147, 213, 0, 50, 16)
(0, 0, 93, 179, 213, 0, 51, 16)
Sends every 10ms:
(0, 0, 93, 195, 213, 0, X, 16)
where X counts up from 48 to 63 and repeats
(A, B, C, D, E, F, G, H)
* `A`, `B` - Engine RPM.
* Same as `1F9` `C`,`D`
* `C` - Unknown - Sensor data.
* `D` - Unknown - Bitfield.
* `E` - Unknown - Sensor data.
* `F` - Throttle pedal postion, % `(F/255 * 100)`
* `G` - Unknown - Sensor / Bitfield.
* `H` - Bitfield
* `H1` - Unknown
* `H2` - 0
* `H3` - Unknown
* `H4` - 0
* `H5` - Unknown
* `H6` - 0
* `H7` - 0
ID 182 - Unknown
----------------
Similar to ID 180.
When IGN in ACC: no data
When IGN in ON:
Sends every 10ms:
(0, 0, 0, 0, 0, F, 0, 245)
`F` counts up from 32 to 47 and repeats
* `A` - 0
* `B` - Bitfield
* `B1` - Unknown - High when `580` `A`,`B` is 0.
* `B2-B7` - 0
* `C` - 0
* `D` - 0
* `E` - Unknown
* `F` - Unknown
* `G` - Unknown
* `H` - Unknown - higher when engine accelerating, cuts out when lifting
ID 1F9 - Unknown
----------------
When ignition goes from ACC to ON:
(0, 0, 0, 0, 0, 0, 0, 128) - (repeat every 10ms)
ON:
* `C`, `D` - Engine RPM
(21, 74) = idle
ID 6E2 - Unknown
----------------
Sends every 100ms:
(0, 0, 120)
(0, 0, 121)
(0, 0, 122)
ID 215 - Unknown
----------------
Sends every 20ms:
(255, 240, 255, 0, 255, 255)
* `B`
* 240 - AC LED off
* 248 - AC LED on
ID 216 - Unknown
----------------
20ms interval
When IGN in ACC:
(64, 36) - (repeat)
IGN ON:
(166, 100)
* `A`
* 100 - CLutch engaged
* 108 - CLutch *fully* pressed
IGN ACC -> ON:
(65, 36)
(65, 36)
(65, 36)
(65, 36)
(64, 100)
(66, 100) (repeat)
ID 245 - Unknown
----------------
20ms interval
When IGN ON, repeat:
(255, 224, 0, 24, 0, 0, 255, 224)
(255, 224, 0, 24, 0, 0, 255, 225)
(255, 224, 0, 24, 0, 0, 255, 226)
(255, 224, 0, 24, 0, 0, 255, 227)
ID 280 - Unknown
----------------
20ms interval
When IGN ACC:
(1, 255, 192, 0, 0, 0, 0, 0) - (repeat)
IGN ACC -> ON:
(1, 255, 192, 0, 0, 0, 162, 64)
IGN ON:
(1, X, 192, 0, 0, 0, Y, 64)
* `X` - varies randomly from 13 to 17
* `Y` - varies randomly from 154 to 161
* E, F - vehicle speed
ID 284 - Unknown
----------------
20ms interval
IGN ACC: no data
IGN ON:
(0, 0, 0, 0, 0, 0, X, Y)
* `X` - counts up from 0 to 255
* `Y` - counts up from 0 to 255, +134 offset from `X`
ID 285 - Unknown
----------------
Same as ID 284. Offset is +135 this time
ID 292 - Unknown
----------------
20ms interval
IGN ACC: no data
IGN ACC -> ON:
(255, 255, 255, 255, 255, 254, 255, 0)
for 3 seconds
IGN ON:
(255, 248, X, 128, 15, 254, 0, 0)
* `X` - varies from 60 - 71
ID 2DE - Unknown
----------------
10ms interval
(0, 0, 128, 5, 240, 0, X, 242)
* `X`
* 6 when IGN ACC
* 255 for 20s after ACC -> ON
* 6 again after
ID 342 - Unknown
----------------
IGN ACC -> ON:
(3, 35, 162, 246)
(3, 44, 255, 255)
ID 351 - Unknown
----------------
interval 110ms
IGN ACC:
(0, 0, 0, 0, 0, 0, 64, 0)
IGN ON:
(0, 0, 0, 0, 0, 0, 64, 2)
(0, 0, 0, 0, 0, 64, 64, 2)
(0, 0, 0, 0, 0, 76, 64, 2) (repeat * 15)
(0, 0, 0, 0, 0, 12, 64, 2) (repeat)
* `H` - Clutch pedal
* 2 - Engaged
* 6 - *fully* pressed
ID 354 - Unknown
----------------
interval 45ms
IGN ACC: no data
IGN ACC -> ON:
(0, 0, 0, 0, 42, 0, 4, 0)
(0, 0, 0, 0, 42, 8, 4, 0)
(0, 0, 0, 0, 42, 16, 4, 0)
(0, 0, 0, 0, 42, 24, 4, 0)
(repeat all)
for 3s
IGN ON:
(0, 0, 0, 0, 0, 0, 4, 0)
(0, 0, 0, 0, 0, 8, 4, 0)
(0, 0, 0, 0, 0, 16, 4, 0)
(0, 0, 0, 0, 0, 24, 4, 0)
(repeat all)
* `E` - TCS Status
* 0 - On
* 64 - Off
* `G`
* 4 - brake off
* 20 - brake pedal pressed (little bit)
* `A`,`B` - Speed
ID 355 - Unknown
----------------
interval 45ms
IGN ACC:
(0, 0, 255, 255, 32, 0, 96)
IGN ON:
(0, 0, 0, 0, 32, 0, 96)
A,B - Speed
C,D - Speed
ID 358 - Unknown
----------------
interval 110ms
IGN ACC:
(0, 10, 0, 0, 0, 0, 0, 0)
IGN ACC -> ON:
(0, 10, 0, 32, 0, 0, 0, 0)
(4, 10, 0, 32, 0, 0, 0, 0)
(4, 10, 0, 32, 0, 0, 0, 0)
(4, 10, 0, 32, 128, 0, 0, 0) (* 10)
IGN ON:
(4, 10, 0, 32, 0, 0, 0, 0)
ID 35D - Unknown
----------------
interval 110ms
IGN ACC:
(0, 3, 0, 0, 0, 0, 0, 0)
IGN ON:
(128, 3, 0, 0, 0, 0, 0, 0)
* `C`
* 0
* 64 - wiper pulse
* 192 - wiper 1 pulse (up)
* 192 - continuous wiper
* 224 - fast continuous wiper
* `E`
* 16 - car stopped
* 64 - car moving
* ?? - brake pressed
ID 385 - Unknown
----------------
interval 110ms
IGN ACC & ON
(4, 0, 0, 0, 0, 0, 0)
ID 421 - 6MT Gear Shift Position Sensor
---------------------------------------
interval 55ms
IGN ACC -> ON
(128, 1)
IGN ON:
(X, 65)
* `X` Gear shift position
* 24 - Neutral
* 128 - First
* 136 - Second
* 144 - Third
* 152 - Fourth
* 160 - Fifth
* 168 - Sixth
* 16 - Reverse
ID 512 - Unknown
----------------
IGN ACC -> ON:
(3, 32, 42, 88)
(3, 44, 255, 255)
ID 54C - Unknown
----------------
interval 110ms
IGN ACC: no data
IGN ON:
(X, 99, 192, 0, 0, 128, 4, 8)
* `X` - 157 or 158
ID 551 - Unknown
----------------
interval 110ms
IGN ACC: no data
IGN ON:
(A, B, C, D, E, F, G, H)
* `A` - Sensor data - Temp?
* Starts at ~60, slowly rises to ~125
* `B` - Counts up from 0 to 255 (only when engine running)
* Counts faster at higher RPMs
* `C` - `0x00` / `0` always
* `D` - Bitfield.
* `0xA0` / `160` - Engine off, ACC?
* `0x20` / `32` - Engine turning on (500ms)
* `0x00` / `0` - Engine turning on (2500ms)
* `0x80` / 128` - Engine running
* `0x00` / `0` - Engine shutting down (2500ms)
* `0x20` / `32` - Engine off
* `E`
* Cruise control set point (Kph), cruise control active
* `255` - Cruise control master off
* `254` - Cruise control master on, cruise control disengaged
* `F` - Cruise control status
* `0x02` / `2` - Cruise control master off
* `0x62` / `82` - Cruise control master on
* `0x42` / `66` - Cruise control engaged
* No other observed values
* `F1` / `0x01` - `0
* `F2` / `0x02` - `1`
* `F3` / `0x04` - `0`
* `F4` / `0x08` - `0`
* `F5` / `0x10` - Cruise control active(`0`) / disengaged and master switch on(`1`)
* `F6` / `0x20` - `0`
* `F7` / `0x40` - Cruise control master switch on(`1`) / off(`0`)
* `F8` / `0x80` - `0`
* `G` - `0x80` / `128` always
* `H` - `0xFF` / `255` always
ID 580 - Unknown
----------------
interval 110ms
IGN ACC: no data
IGN ACC -> ON
(0, 0, 64, 0, 70)
IGN ON:
(0, 0, 64, 8, 70)
(0, 0, 64, 10, 70)
(0, 0, 64, 12, 70)
(0, 0, 64, 14, 70)
* `A, B` - Engine RPM
* (0, 130) = idle (~600rpm)
* `C` - `0x40` / `64` always
* `D` - Unknown. Sensor - jumpy
* ~150 to ~200
* `E` - Sensor data - Temp?
* Slowly rises from ~60 to ~110.
ID 5C5 - Unknown
----------------
interval 110ms
IGN ACC:
(128, 0, 76, 156, 0, 12, 0, 127)
IGN ON:
(68, 0, 76, 156, 0, 12, 0, 127)
* `A` - Parking Brake
* 68 - On
* 64 - Off
* 128 - Engine off & parking brake on
* No other observed values
* `A1` / `0x01`
* `A2` / `0x02` - Parking brake indicator on(`1`) / off(`0`)
* `A3` / `0x04`
* `A4` / `0x08`
* `A5` / `0x10`
* `A6` / `0x30`
* `A7` / `0x40` - `1` Always
* `A8` / `0x80` - Engine off(`1`) / on(`0`) (not set when ACC)
* `B` - `0` always
* `C` - `100` always
* `D` - Sensor data - Unknown
* 96 to 100, very slowly increasing
* `E` - `0` always
* `F` - `12` always
* `G` - `0` always
* `H` - `127` always
ID 60D - Body Control Module
----------------------------
interval 110ms
length: 8
Active with IGN ACC, ON
Sample:
(0, 6, 8, 42, 0, 0, 0, 0)
* `A` - Body Status
* `A0` - 0
* `A1` - Headlights on(1)
* `A2` - Running lights on(1)
* `A3`
* `1` 6000ms after engine turns on
* `0` 1500ms after engine turns off
* `A4` - Driver door open(1)
* `A5` - Passenger door open(1)
* `A6` - 0
* `A7` - 0
* `B` - Turn Signal Status
* `B0` - 0
* `B1`
* 1 ACC(ON?) / IGN
* 0 OFF & for 1000ms when engine starting
* `B2`
* 1 ACC(ON?) / IGN
* 0 OFF
* `B3` - 0
* `B4` - 0
* `B5` - Left turn signal active(1)
* `B6` - Right turn signal active(1)
* `B7` - 0
* `C` - Lock Status
* `C0` - 0
* `C1` - 0
* `C2` - 0
* `C3` - Driver door locked(1)
* `C4` - Other locked(1)
* `C5` - 0
* `C6` - 0
* `C7` - 0
* `D` - 0
* Pulses 42 when IGN ACC->ON
* `E` - `0` always
* `F` - `0` always
* `G` - `0` always
* `H` - `0` always
ID 625 - Body Control Module
----------------------------
Similar to ID 60D
IGN ACC:
(2, 0, 255, 14, 32, 0)
IGN ACC -> ON:
(2, 0, 255, 13, 32, 0)
IGN ON:
(A, B, 255, 157, 32, 0)
* `A` - Climate Control
* `A0` - Rear defrost LED on(1)
* 2 - Idle
* 4, 6, 8, 10 - Wipers active(?)
* `B` - Body
* 0 - accelerating hard?
* 128 - all other times
* Following seems wrong:
* `A0` - 0
* `A1` - 0
* `A2` - 0
* `A3` - 0
* `A4` - Hi-beams on(1)
* `A5` - Headlights on(1)
* `A6` - Running lights on(1)
* `A7` - AC LED on(1)
* `C` - `255` always
* `D` - Unknown bitfield
* 157 - ACC(ON?)
* 29 - 1500ms after engine start
* 13 - engine off
* `E` - Unknown bitfield
ID 6E2 - Unknown
----------------
interval 110ms
IGN ACC: no data
IGN ON:
(0, 0, 120)
(0, 0, 121)
(0, 0, 122)
(0, 0, 123)
IGN ACC -> ON Sequence
----------------
20121007.164633.983 ID:216
20121007.164634.086 ID:280 Flags:0 Data: (1, 255, 192, 0, 0, 0, 162, 64)
20121007.164634.151 ID:1F9
20121007.164634.151 ID:280 Flags:0 Data: (1, 14, 192, 0, 0, 0, 161, 64)
20121007.164634.174 ID:280 Flags:0 Data: (1, 16, 192, 0, 0, 0, 156, 64)
20121007.164634.194 ID:280 Flags:0 Data: (1, 14, 192, 0, 0, 0, 158, 64)
20121007.164634.213 ID:245
20121007.164634.217 ID:280 Flags:0 Data: (1, 13, 192, 0, 0, 0, 159, 64)
20121007.164634.262 ID:512 Flags:0 Data: (3, 32, 42, 88)
20121007.164634.305 ID:512 Flags:0 Data: (3, 44, 255, 255)
----
20121008.191328.656 ID:60D Flags:0 Data: (6, 6, 0, 42, 0, 0, 0, 0)
20121008.191328.708 ID:5C5 Flags:0 Data: (68, 0, 76, 161, 0, 12, 0, 127)
20121008.191519.726 ID:180 Flags:0 Data: (4, 126, 93, 195, 213, 0, 63, 21)
20121008.191519.904 ID:580 Flags:0 Data: (0, 250, 64, 152, 69)
20121008.191520.016 ID:580 Flags:0 Data: (1, 8, 64, 154, 69)
20121008.191520.126 ID:580 Flags:0 Data: (1, 58, 64, 156, 69)
20121008.191648.293 Stop
```