KLR: Travel Assist

KLR (Kapazitives LenkRad – capacitive steering wheel) is a module that transmits the hands-on-steering-wheel status via the LIN bus. This module makes using ACC more convenient — you simply keep your hand on the steering wheel; before this “invention,” you had to slightly move the steering wheel to make the “take over control” message disappear. That is, now the car removes this message based on two events: 1 - data from KLR indicating that hands are on the wheel, 2 - if the steering wheel is moved. The standard time for the first message to appear is 10 seconds; at 15 seconds a red message appears and the Emergency Assist system procedure starts, attempting to wake the driver and, if the driver does not respond, stopping the car (see video).

A bit about how this data is transmitted and what it looks like

The LIN bus (Local Interconnect Network) is an auxiliary bus relative to CAN, used in cars for simple systems such as buttons, turn signal switches, wipers, where high speed is not required; it operates over a single wire, supports speeds up to 20 kbit/s and lengths up to 40 m, and has a structure with one master and up to 15 slave nodes.

For example, in our case the master is the gateway, and there are 2 slaves — the steering wheel buttons and our favorite KLR module.

image.png

This is what a single LIN data packet looks like when viewed on an oscilloscope

image.png

Each packet transmits specific data: which button is currently pressed, the state of sensors in the steering wheel, illumination, steering wheel temperature, etc.

The KLR module reads data from the sensors in the steering wheel and transmits data to the gateway; in general, there are three states it transmits: hands on the wheel, hands not on the wheel, and error.

It is precisely when it transmits an error that the message “Travel Assist is currently unavailable” appears.

When does the error occur? According to my observations:

If you look deeper into the data, this is what a normal “hands on the wheel” data packet looks like in bytes D2, D3, D3 — the pressure level on the steering wheel is transmitted

image.png

And this is what an error looks like:

image.png