diff --git a/schema/envelope.json b/schema/envelope.json index 97f3d8d..cf25ff3 100644 --- a/schema/envelope.json +++ b/schema/envelope.json @@ -2,7 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://yukart/schema/envelope.json", "title": "Signal envelope", - "description": "Every decoded signal published on yukart/vehicle/* and yukart/gnss/*. Raw CAN uses the binary frame encoding instead.", + "description": "Every decoded signal published on yukart/vehicle/*, yukart/gnss/* and yukart/host/*. Raw CAN uses the binary frame encoding instead.", "type": "object", "required": [ "timestamp", diff --git a/schema/signals.json b/schema/signals.json index dba3c5f..5d5ffee 100644 --- a/schema/signals.json +++ b/schema/signals.json @@ -1,5 +1,5 @@ { - "$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=z27ag is reverse-engineered and lives in the DBC.", + "$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=z27ag is reverse-engineered and lives in the DBC. source=host is the Orin itself (orin-status), not the car.", "signals": { "engine_rpm": { "unit": "rpm", @@ -90,6 +90,256 @@ 0, 656 ] + }, + "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_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 + ] + }, + "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)" } } } diff --git a/schema/topics.json b/schema/topics.json index a837a3b..7e5c61c 100644 --- a/schema/topics.json +++ b/schema/topics.json @@ -22,6 +22,13 @@ "publisher": "gnss", "description": "value is an object: lat, lon, alt_m, speed_kph, heading_deg, fix, satellites." }, + "yukart/host/": { + "payload": "envelope", + "retained": true, + "rate": "1/s", + "publisher": "orin-status", + "description": "The Orin itself: temperatures, load, memory, network links, UPS battery. One topic per signal, named exactly as in signals.json (source=host)." + }, "yukart/system/": { "payload": "json", "retained": true,