Commit Graph

73 Commits

Author SHA1 Message Date
mikkeli 00ab54d538 Tablet link: DHCP lease 86400 s; a tablet NetworkStack update made the 15 s lease drop the link every 15 s
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-14 08:54:49 +09:00
mikkeli fc9f93336e Power plan: battery-low shutdown built; logrotate's jetson-logging fixed
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-14 08:32:17 +09:00
mikkeli 0f3b33a3e7 pl2303 built out of tree for the IMU's PL2303GC adapter; BOM and rebuild procedure
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-14 00:40:39 +09:00
mikkeli 645bad819e BOM: the second module is a WT61 plus (TTL); the WT61 datasheet may not apply to it
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-14 00:19:22 +09:00
mikkeli 43a2b8bf0b BOM: second WT61 on a CP2102 at 115200/100 Hz; it speaks the register protocol; no PL2303 driver in JetPack
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-14 00:15:19 +09:00
mikkeli 47ba62bb17 Persistent journal: the stale boot clock sets the previous boot aside as .journal~; how to read it
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 23:04:36 +09:00
mikkeli 00082ac491 CAN docs: OBD-II is on the K-line via the ELM; nothing transmits on CAN
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 22:57:32 +09:00
mikkeli 1551e5648a Persistent journal on the car unit, 1 GB cap, 30 s sync
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 22:44:10 +09:00
mikkeli 654ec96e3b CI-RUNNER: contracts' rust-consumers workflow
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 20:01:14 +09:00
mikkeli a17c0b18f4 CI runner on the development Orin: setup script and report
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 19:09:33 +09:00
mikkeli cc97f16872 CAN-BITRATE: device-unit bring-up verified on hot-plug
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 18:28:23 +09:00
mikkeli b25267e713 CAN-BITRATE: can-up enabled per device unit; the udev SYSTEMD_WANTS rule is gone
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 17:54:42 +09:00
mikkeli bfd45a8508 CAN-BITRATE: obd-poller disabled (no OBD on CAN); adapter stays acknowledging
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 17:50:30 +09:00
mikkeli df84b1570f CAN-BITRATE: 71-can-up matches the PEAK by USB id; NAME== never fired on hot-plug
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 16:25:38 +09:00
mikkeli eeda69a145 CI: crosscheck runs on the halogen label
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 01:01:20 +09:00
mikkeli bda963f30e CI: crosscheck caller names its runner
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 00:37:59 +09:00
mikkeli b4a3c428ac CI: cross-repo consistency check on push (yukart/tool-crosscheck)
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 00:36:54 +09:00
mikkeli ca09521c63 can_pcan out of listen-only: obd-poller transmits
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 23:25:04 +09:00
mikkeli 17be962e57 mosquitto: set_tcp_nodelay, raw CAN throughput measured
Nagle on the broker held small messages to subscribers ~40 ms at CAN rates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 20:48:41 +09:00
mikkeli 872997281f Mosquitto on the car Orin (localhost only); UPS read by orin-status
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 16:37:11 +09:00
mikkeli 6f9d80d8b9 BOM: PCAN-USB stays (detachability); onboard CAN on J17 noted as the alternative
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 16:07:27 +09:00
mikkeli d7a015217a BOM: USB port allocation (all four USB-A taken, one shared USB 2.0 hub)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:55:41 +09:00
mikkeli 72a7594548 BOM: decided: IMU outside the enclosure on one USB-A port, roll-cage mounted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:54:17 +09:00
mikkeli 579d60c406 BOM: IMU mounting note: rigid path to the body; USB IMU on the roll cage under consideration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:52:09 +09:00
mikkeli ad24e2e358 BOM: UART1 loopback verified after the WT61 short
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:35:21 +09:00
mikkeli 7b32e06e24 BOM: header facts from the carrier spec; realign pull-up 100 kΩ (TXB0108 needs > 50 kΩ)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:33:58 +09:00
mikkeli 69669d1832 BOM: WT61 status: shorted, condition untested
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:25:39 +09:00
mikkeli d4d5edb2fc BOM: WT61 burnt out on fitting; facts from datasheet v24-0429
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:25:32 +09:00
mikkeli 4ac775a13d BOM: WT61 being fitted on Dupont wires; realign button optional (push button + 10 kΩ)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 15:12:03 +09:00
mikkeli 7d9f0a0099 BOM: WT61 realign button on header pin 7 (planned)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-12 00:04:52 +09:00
mikkeli c05585c9b0 BOM: WT61 facts from the datasheet (current, filtering, power-up calibration, yaw drift)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-11 23:59:28 +09:00
mikkeli f0e5751b30 BOM: WitMotion WT61 IMU (planned), on the header UART at 3.3 V
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-11 23:55:28 +09:00
mikkeli 3827c5c381 USB camera report: manual exposure and gain sweep
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-11 17:41:14 +09:00
mikkeli 6aa0d940f6 Add the USB camera (IMX662, Sunplus UVC) to the BoM, with a first measurement report
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-11 17:21:10 +09:00
mikkeli f628c3884d Time sync: mark the timesyncd config as superseded
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:18:31 +09:00
mikkeli 28e056dc4d Chrony with GPS fallback; robust antenna supply; all GNSS constellations
Time: chrony replaces timesyncd, with NICT/JP-pool NTP primary and gpsd
SHM as an offline-only refclock; makestep any time and fake-hwclock
cover the battery-less RTC.

