obd-poller over the K-line via the Bluetooth ELM327; gnss publisher; elm_connected
obd-poller drops its CAN socket: the Z27AG answers OBD-II only on ISO 9141-2. It holds a raw RFCOMM link to the ELM (no pairing, no root), fixes the protocol (ATSP3) so nothing probes CAN, publishes the obd_* signals, and releases the adapter after a minute of ECU silence so it can sleep. gnss: gpsd's fix as yukart/gnss/<signal>. orin-status: elm_connected from BlueZ. One native deploy script (deploy-native.sh BIN) behind the per-service ones; /etc/default/yukart-elm holds the adapter's address. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
@@ -10,25 +10,28 @@ 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
|
||||
unit: `recorder`, `decoder`, `gnss`, `orin-status` and `obd-poller` now; `can-bridge` as it is
|
||||
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 |
|
||||
| `recorder` | `yukart-recorder.service` | Raw CAN + GNSS to disk, in sessions, under a storage bound; every `yukart/vehicle/*` value (decoded and OBD-II) 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](docs/impl/reports/BUS-BENCH.md)) |
|
||||
| `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/*`) |
|
||||
| `obd-poller` | `yukart-obd-poller.service` | OBD-II mode 01 on the K-line through the Bluetooth ELM327 (address in `/etc/default/yukart-elm`), the single writer to the car; never on CAN. The `obd_*` signals, calibration references (`yukart/vehicle/*`): rpm, speed, throttle, load, MAF, timing, O2 every round; temperatures and trims every 5 s. Lets go of the adapter after a minute of ECU silence |
|
||||
| `gnss` | `yukart-gnss.service` | gpsd's fix as single values on `yukart/gnss/*`: fix, speed, heading, position, altitude, satellites |
|
||||
| `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, the ELM's Bluetooth link, UPS battery (`yukart/host/*`) |
|
||||
|
||||
```bash
|
||||
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)
|
||||
scripts/deploy-native.sh BIN # build BIN on the development Orin, glibc check, install;
|
||||
# deploy-{decoder,gnss,obd-poller,orin-status}.sh wrap it.
|
||||
# Redeploy after any contracts 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-obd-poller --elm ADDR --once # on the Orin, service stopped: adapter, protocol,
|
||||
# supported PIDs and one value each
|
||||
yukart-gnss --once # the next fix as JSON, no broker
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user