Files
contracts/schema/signals.json
T
mikkeli 34140cc666
/ crosscheck (push) Successful in 1s
Rust consumers (L4T) / Clippy, test, build, glibc for every service that compiles contracts in (push) Failing after 6s
Decoded Z27AG signals: layouts in signals.json can blocks, the only source
engine_rpm moves to source z27ag (no OBD-II on this car's CAN). Ten more:
accelerator, brake, handbrake, indicators, side lights, dipped beam, doors,
A/C compressor. Guideline 6: no service writes a CAN ID of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 21:31:51 +09:00

518 lines
12 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$comment": "Single source for signal identity. Topic name and envelope unit are both derived from these entries and are never authored separately. source=obd2 is standardised; source=host is the Orin itself (orin-status), not the car. source=z27ag is reverse-engineered from the car's own broadcast frames, and its 'can' block is the only place its layout is written down: id (11-bit, hex string), byte (first data byte, 0-7), length in bits (1, 8 or 16), bit (length 1 only: 0 = LSB of that byte), order (length 16: big = byte first is most significant, little = the reverse), scale and offset (value = raw * scale + offset; booleans are raw != 0). 'evidence' names the contracts report that found it.",
"signals": {
"engine_rpm": {
"unit": "rpm",
"type": "number",
"source": "z27ag",
"description": "Engine speed",
"range": [
0,
8000
],
"can": {
"id": "0x210",
"byte": 4,
"length": 16,
"order": "big",
"scale": 1,
"offset": 0,
"evidence": "Z27AG-DECODE-1"
}
},
"vehicle_speed_kph": {
"unit": "kph",
"type": "number",
"source": "obd2",
"description": "Road speed",
"range": [
0,
255
]
},
"coolant_temp_c": {
"unit": "celsius",
"type": "number",
"source": "obd2",
"description": "Engine coolant temperature",
"range": [
-40,
215
]
},
"intake_air_temp_c": {
"unit": "celsius",
"type": "number",
"source": "obd2",
"description": "Intake air temperature",
"range": [
-40,
215
]
},
"throttle_pct": {
"unit": "percent",
"type": "number",
"source": "obd2",
"description": "Throttle position",
"range": [
0,
100
]
},
"engine_load_pct": {
"unit": "percent",
"type": "number",
"source": "obd2",
"description": "Calculated engine load",
"range": [
0,
100
]
},
"fuel_level_pct": {
"unit": "percent",
"type": "number",
"source": "obd2",
"description": "Fuel tank level",
"range": [
0,
100
]
},
"intake_pressure_kpa": {
"unit": "kpa",
"type": "number",
"source": "obd2",
"description": "Intake manifold absolute pressure",
"range": [
0,
255
]
},
"maf_gps": {
"unit": "g/s",
"type": "number",
"source": "obd2",
"description": "Mass air flow rate",
"range": [
0,
656
]
},
"accel_pedal_pct": {
"unit": "percent",
"type": "number",
"source": "z27ag",
"description": "Accelerator pedal position (0x00 at rest, 0xFA flat)",
"range": [
0,
100
],
"can": {
"id": "0x210",
"byte": 0,
"length": 8,
"scale": 0.4,
"offset": 0,
"evidence": "Z27AG-DECODE-1"
}
},
"brake_pedal": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Brake pedal switch: pressed",
"can": {
"id": "0x231",
"byte": 4,
"bit": 1,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"handbrake": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Handbrake applied",
"can": {
"id": "0x239",
"byte": 0,
"bit": 2,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"indicator_left": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Left indicator lamp, as it flashes (on and off at the flasher's rate)",
"can": {
"id": "0x423",
"byte": 2,
"bit": 6,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"indicator_right": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Right indicator lamp, as it flashes. Hazards were seen on the left bit only: open",
"can": {
"id": "0x423",
"byte": 2,
"bit": 5,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"side_lights": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Side (position) lights on; also on with dipped beam",
"can": {
"id": "0x423",
"byte": 2,
"bit": 2,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"dipped_beam": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Dipped headlights on",
"can": {
"id": "0x423",
"byte": 3,
"bit": 1,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"door_open": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Any door open",
"can": {
"id": "0x423",
"byte": 2,
"bit": 1,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"driver_door_open": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "Driver's door open",
"can": {
"id": "0x423",
"byte": 0,
"bit": 4,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"ac_compressor": {
"unit": "",
"type": "boolean",
"source": "z27ag",
"description": "A/C compressor engaged (engine running)",
"can": {
"id": "0x13D",
"byte": 6,
"bit": 7,
"length": 1,
"evidence": "Z27AG-DECODE-1"
}
},
"orin_cpu_temp_c": {
"unit": "celsius",
"type": "number",
"source": "host",
"description": "Orin CPU cluster temperature",
"range": [
-40,
110
]
},
"orin_gpu_temp_c": {
"unit": "celsius",
"type": "number",
"source": "host",
"description": "Orin GPU temperature",
"range": [
-40,
110
]
},
"orin_soc_temp_c": {
"unit": "celsius",
"type": "number",
"source": "host",
"description": "Orin SoC temperature, hottest of its sensors",
"range": [
-40,
110
]
},
"orin_tj_temp_c": {
"unit": "celsius",
"type": "number",
"source": "host",
"description": "Orin junction temperature: the hottest point on the die, which throttling acts on",
"range": [
-40,
110
]
},
"orin_cpu_pct": {
"unit": "percent",
"type": "number",
"source": "host",
"description": "CPU utilisation, all cores",
"range": [
0,
100
]
},
"orin_gpu_pct": {
"unit": "percent",
"type": "number",
"source": "host",
"description": "GPU utilisation",
"range": [
0,
100
]
},
"orin_ram_used_mb": {
"unit": "MB",
"type": "number",
"source": "host",
"description": "Memory in use, CPU and GPU together (one shared pool): total minus available",
"range": [
0,
8192
]
},
"orin_ram_used_pct": {
"unit": "percent",
"type": "number",
"source": "host",
"description": "Memory in use as a share of the total",
"range": [
0,
100
]
},
"orin_swap_used_mb": {
"unit": "MB",
"type": "number",
"source": "host",
"description": "Swap in use",
"range": [
0,
16384
]
},
"orin_power_w": {
"unit": "W",
"type": "number",
"source": "host",
"description": "Orin module input power (VDD_IN), from the onboard INA3221",
"range": [
0,
30
]
},
"orin_fan_rpm": {
"unit": "rpm",
"type": "number",
"source": "host",
"description": "Cooling fan speed",
"range": [
0,
10000
]
},
"net_wifi_up": {
"unit": "",
"type": "boolean",
"source": "host",
"description": "WiFi associated and up"
},
"net_wifi_ssid": {
"unit": "",
"type": "string",
"source": "host",
"description": "Network name (SSID) of the WiFi the Orin is associated with; not sent while WiFi is down"
},
"net_wifi_signal_dbm": {
"unit": "dBm",
"type": "number",
"source": "host",
"description": "WiFi signal level",
"range": [
-100,
0
]
},
"net_wifi_rx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "WiFi receive rate (into the Orin)",
"range": [
0,
1000000
]
},
"net_wifi_tx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "WiFi transmit rate (out of the Orin)",
"range": [
0,
1000000
]
},
"net_lte_state": {
"unit": "",
"type": "string",
"source": "host",
"description": "Modem state as ModemManager reports it (connected, registered, searching, disabled, …), or absent with no modem"
},
"net_lte_tech": {
"unit": "",
"type": "string",
"source": "host",
"description": "Access technology in use (lte, umts, …); empty when not registered"
},
"net_lte_signal_pct": {
"unit": "percent",
"type": "number",
"source": "host",
"description": "Modem signal quality",
"range": [
0,
100
]
},
"net_lte_rx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "LTE receive rate (into the Orin)",
"range": [
0,
150000
]
},
"net_lte_tx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "LTE transmit rate (out of the Orin)",
"range": [
0,
50000
]
},
"net_tablet_up": {
"unit": "",
"type": "boolean",
"source": "host",
"description": "USB link to the tablet has carrier"
},
"net_tablet_rx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "USB tablet link, tablet to Orin",
"range": [
0,
480000
]
},
"net_tablet_tx_kbps": {
"unit": "kbit/s",
"type": "number",
"source": "host",
"description": "USB tablet link, Orin to tablet",
"range": [
0,
480000
]
},
"can_up": {
"unit": "",
"type": "boolean",
"source": "host",
"description": "The recorder's CAN interface (the PEAK, can_pcan) is present and up; false when absent or down"
},
"can_bus_state": {
"unit": "",
"type": "string",
"source": "host",
"description": "CAN controller state: ERROR-ACTIVE (normal), ERROR-WARNING, ERROR-PASSIVE, BUS-OFF, STOPPED (down), or absent with no adapter"
},
"can_rx_fps": {
"unit": "frames/s",
"type": "number",
"source": "host",
"description": "CAN frames received per second on that interface",
"range": [
0,
10000
]
},
"ups_battery_v": {
"unit": "V",
"type": "number",
"source": "host",
"description": "UPS battery pack voltage (3S Li-ion, 9.0–12.6 V)",
"range": [
0,
16
]
},
"ups_current_a": {
"unit": "A",
"type": "number",
"source": "host",
"description": "UPS battery current: positive charging, negative discharging",
"range": [
-5,
5
]
},
"ups_battery_pct": {
"unit": "percent",
"type": "number",
"source": "host",
"description": "UPS charge estimate from cell voltage, corrected for load. An estimate, steadiest at rest",
"range": [
0,
100
]
},
"ups_state": {
"unit": "",
"type": "string",
"source": "host",
"description": "charging, discharging (running on battery) or idle (on input power, not charging)"
}
}
}