Difference between revisions of "Holden:Instrument Cluster"

From Holden
Jump to navigation Jump to search
 
(3 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
 
|-
 
|-
| <code>01</code> || <code>2</code> || <code>u16</code> || Speedometer Pulses (u16)
+
| 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>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>69</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Show radio status
 +
|-
 +
| style="text-align:center;" | <code>6D</code> || style="text-align:center;" | <code>1</code> || style="text-align:center;" | Boolean || Stopwatch
 +
|-
 +
| 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
 
|-
 
|-
| <code>50</code> || <code>1</code> || Boolean || Police Mode
+
| style="text-align:center;" | <code>00</code> || None
 
|-
 
|-
| <code>67</code> || <code>1</code> || Boolean || Show Distance To Go
+
| style="text-align:center;" | <code>01</code> || 2 Loop
 
|-
 
|-
| <code>69</code> || <code>1</code> || Boolean || Show radio status
+
| style="text-align:center;" | <code>02</code> || 3 Loop
 
|-
 
|-
| <code>6D</code> || <code>1</code> || Boolean || Stopwatch
+
| style="text-align:center;" | <code>03</code> || 4 Loop
 
|-
 
|-
| <code>7E</code> || <code>1</code> || Boolean || Automatic Transmission
+
| 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