Instrument Cluster

The instrument cluster shows speed, rpm, warnings and information. Learn analog vs digital clusters, signal sources over CAN, speedometer regulations (ECE R39), odometer and fuel-gauge filtering, telltales and warning priority (ISO 2575), graphics rendering and HMI design.

The cluster is the driver's primary information display: vehicle speed, engine/motor data, range, warnings and ADAS status. Modern clusters are full-digital TFT displays driven by graphics processors — but some rules haven't changed, like the speedometer must never under-read.

Cluster software receives signals over CAN/Ethernet, filters them for readability, prioritises warnings and renders graphics at 60 fps.

An analogy

The cluster is the car's face: it translates hundreds of internal signals into a calm, readable expression for the driver.

What the cluster shows

Speedometer, tachometer or power meter, odometer/trip, fuel or battery level, temperature, gear, range, telltales (warning lamps with standard ISO 2575 symbols and colours: red = danger, amber = caution, green/blue = info), and driver messages.

Signals and filtering

Most data arrives over CAN (vehicle speed from ABS, rpm from ECM). Raw signals jitter, so displays are filtered: fast for speed and rpm, very slow for fuel. Speedometers read a little high (never low); odometers must be accurate (≈ ±4 %).

Warnings and priority

Warnings are prioritised by severity; critical ones (brake failure, airbag, battery fault) must be visible and may include chimes. Telltales must work even if graphics fail — safety requirements often demand independent monitoring (e.g. ASIL-rated telltale rendering).

Digital clusters and HMI

Full-digital clusters use SoCs with GPUs, hypervisors separating safety-relevant and infotainment content, fast boot (< 2 s for telltales), and HMI frameworks (Qt, Kanzi). Head-up displays and AR overlays extend the concept; driver-distraction guidelines limit what may be shown.

Formulas

Worked example: Legal speedometer range

Given: True speed 100 km/h

Find: Allowed display range.

Answer: 100–114 km/h

Worked example: Tyre wear effect

Given: New tyre circumference 2.136 m; Worn tyre 2.074 m (−2.9 %); Cluster assumes new tyre

Find: Displayed error with worn tyres.

Answer: Over-reads by ≈ 3 % extra

Needle / fuel-gauge smoothing filter (C)

/* First-order low-pass filter; call every Ts seconds. */
typedef struct { float y; float alpha; } lpf_t;

float lpf_step(lpf_t *f, float x)
{
    f->y += f->alpha * (x - f->y);
    return f->y;
}

/* Speed display: apply positive tolerance, never under-read (ECE R39). */
float speed_display_kmh(float v_true_kmh)
{
    float v = v_true_kmh * 1.03f + 1.0f;   /* +3 % + 1 km/h calibration margin */
    return v;
}

/* Fuel gauge: very slow filter to hide sloshing (tau ≈ 30 s at Ts = 0.1 s). */
static lpf_t fuel = { .y = 0.0f, .alpha = 0.0033f };

Speedometers are calibrated slightly high to stay legal with tyre wear; fuel gauges are heavily filtered so sloshing doesn't move the needle.

Common mistakes

Applications

Key takeaways

Going further