mikkeli 6a7de03773 obd-poller: OBD-II mode 01, the single CAN writer; recorder keeps its values
obd-poller asks 0x7DF for the nine obd2 signals, only while the bus is alive,
and publishes envelopes stamped with the reply's kernel time. The recorder
subscribes to yukart/vehicle/* and writes vehicle.ndjson beside the frames.
Tested against a fake ECU on vcan0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 23:25:03 +09:00

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, orin-status and obd-poller now; can-bridge, gnss and decoder 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
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: rpm, 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/LTE/tablet links, 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-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;
S
Description
Acquisition and processing cluster on the Orin: recorder, can-bridge, obd-poller, gnss, decoder
Readme 290 KiB
Languages
Rust 93.2%
Shell 6.8%