Difference between revisions of "Holden:Instrument Cluster"
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 === |
Revision as of 04:42, 9 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 (u16) |
50 |
1 |
Boolean | Police Mode |
67 |
1 |
Boolean | Show Distance To Go |
69 |
1 |
Boolean | Show radio status |
6D |
1 |
Boolean | Stopwatch |
7E |
1 |
Boolean | Automatic Transmission |