— the Vehicle Signal Specification — is the least glamorous thing in this curriculum and one of the most useful. It is a naming scheme.
That sounds trivial until you have watched three teams spend a month discovering they meant different things by "speed".
The problem#
What it looks like#
Vehicle.Speed:
datatype: float
type: sensor
unit: km/h
min: 0
max: 400
description: Vehicle speed.Node types#
| Type | Meaning |
|---|---|
branch | A grouping node, holds no value |
sensor | Observed, read-only |
actuator | Can be commanded |
attribute | Static configuration, set at build time |
Instances — how repeated things are expressed#
Cars have four doors and several seats. VSS handles that with instances rather than four separate definitions.
Vehicle.Cabin.Seat:
type: branch
instances:
- Row[1,2]
- ["DriverSide", "Middle", "PassengerSide"]
Vehicle.Cabin.Seat.Heating:
datatype: int8
type: actuator
unit: percent
min: 0
max: 100That expands to Vehicle.Cabin.Seat.Row1.DriverSide.Heating and so on — six
seats from one definition.
Overlays — where your vehicle differs#
The standard tree will not match any real vehicle exactly. Overlays extend or adjust it without forking.
Vehicle.Cabin.Seat.Massage:
datatype: uint8
type: actuator
unit: percent
min: 0
max: 100
description: Massage intensity, OEM-specific feature.
Vehicle.Speed:
max: 250 # this vehicle's actual limitWhat VSS deliberately does not define#
This is where expectations need managing.
No transport. VSS says what a signal is called and what it means. It says nothing about how it moves — that is SOME/IP, DDS, gRPC or anything else.
No sampling rate. Whether speed is published at 1 Hz or 50 Hz is a product decision the specification does not express.
No permissions. Who may read or write a signal is not part of VSS.
Generating rather than translating#
The real value appears when VSS becomes the source that other artefacts are generated from.
ARXML (from the ECU team)
│ generate
▼
VSS tree + reviewed overlay (rates, permissions, area mappings)
│ generate
├──> vehicle HAL / property configuration
├──> service interface definitions
├──> data broker configuration
└──> client libraries for app teamsThe part that is not technical#
Next#
The component that holds these values and serves them to everyone.

