54171aaf273f14af0f01981bd7e409757d76444c
Kernel-filtered read-only socket; booleans on change, numbers <= 20/s, every live value refreshed once a second, stale after 1 s of silence. --replay runs a candump log through the same path, --list prints the layouts. obd-poller drops engine_rpm, now a z27ag signal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
type
| type |
|---|
| reference |
Core services
Part of Project Yukart, making an old 2008 Mitsubishi Z27AG a bit smarter with modern technologies.
This file serves as the minimalist portal to other docs
What this repo is about
The acquisition and processing cluster on the Orin, developed and deployed as one
unit: recorder, decoder, orin-status and obd-poller now; can-bridge and gnss as they are
needed.
| Binary | Installed as | Does |
|---|---|---|
recorder |
yukart-recorder.service |
Raw CAN + GNSS to disk, in sessions, under a storage bound; OBD-II values from the bus beside them |
decoder |
yukart-decoder.service |
The car's own broadcast frames to named signals (yukart/vehicle/*): every z27ag signal in contracts' signals.json, laid out by its can block. Booleans on change, numbers ≤ 20/s, each refreshed once a second; reads only |
bus-bench |
not installed: a test tool | Raw CAN and decoded-signal load over MQTT, measured: loss, latency, broker CPU (report) |
obd-poller |
yukart-obd-poller.service |
OBD-II mode 01 polling, the single CAN writer; disabled, the Z27AG has no OBD-II on CAN: speed, throttle, load, MAP, MAF ~10 Hz; temperatures and fuel 1 Hz (yukart/vehicle/*) |
orin-status |
yukart-orin-status.service |
The Orin's health on the bus, once a second: temperatures, CPU/GPU load, memory, power, fan, WiFi (with SSID)/LTE/tablet links, the CAN interface, UPS battery (yukart/host/*) |
scripts/deploy-recorder.sh # build, glibc check, install on the car Orin
scripts/deploy-orin-status.sh # build on the development Orin, glibc check, install
scripts/deploy-decoder.sh # same, for the decoder (after any signals.json change)
yukart-decoder --list # the signals it decodes, and where
zstdcat can-*.log.zst | yukart-decoder --replay # what it would publish for a recording
scripts/deploy-obd-poller.sh # build, glibc check, install on the car Orin
yukart-obd-poller --once # on the Orin, service stopped: what the ECU answers
yukart-orin-status --once # on an Orin: one reading as JSON, no broker
yukart-recorder ctl status # on the Orin
yukart-recorder ctl start "cold start" # manual session, ends only on stop
yukart-recorder ctl mark "indicator left on"
yukart-recorder ctl stop
Recordings live in /var/lib/yukart/recordings/, one directory per session —
layout in the initial plan.
- For implementation practice guidelines, refer to the guidelines;
- For implementation plans and history, refer to them;
Description
Acquisition and processing cluster on the Orin: recorder, can-bridge, obd-poller, gnss, decoder
Languages
Rust
93.2%
Shell
6.8%