
Captured a few minutes of passive CAN traffic on a 2016 Mercedes C300 (W205) using an ESP32 + MCP2518FD logger.
No active probing, no UDS requests just listening.
Found something interesting: the full 17-character VIN is broadcast in plaintext on CAN ID 0x071.
Pattern:
byte 0 → sequence (0, 1, 2)
bytes 1..7 → ASCII characters
3 frames → 21 chars
strip 0xFF padding → 17-char VIN
Example:
00 → 55SWF4J
01 → B9GU161
02 → 604
→ 55SWF4JB9GU161604
Consistent across 100+ observations in a single capture.
---
Method used to surface it:
- group frames by CAN ID
- look for ASCII-printable density
- flag candidates
- reconstruct multi-frame sequences
This also surfaced other signals in the same capture (brake, gear state, etc).
---
What’s interesting from a system perspective:
- VIN looks like a public identity signal for module coordination
- security likely handled elsewhere (immobilizer, encrypted channels, etc)
So the CAN bus ends up carrying a mix of:
- public identity (VIN)
- system state
- protected control signals
---
Curious if others have seen similar plaintext VIN broadcasts on BMW / VAG / Ford, and whether CAN ID / cycle rate tends to stay consistent across platforms.