Difference between revisions of "Holden:Instrument Cluster"
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
== VT/VX/VY/VZ Commodores == | == VT/VX/VY/VZ Commodores == | ||
+ | |||
+ | === Unlock Procedure === | ||
+ | |||
+ | Before any configuration data can be read or written, the cluster must be in an "unlocked" state. This is achieved using a challenge-response authentication mechanism (also known as a seed/key pair). A seed can be requested from the cluster by issuing a Mode <code>11</code> request, followed by table number <code>00</code>. The cluster will respond with Mode <code>11</code> and two bytes that form the seed. The key value is calculated and sent as a write to table <code>01</code> in Mode <code>11</code>. For details on calculating key values, see [[GM:Seed/Key|GM Seed/Key]]. The tables below illustrate the unlocking procedure. | ||
+ | |||
+ | Seed request | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Length (bytes) !! Field !! Value !! Notes | ||
+ | |- | ||
+ | | align="center" | 1 || ID || align="center" | <code>F2</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Length || align="center" | <code>57</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Mode || align="center" | <code>11</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Table || align="center" | <code>00</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Checksum || align="center" | <code>A6</code> || | ||
+ | |} | ||
+ | |||
+ | Seed response | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Length (bytes) !! Field !! Value !! Notes | ||
+ | |- | ||
+ | | align="center" | 1 || ID || align="center" | <code>F2</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Length || align="center" | <code>59</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Mode || align="center" | <code>11</code> || | ||
+ | |- | ||
+ | | align="center" | 2 || Seed || align="center" | ''S'' || 16-bit Seed Value | ||
+ | |- | ||
+ | | align="center" | 1 || Checksum || align="center" | ''c'' || | ||
+ | |} | ||
+ | |||
+ | Key transmission | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Length (bytes) !! Field !! Value !! Notes | ||
+ | |- | ||
+ | | align="center" | 1 || ID || align="center" | <code>F2</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Length || align="center" | <code>59</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Mode || align="center" | <code>11</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Table || align="center" | <code>01</code> || | ||
+ | |- | ||
+ | | align="center" | 2 || Key || align="center" | ''K'' || 16-bit Key Value | ||
+ | |- | ||
+ | | align="center" | 1 || Checksum || align="center" | ''c'' || | ||
+ | |} | ||
+ | |||
+ | Key response | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Length (bytes) !! Field !! Value !! Notes | ||
+ | |- | ||
+ | | align="center" | 1 || ID || align="center" | <code>F2</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Length || align="center" | <code>58</code> || | ||
+ | |- | ||
+ | | align="center" | 1 || Mode || align="center" | <code>11</code> || | ||
+ | |- | ||
+ | | align="center" | 2 || Status || || Equals key ''K'' on successful unlock, <code>FFFF</code> on failure. | ||
+ | |- | ||
+ | | align="center" | 1 || Checksum || align="center" | <code>F8</code> || | ||
+ | |} | ||
=== Configuration Tables === | === Configuration Tables === | ||
Line 10: | Line 80: | ||
! Table !! Length !! Type !! Description | ! Table !! Length !! Type !! Description | ||
|- | |- | ||
− | | style="text-align:center;" | <code>01</code> || style="text-align:center;" | <code>2</code> || style="text-align:center;" | <code>u16</code> || Speedometer Pulses | + | | style="text-align:center;" | <code>01</code> || style="text-align:center;" | <code>2</code> || style="text-align:center;" | <code>u16</code> || Speedometer Pulses |
|- | |- | ||
| style="text-align:center;" | <code>50</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Police Mode | | style="text-align:center;" | <code>50</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Police Mode | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>55</code> || style="text-align:center;" | <code>4</code> || style="text-align:center;" | <code>u32</code> || Odometer reading at the time of programming (set by scan tool) | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>66</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | <code>u8</code> || SRS Configuration (see [[#SRS Configuration|SRS Configuration]] section) | ||
|- | |- | ||
| style="text-align:center;" | <code>67</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Show Distance To Go | | style="text-align:center;" | <code>67</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Show Distance To Go | ||
Line 21: | Line 95: | ||
|- | |- | ||
| style="text-align:center;" | <code>7E</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Automatic Transmission | | style="text-align:center;" | <code>7E</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Automatic Transmission | ||
+ | |} | ||
+ | |||
+ | ==== SRS Configuration ==== | ||
+ | |||
+ | The instrument cluster's SRS configuration must match the configuration of the SRS module installed in the vehicle. A mismatched configuration will set a DTC in the SRS module itself (and trigger a warning on the cluster). The SRS DTC will need to be cleared separately after the cluster is properly configured. The table below lists the various SRS configurations, and their corresponding values. | ||
+ | |||
+ | {|class="wikitable" | ||
+ | ! Value !! Configuration | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>00</code> || None | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>01</code> || 2 Loop | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>02</code> || 3 Loop | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>03</code> || 4 Loop | ||
+ | |- | ||
+ | | style="text-align:center;" | <code>04</code> || 6 Loop | ||
|} | |} |
Latest revision as of 04:49, 10 May 2021
Overview
The instrument cluster is a self-contained module in the dash featuring the speedometer, tachometer, fuel gauge, temperature gauge and usually a trip computer retaining information such as the odometer.
VT/VX/VY/VZ Commodores
Unlock Procedure
Before any configuration data can be read or written, the cluster must be in an "unlocked" state. This is achieved using a challenge-response authentication mechanism (also known as a seed/key pair). A seed can be requested from the cluster by issuing a Mode 11
request, followed by table number 00
. The cluster will respond with Mode 11
and two bytes that form the seed. The key value is calculated and sent as a write to table 01
in Mode 11
. For details on calculating key values, see GM Seed/Key. The tables below illustrate the unlocking procedure.
Seed request
Length (bytes) | Field | Value | Notes |
---|---|---|---|
1 | ID | F2 |
|
1 | Length | 57 |
|
1 | Mode | 11 |
|
1 | Table | 00 |
|
1 | Checksum | A6 |
Seed response
Length (bytes) | Field | Value | Notes |
---|---|---|---|
1 | ID | F2 |
|
1 | Length | 59 |
|
1 | Mode | 11 |
|
2 | Seed | S | 16-bit Seed Value |
1 | Checksum | c |
Key transmission
Length (bytes) | Field | Value | Notes |
---|---|---|---|
1 | ID | F2 |
|
1 | Length | 59 |
|
1 | Mode | 11 |
|
1 | Table | 01 |
|
2 | Key | K | 16-bit Key Value |
1 | Checksum | c |
Key response
Length (bytes) | Field | Value | Notes |
---|---|---|---|
1 | ID | F2 |
|
1 | Length | 58 |
|
1 | Mode | 11 |
|
2 | Status | Equals key K on successful unlock, FFFF on failure.
| |
1 | Checksum | F8 |
Configuration Tables
Table | Length | Type | Description |
---|---|---|---|
01 |
2 |
u16 |
Speedometer Pulses |
50 |
1 |
Boolean | Police Mode |
55 |
4 |
u32 |
Odometer reading at the time of programming (set by scan tool) |
66 |
1 |
u8 |
SRS Configuration (see SRS Configuration section) |
67 |
1 |
Boolean | Show Distance To Go |
69 |
1 |
Boolean | Show radio status |
6D |
1 |
Boolean | Stopwatch |
7E |
1 |
Boolean | Automatic Transmission |
SRS Configuration
The instrument cluster's SRS configuration must match the configuration of the SRS module installed in the vehicle. A mismatched configuration will set a DTC in the SRS module itself (and trigger a warning on the cluster). The SRS DTC will need to be cleared separately after the cluster is properly configured. The table below lists the various SRS configurations, and their corresponding values.
Value | Configuration |
---|---|
00 |
None |
01 |
2 Loop |
02 |
3 Loop |
03 |
4 Loop |
04 |
6 Loop |