commaai / commaai/opendbc

GM Camera-ACC: control HUD distance

Open
#1,124 0 comments 1 reaction 0 assignees View on GitHub
car enhancement gm
Dominant language
Python
Stars
3.4k
Forks
2.3k
Avg merge
3d 2h
Merged PRs (30d)
38

Description

Issue
---

It appears that the camera controls the distance bars in the instrument cluster via a low speed GMLAN serial data line, as setting `ASCMActiveCruiseControlStatus->ACCGapLevel` has no effect like it does on the older ASCM generation of GMs, but the camera still does manage it. This is also true for the LKA icon which uses `0x104c006c` (GMLAN).

Context
---

`ASCMSteeringButton` can be set to not be forwarded to the camera and yet the distance screen still pops up if the gap button is pressed, however it won't change the gap level. Note this excerpt about the Bolt EUV 2022, assuming ASCM is the camera:

> Adaptive Cruise Control Description and Operation

> Gap Switch

> The gap switch allows the driver to determine how closely the adaptive cruise control vehicle follows a target vehicle while adaptive cruise control is engaged. When the adaptive cruise control vehicle speed is being limited due to a slower travelling vehicle, the adaptive cruise control vehicle speed is automatically controlled to the follow speed limit. The gap switch has 3 following distance selections that range from 1–2 s. The gap switch following distance between the adaptive cruise control vehicle and the target vehicle is expressed in time as opposed to actual distance. The distance maintained for a selected gap will vary based on vehicle speed. The faster the vehicle speed, the further back you will follow. The gap setting can only be adjusted when the adaptive cruise control system is engaged. The gap switch is hard-wired to the BCM. Based on voltage variations, ➡️***the BCM is able to read the gap switch selection and communicates the switch status on the GMLAN serial data circuit to the active safety control module***⬅️. The gap switch is a momentary switch.

> The initial push of the gap switch recalls the current setting and activates the display. Subsequent pushes of the gap switch will change the gap setting.

Potential solution
---

I was able to successfully send fake `ASCMSteeringButton` button presses to the camera which *sometimes* updates `ACCGapLevel`, however the instrument cluster does not update (no popup or even on the main ADAS screen) until the user presses the button to trigger the popup.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.