# 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 ```