Antenna: the modem cleared the supply again after the service set it,
so the service is now idempotent, configurable (ANTENNA=active|passive,
passive keeps it off) and re-checked by a 30 s timer.

gpsd: a gpsdctl udev hook spawned a stray gpsd without -n at boot that
blocked the real service; gpsd.service now binds to the NMEA device.

GNSS: CGNSSMODE=15 (GLONASS, BeiDou, Galileo, QZSS) and all supported
NMEA sentences; both persist across a modem reset. Adds sim7600-at.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:18:16 +09:00
mikkeli fe284ce540 Plan: ride through cranking, shut down at ignition off
UPS input comes from the ignition-switched socket via a 15 V PD
trigger, so input loss means cranking or ignition off. The INA219
(monitor-only) gives the battery current sign; a host service would mark
cranks, then after a grace period close the recording and power off,
with a voltage floor as backstop. Records the open hardware problem:
after poweroff the UPS keeps the board powered, so it drains and
doesn't auto-start at ignition on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:10:51 +09:00
mikkeli 0b3783dac0 BOM: add Waveshare UPS Power Module (C)
15-19 V in, 3S 21700 pass-through UPS with an INA219 that the car unit
sees on I2C bus 7 at 0x41 (read-only check: 12.34 V, idle). Bench test
held the Orin >=20 s across a supply swap. Notes the 20 V PD caveat and
the intended ignition-off shutdown via battery current direction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:04:40 +09:00
mikkeli 68fd0715b8 SIM7600: power the active GNSS antenna on every modem start
An active antenna on the roof received nothing until the modem's
antenna supply was switched on (AT+CVAUXV=3050, AT+CVAUXS=1); then +5.5
dB over the passive one. The settings reset on every modem restart and
AT&W doesn't keep them, so interface 03 is reserved as /dev/sim7600-at
(ModemManager ignores it) and a udev-started oneshot re-applies them.
gpsd now re-attaches via gpsdctl after re-enumeration. Verified with a
live modem reset: antenna, LTE and the GNSS fix all recovered unattended.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:03:20 +09:00
mikkeli 3926dcc055 SIM7600: note antenna placement for the first fix
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:39:41 +09:00
mikkeli 21007a384e SIM7600: first GNSS 3D fix, in the car
The gpsd pipeline needed no changes; the indoor tests lacked sky view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:39:29 +09:00
mikkeli ba9fefb5d2 CAN bitrate measured: 500 kbps; can_pcan comes up listen-only
In the car with ignition on, the listen-only probe found 500 kbps (2673
frames in 3 s, zero RX errors; nothing at other rates). The OBD port
isn't gatewayed: 27 periodic IDs, ~893 frames/s. A udev rule now starts
can-up@can_pcan on boot and hot-plug with 500k and listen-only, to be
dropped when obd-poller becomes the single writer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:38:44 +09:00
mikkeli e659efc3c0 Plan: measure the Z27AG CAN bitrate in the car
500 kbps is the likely era standard but unconfirmed for the Colt, so no
persistent bitrate yet. Adds a listen-only probe (installed on the car
unit as can-bitrate-probe) that cycles common rates without disturbing
the bus, the fallback if the OBD port is gatewayed and silent, and what
to persist once the rate is known.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 01:00:46 +09:00
mikkeli 25bdf43d3a Device naming: can_pcan rename verified on hot-plug
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:57:13 +09:00
mikkeli 817208d7d6 Headless report: next boot clean, no failed units
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:55:21 +09:00
mikkeli 9a4f14faf6 USB report: ~3 s per power change; flapping-charger edge case
Summarises the measured cost as roughly 3 s blank per PD state change,
with keep-awake in the app handling sleep, and notes that a marginal
charger renegotiating PD repeatedly would cut the link each time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:49:34 +09:00
mikkeli b3f1216060 USB report: plug-in with tablet awake costs ~2.2 s
No USB-C detach, one gadget reconnect and a fresh DHCP exchange. With
sleep ruled out, the hub's PD edges cost ~3.5 s (unplug) and ~2.2 s
(plug-in).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:46:33 +09:00
mikkeli 5b2ae25071 USB report: the long outages were Android sleep, not the link
Idle on battery, the tablet suspends ~60 s after screen-off and only
answers at its DHCP-renewal wakeups while the USB link stays up. Kept
awake with a video, a PD unplug costs 3.1 s and then nothing. The
earlier replug silences were the tablet waking from sleep.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:43:37 +09:00
mikkeli b7f19c85fb USB report: timed replug repeat (~15 s to stable)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:29:15 +09:00
mikkeli 264cc68ff2 USB report: unplug and replug of hub PD measured separately
Unplug causes the full USB-C detach (~3.5 s total). Replug causes no
detach but ~10 s of disruption: the tablet goes silent while the Orin's
link stays up, then reconnects its gadget once. Only an app-level
heartbeat would see the replug outage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:25:46 +09:00