├── README.rst └── docs └── research.txt /README.rst: -------------------------------------------------------------------------------- 1 | :: 2 | 3 | ___ __ __ __ ___ 4 | |\/| | | /__` | | |__) | /__` |__| | | __ |\/| | |__ \ / 5 | | | | | .__/ \__/ |__) | .__/ | | | | | | | |___ \/ 6 | __ __ __ 7 | / ` /\ |\ | |__) | | /__` 8 | \__, /~~\ | \| |__) \__/ .__/ 9 | 10 | 11 | This project aims to document the OBD-II codes for Mitsubishi I-Miev 12 | electric vehicle. 13 | 14 | Conventions used in this document: 15 | 16 | - Message ID is always 3 hex characters 17 | - Data bytes are zero-indexed: D0, D1, etc 18 | 19 | OBD-II Traffic analysis 20 | ~~~~~~~~~~~~~~~~~~~~~~~ 21 | 22 | Periodically occurring PIDs: 23 | 24 | - 1000ms (1 fps): 25 | 01C [#note_testmode]_ 26 | - 200ms (5 fps): 27 | 568 [#note_testmode]_ 28 | - 100ms (10 fps): 29 | 101, 286, 298, 29A, 2F2, 374, 375, 384, 385, 389 [#note_testmode]_, 30 | 38A [#note_testmode]_, 3A4, 408, 412_, 695, 696, 697, 6FA, 75A, 75B 31 | - 50ms (20 fps): 32 | 38D, 564, 565, 5A1, 6D0, 6D1, 6D2, 6D3, 6D4, 6D5, 6D6, 6DA 33 | - 40ms (25 fps): 34 | 424, 6E1, 6E2, 6E3, 6E4 35 | - 20ms (50 fps): 36 | 119, 149, 156, 200, 208_, 210, 212, 215, 231_, 300, 308, 325, 346, 418 37 | - 10ms (100fps): 38 | 236_, 285, 288, 373 39 | 40 | .. [#note_testmode] Possibly only sent in debug mode. 41 | 42 | PID descriptions 43 | ~~~~~~~~~~~~~~~~ 44 | 45 | .. _208: 46 | 47 | 208 - Brake pedal 48 | ----------------- 49 | 50 | Break pedal sensor data is transmitted every 20ms. Data bits seem 51 | to be following: 52 | 53 | - D0: ``0x00`` (const?) 54 | - D1: ``0x20`` (const?) 55 | - D2-D3: pedal position, ``60:00`` is zero position, max seems to be around ``61:bf`` 56 | - D4: ``0xc0`` (const?) 57 | - D5: ``0x00`` (const?) 58 | - D6: ``0xc0`` (const?) 59 | - D7: ``0x00`` (const?) 60 | 61 | .. _231: 62 | 63 | 231 - Brake pedal switch sensor 64 | ------------------------------- 65 | 66 | - D0-D3: ``0x00`` (const?) 67 | - D4: ``0x00`` if brake is free, ``0x02`` if brake pedal is pressed 68 | - D5-D7: ``0x00`` (const?) 69 | 70 | .. _236: 71 | 72 | 236 - Steering wheel sensor 73 | --------------------------- 74 | 75 | Steering wheel sensor data is transmitted every 10ms. Data bits: 76 | 77 | - D0-D1: Steering wheel position with 0.5 degree accuracy, center point ``(0.0 degrees) = D0:0x10, D1:0x00``. ``(((D0 * 256) + D1) - 4096) / 2 = steering wheel position in degrees)``. Negative angle - right, positive angle left. 78 | - D2-D3: possibly represents rate of change, defaults to ``D2:0x10, D3:0x00`` when steering wheel is at rest. 79 | - D4: counter, but only high-nibble bits (4-7) are used, ``D4[0:3]=0`` 80 | - D5: ``0x00`` (const?) 81 | - D6: ``0x00`` (const?) 82 | - D7: TODO 83 | 84 | .. _412: 85 | 86 | 412 - Speed + Odometer value 87 | ---------------------------- 88 | 89 | Transmitted every 100ms. Data bits: 90 | 91 | - D0: ``0x7f`` (const?) 92 | - D1: speed in km/h 93 | - D2-D4: Odometer display in km. ``((((D2 * 256) + D3) * 256) + D4) = km/h`` 94 | - D5: ``0x00`` (const?) 95 | - D6: ``0x21`` (const?) 96 | - D7: ``0x06`` (const?) 97 | -------------------------------------------------------------------------------- /docs/research.txt: -------------------------------------------------------------------------------- 1 | Setting speedometer speed: (782, 783) (?) 2 | ----------------------------------------- 3 | 4 | * Send PID 782 with data (D4, D5 contain speed): 5 | D0=0x05, D1=0x30, D2=0x70, D3=0x07, D4=0x2a, D5=0x00, D6=0xff, D7=0xff 6 | D0=0x05, D1=0x30, D2=0x70, D3=0x07, D4=0x32, D5=0x00, D6=0xff, D7=0xff 7 | * Receive PID 783 with data (D4,D5 contain speed): 8 | D0=0x05, D1=0x70, D2=0x70, D3=0x07, D4=0x2a, D5=0x00, D6=0x00, D7=0x09 9 | D0=0x05, D1=0x70, D2=0x70, D3=0x07, D4=0x32, D5=0x00, D6=0x00, D7=0x09 10 | D0=0x05, D1=0x70, D2=0x70, D3=0x07, D4=0x5c, D5=0x00, D6=0x00, D7=0x09 11 | 12 | Setting various lights in HUD: (782, 783) (?) 13 | --------------------------------------------- 14 | 15 | * Send 16 | 000011111 17 | D0=0x07, D1=0x30, D2=0x77, D3=0x07, D4=0x00, D5=0x03, D6=0xe4, D7=0x02 18 | 010101010 19 | D0=0x07, D1=0x30, D2=0x77, D3=0x07, D4=0x12, D5=0x02, D6=0xa0, D7=0x00 20 | 101010101 21 | D0=0x07, D1=0x30, D2=0x77, D3=0x07, D4=0x09, D5=0x01, D6=0x44, D7=0x00 22 | 111100000 23 | D0=0x07, D1=0x30, D2=0x77, D3=0x07, D4=0x1b, D5=0x00, D6=0x00, D7=0x00 24 | 25 | * Recv 26 | 000011111 27 | D0=0x07, D1=0x70, D2=0x77, D3=0x07, D4=0x00, D5=0x03, D6=0xe4, D7=0x02 28 | 010101010 29 | D0=0x07, D1=0x70, D2=0x77, D3=0x07, D4=0x12, D5=0x02, D6=0xa0, D7=0x00 30 | 101010101 31 | D0=0x07, D1=0x70, D2=0x77, D3=0x07, D4=0x09, D5=0x01, D6=0x44, D7=0x00 32 | 111100000 33 | D0=0x07, D1=0x70, D2=0x77, D3=0x07, D4=0x1b, D5=0x00, D6=0x00, D7=0x00 34 | 35 | Setting HUD illumination (782, 783) (?) 36 | --------------------------------------- 37 | 38 | * Send (1, 2, 3, 4) 39 | D0=0x06, D1=0x30, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x01, D7=0xff 40 | D0=0x06, D1=0x30, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x02, D7=0xff 41 | D0=0x06, D1=0x30, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x03, D7=0xff 42 | D0=0x06, D1=0x30, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x04, D7=0xff 43 | 44 | * Recv (1, 2, 3, 4) 45 | D0=0x06, D1=0x70, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x01, D7=0x09 46 | D0=0x06, D1=0x70, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x02, D7=0x09 47 | D0=0x06, D1=0x70, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x03, D7=0x09 48 | D0=0x06, D1=0x70, D2=0x75, D3=0x07, D4=0x00, D5=0x00, D6=0x04, D7=0x09 49 | 50 | Meter position lamp (782, 783) (?) 51 | ---------------------------------- 52 | * Send 53 | D0=0x05, D1=0x30, D2=0x79, D3=0x07, D4=0x80, D5=0x00, D6=0xff, D7=0xff 54 | * Recv 55 | D0=0x05, D1=0x70, D2=0x79, D3=0x07, D4=0x80, D5=0x00, D6=0xe4, D7=0x02 56 | 57 | Meter service reminder (782, 783) (?) 58 | ------------------------------------- 59 | 60 | * Send 61 | D0=0x05, D1=0x30, D2=0x78, D3=0x07, D4=0x04, D5=0x00, D6=0xff, D7=0xff 62 | * Recv 63 | D0=0x05, D1=0x70, D2=0x78, D3=0x07, D4=0x04, D5=0x00, D6=0xe4, D7=0x02 64 | 65 | Meter KOS indicator (782, 783) (?) 66 | ---------------------------------- 67 | 68 | * Send 69 | D0=0x04, D1=0x30, D2=0x7d, D3=0x07, D4=0x80, D5=0xff, D6=0xff, D7=0xff 70 | * Recv 71 | D0=0x04, D1=0x70, D2=0x7d, D3=0x07, D4=0x80, D5=0x00, D6=0xe4, D7=0x02 72 | 73 | Power steering (796, 797) 74 | ------------------------- 75 | * Send 796? 76 | D0=0x04, D1=0x30, D2=0xa0, D3=0x07, D4=0x32, D5=0xff, D6=0xff, D7=0xff 77 | D0=0x03, D1=0x30, D2=0xa0, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 78 | D0=0x03, D1=0x30, D2=0xa0, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 79 | * Recv 797? 80 | D0=0x04, D1=0x70, D2=0xa0, D3=0x07, D4=0x32, D5=0x00, D6=0x00, D7=0x00 D0=0x04, D1=0x70, D2=0xa0, D3=0x01, D4=0xff, D5=0x00, D6=0x00, D7=0x00 81 | D0=0x04, D1=0x70, D2=0xa0, D3=0x01, D4=0xff, D5=0x00, D6=0x00, D7=0x00 82 | 83 | Reverse backlight (751, 752) 84 | ---------------------------- 85 | * Send 751? 86 | D0=0x04, D1=0x30, D2=0x17, D3=0x07, D4=0x01, D5=0xff, D6=0xff, D7=0xff 87 | D0=0x03, D1=0x30, D2=0x17, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 88 | D0=0x03, D1=0x30, D2=0x17, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 89 | D0=0x03, D1=0x30, D2=0x17, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 90 | * Recv 752 91 | D0=0x04, D1=0x70, D2=0x17, D3=0x07, D4=0x01, D5=0x00, D6=0x00, D7=0x00 D0=0x04, D1=0x70, D2=0x17, D3=0x01, D4=0xff, D5=0x00, D6=0x00, D7=0x00 92 | D0=0x04, D1=0x70, D2=0x17, D3=0x01, D4=0xff, D5=0x00, D6=0x00, D7=0x00 93 | D0=0x04, D1=0x70, D2=0x17, D3=0x01, D4=0xff, D5=0x00, D6=0x00, D7=0x00 94 | 95 | Cooling fan (771, 772): 96 | ----------------------- 97 | * Send 771? 98 | D0=0x04, D1=0x30, D2=0x13, D3=0x07, D4=0x03, D5=0xff, D6=0xff, D7=0xff 99 | D0=0x03, D1=0x30, D2=0x13, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 100 | D0=0x03, D1=0x30, D2=0x13, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 101 | * Recv 772? 102 | D0=0x04, D1=0x70, D2=0x13, D3=0x07, D4=0x03, D5=0xff, D6=0xff, D7=0xff 103 | D0=0x04, D1=0x70, D2=0x13, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 104 | D0=0x04, D1=0x70, D2=0x13, D3=0x01, D4=0xff, D5=0xff, D6=0xff, D7=0xff 105 | 106 | Gearbox positions (285): 107 | ------------------------ 108 | * RECV: 109 | 110 | - P: 07:d0:14:00:8e:fe:0c:10 111 | - R: 07:d0:14:00:8e:fe:0e:30 112 | - N: 07:d0:14:00:8e:fe:0c:10 113 | - D: 07:d0:14:00:8e:fe:0e:10 114 | - B: 07:d1:14:00:8e:fe:0e:10 115 | - C: 07:d2:14:00:8e:fe:0e:10 116 | 117 | When drive mode is enabled D1 can be d0 -> d9 118 | 119 | 210 - possible gas pedal - D3 120 | --------------------------------------------------------------------------------