Updated 2026-10-09
What it is and who sends it
A Sensor Data Sharing Message lets a sensor-equipped station describe the road users it detects that are not announcing themselves: unequipped vehicles, pedestrians without a phone app, an animal, an obstacle. An RSU with an intersection radar or camera is the most common sender in infrastructure deployments; a vehicle with perception sensors can send one too, which is the "cooperative perception" use case. Receiving vehicles merge the detected objects with the BSMs and PSMs they hear directly and treat them like any other road user, which is how a connected vehicle can be warned about a pedestrian stepping out from behind a bus. The type is SensorDataSharingMessage, DSRCmsgID 41, defined in SAE J3224.
When it is broadcast
| Property | Value |
| Rate | Up to 10 Hz, matching the sensor's track update rate; J3224 limits size and rate to keep the channel usable |
| PSID | 0x8010 (p-encoded 8010) |
| Channel | Same C-V2X channel as everything else |
| Signing | Signed with the sender's application or pseudonym certificate for 0x8010 |
| Source | Sensor fusion on the RSU or a roadside edge device → RSU immediate-forward table; never stored, because the content changes continuously |
| Size | 60 bytes with one object, a few hundred bytes with a dozen; the list is trimmed to the most relevant objects |
Structure, section by section
| Field | Meaning | Units and range | Typical value | Where it comes from |
msgCnt | Sequence number | 0 … 127 | 55 | sender |
sourceID | Temporary ID of the sender | 4 bytes hex | 52530001 | sender |
equipmentType | rsu, obu, vru, unknown | enum | rsu | configuration |
sDSMTimeStamp | DDateTime: year, month, day, hour, minute, second (ms) | UTC | 2026-10-08 14:22:12.345 | sender clock |
refPos | Reference position all object offsets are measured from | 1/10 microdegree, 0.1 m | the sensor's surveyed position | survey or GNSS |
refPosXYConf | Error ellipse of the reference position | 0.05 m | 5, 5 (0.25 m) | survey |
refPosElConf | Elevation confidence | enum elev-000-50 etc. | | survey |
objects | 1 … 128 DetectedObjectData | | | sensor fusion |
DetectedObjectCommonData (every object)
| Field | Meaning | Units and range | Typical value |
objType | vehicle, vru, animal, unknown | enum | vehicle |
objTypeCfd | Confidence in the classification | 0 … 100 %, 101 unavailable | 95 |
objectID | Track handle, stable while tracked | 0 … 65535 | 101 |
measurementTime | When this object was measured, relative to sDSMTimeStamp | ms, −1500 … 1500 | −120 |
timeConfidence | Confidence of that time | enum | time-000-010 |
pos | offsetX (east), offsetY (north), offsetZ (up) from refPos | 0.1 m | −452, −38 (45.2 m west, 3.8 m south) |
posConfidence | pos (a500m … a1cm) and elevation | enums | a50cm |
speed, speedConfidence | Ground speed and its confidence | 0.02 m/s | 620 (27.7 mph) |
speedZ, speedConfidenceZ | Vertical speed | optional | |
heading, headingConf | Direction of motion | 0.0125° | 7200 (east) |
accel4way, accCfdX/Y/Z/Yaw | Acceleration and confidences | optional | |
Optional data by object type
| Choice | Fields |
detVeh | lights (ExteriorLights), vehAttitude (pitch, roll, yaw), vehAngVel, size (cm), height (5 cm), vehicleSizeConfidence, vehicleClass (BasicVehicleClass), classConf |
detVRU | basicType (aPEDESTRIAN, aPEDALCYCLIST…), propulsion, attachment, radius |
detObst | obstSize (width, length, height) and obstSizeConfidence |
The confidence enumerations are the same families used in the BSM (PositionConfidence, SpeedConfidence, HeadingConfidence, TimeConfidence), listed in the units cheat sheet.
How pilots use it
- Intersection safety. A radar on the mast arm detects a red-light runner or a pedestrian in the crosswalk; the RSU sends an SDSM and equipped vehicles warn their drivers even though the runner has no OBU. Pair it with SPaT to detect conflicts.
- Work zones. A trailer-mounted sensor at the taper reports vehicles and workers so that approaching equipped trucks get an object-level picture, complementing a TIM or RSM.
- Perception research. Universities compare the SDSM object list to ground truth to measure sensor fusion accuracy, or feed SDSMs into automated vehicle stacks as external detections.
- Counting and classification. The
objectID tracks and vehicleClass give a continuous classified count at the sensor's position; the portal's live view draws each object with its class and the exports include the object rows.
How to create one in this portal
- Open the creator and load SDSM. The template is an RSU at Broad St & West St reporting a passenger car 45 m west of the sensor heading east and a pedestrian near the corner.
- Set
refPos to your sensor's surveyed position and sDSMTimeStamp to now (the quick fields offer "now").
- Edit each object's
pos offsets in 0.1 m (east and north of the reference), speed, heading, objType and confidences. Add objects with the structure explorer; the ? help on offsetX shows the resulting absolute position.
- Encode / Validate. The hex begins
0029 (messageId 41). The map draws the reference point and each object with a heading arrow.
- Push for a bench test only, on PSID 0x8010 with a very short window; a stored SDSM would describe objects that are not there.
How to read a decoded one
measurementTime should be within a few hundred milliseconds of zero; large negative values mean a laggy sensor pipeline.
- Objects should fall on the roadway when plotted; a systematic rotation means the sensor's heading calibration is off, a systematic shift means
refPos is wrong.
objTypeCfd under 50 with objType vehicle is a guess; applications usually ignore low-confidence objects.
objectID should persist from message to message for the same object; IDs that change every frame mean the tracker is not tracking.
- A
vru object with speed 600 is a misclassified vehicle; a vehicle with size 50 × 50 is noise.