obd-poller over the K-line via the Bluetooth ELM327; gnss publisher; elm_connected
Rust (L4T) / Clippy, test, build, glibc (push) Failing after 1s
/ crosscheck (push) Successful in 1s

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:
2026-10-13 22:57:30 +09:00
parent 54171aaf27
commit cce9711119
19 changed files with 809 additions and 405 deletions
+6 -5
View File
@@ -1,14 +1,15 @@
[Unit]
Description=Yukart obd-poller: OBD-II mode 01 polling, the single CAN writer
Description=Yukart obd-poller: OBD-II over the K-line through the Bluetooth ELM327
Documentation=gitea:yukart/svc-core
# Tier 2. Ordered after the broker and nothing else: the adapter comes and goes, and
# the poller only sends while the bus is visibly alive.
After=mosquitto.service
# Tier 2. Ordered after the broker and Bluetooth: the adapter comes and goes, and the
# poller connects, releases and retries by itself.
After=mosquitto.service bluetooth.service
StartLimitIntervalSec=0
[Service]
User=mikkeli
ExecStart=/usr/local/bin/yukart-obd-poller
EnvironmentFile=/etc/default/yukart-elm
ExecStart=/usr/local/bin/yukart-obd-poller --elm ${ELM_ADDR}
Restart=always
RestartSec=2