rusefi_documentation/Knio_carhack_Nissan.md

12 KiB

knio/carhack Nissan 370Z CAN Data

Copy-paste of https://github.com/Knio/carhack/blob/master/Cars/Nissan.markdown

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