commaai / commaai/opendbc

Add Volkswagen Caddy 5 MQB EVO 2.0 TDI fingerprint / FW mapping

Open Beginner friendly
#3,529 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
3.4k
Forks
2.3k
Avg merge
3d 2h
Merged PRs (30d)
38

Description

## Request

Please consider adding automatic fingerprint / firmware mapping support for a Volkswagen Caddy 5 on MQB EVO.

## Vehicle

- Vehicle: Volkswagen Caddy 5
- Platform: MQB EVO
- Engine: 2.0 TDI
- Working manual selection: `VOLKSWAGEN_GOLF_MK8` / Volkswagen MQBevo 2020-25
- Fork/commit tested: `infiniteCable2/openpilot` `78e4850764ac17dc5fb638a9d2902ab1b5a61d51`

## Behavior

With forced vehicle selection removed, automatic detection does not select the working VW MQB EVO candidate.

Passive auto-mode capture:

- Duration: 45 seconds
- CAN messages: 152,711
- Buses observed: `0`, `2`
- Address count per bus: bus `0` = 110, bus `2` = 110
- `CarParams` strings showed `MOCK` / `mock`
- Visible FW strings:
- `2Q0907686G 0287`
- `5WA907572C 0461`
- `5WA980556B 0254`
- `5WA980653D 3403`

Forced Golf MK8/MQBevo capture:

- Forced via `CarPlatformBundle = VOLKSWAGEN_GOLF_MK8`
- Duration: 45 seconds
- CAN messages: 158,123
- Buses observed: `0`, `2`, `128`, `130`
- `CarParams` selected `VOLKSWAGEN_GOLF_MK8` / `volkswagen`
- Same visible FW strings as above

This suggests the car works with the existing Golf MK8/MQBevo implementation, but auto fingerprint/FW matching is missing this Caddy 5 firmware set.

## Decoded carFw from forced Golf MK8 drive

Decoded locally from segment 0 `qlog.zst` and `rlog.zst`. VIN/route/private identifiers are redacted and raw logs are not included here.

| ecu | addr | response | sub | bus | fwVersion | current status |
|---|---:|---:|---:|---:|---|---|
| `fwdRadar` | `0x757` | `0x7C1` | `0` | `0` | `5WA907572C 0461` | already present for `VOLKSWAGEN_GOLF_MK8` |
| `fwdCamera` | `0x74F` | `0x7B9` | `0` | `0` | `5WA980653D 3403` | missing; current Golf MK8 list has `5WA980653D 3405` |
| `cornerRadar` | `0x74E` | `0x7B8` | `0` | `0` | `2Q0907686G 0287` | missing; current Golf MK8 list has `2Q0907686J 0288` |
| `adas` | `0x769` | `0x7D3` | `0` | `0` | `5WA980556B 0254` | missing; current Golf MK8 list has `5WA980556C 0314` and `5WA980556D 0364` |

## Candidate FW_VERSIONS additions

For `CAR.VOLKSWAGEN_GOLF_MK8`, these appear to be the missing entries:

```python
(Ecu.cornerRadar, 0x74e, None): [
b'\xf1\x872Q0907686G \xf1\x890287',
]
(Ecu.adas, 0x769, None): [
b'\xf1\x875WA980556B \xf1\x890254',
]
(Ecu.fwdCamera, 0x74f, None): [
b'\xf1\x875WA980653D \xf1\x893403',
]
```

`fwdRadar` `5WA907572C 0461` already exists in the current `VOLKSWAGEN_GOLF_MK8` FW list.

## Safety / privacy notes

- Data collection was passive only.
- No CAN messages were sent by the collector.
- No active UDS query was performed by the collector.
- No video/audio/GPS data is included in this issue.
- VIN, dongle ID, route IDs, IP, and MAC are redacted.

Raw non-video qlog/rlog can be provided privately if needed.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the FW_VERSIONS entry for CAR.VOLKSWAGEN_GOLF_MK8 and compare its existing ECU mappings with the three firmware strings listed in the issue. Add the missing fingerprint entries, then verify that automatic detection selects the MQB EVO/Golf MK8 candidate for the reported Caddy firmware set without forced vehicle selection.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot, reverse-engineering
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.