Commit Graph

47 Commits

Author SHA1 Message Date
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
mikkeli 98fb9f306a Record PD power-cycling test through the hub
Three PD unplug/replug cycles each caused one full USB-C detach; the
link flapped ~3 times and settled within 5-12 s with no intervention.
Treated as a service-level requirement (yukart decision 24), not a
host fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:18:50 +09:00
mikkeli 314ff3c6a7 Add USB tablet link report; disable the L4T-README drive
Tablet as USB host, Orin's stock L4T gadget as the network side: the
tablet chose NCM and got 192.168.55.100. Android only routes app traffic
over it once it is the default network, so the app has to bind to the
Ethernet network explicitly.

Mass storage is off (enable_ums=0); the config isn't a conffile, so an
nvidia-l4t-init upgrade restores it and the report says how to check.
The Orin's USB-C port (FUSB301, no PD) can't charge the tablet; the PD
hub on hand is the practical fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:12:36 +09:00
mikkeli fc0836aec7 Go headless: multi-user target, tty1 console, no sound servers
The car unit has no display of its own (the tablet app is the display),
and unified memory is better spent on the voice stack. GDM/GNOME no
longer start, a text login stays on tty1, and PulseAudio/PipeWire are
disabled for all users while ALSA stays for mic capture. Saves ~200 MB
idle; every step is a reversible disable, not a removal.

Also notes the pre-existing nightly logrotate failure from the NVIDIA
jetson-logging config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:01:51 +09:00
mikkeli 9ba464f4a4 Mark povo connection metered
project-yukart's map-tile sync treats NetworkManager's metered flag as
a second guard against syncing over LTE; the flag was never set. It is
now, live on the car unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:58:35 +09:00
mikkeli e29c20de75 Record LTE failover test: seamless switch, Tailscale direct over IPv6
With the WiFi radio off, the default route moved to wwan0 within 10 s and
all IPv4/DNS/Tailscale samples passed. Tailscale went direct to halogen
over povo's global IPv6 (no DERP), and an SSH session over the tailnet
survived both switches. WiFi took back IPv4 within 15 s and IPv6 within
~45 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:50:18 +09:00
mikkeli 787c414c0a BOM: settle RTC battery on CR2032, mark optional
The backup pin doesn't charge, so a rechargeable ML2032 would just
drain with a third of the capacity. Adds the expected life (~1.5-2 yr
typical), polarity and post-fit test notes, and marks the item low
priority since NTP covers almost every online boot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:43:47 +09:00
mikkeli 9e5e41f071 Add RTC backup battery to BOM (research pending)
The dev kit carrier has pads but no connector populated, so the RTC
resets whenever power is removed. Captures the connector part NVIDIA's
docs reportedly specify, the community substitute, and the R560 note;
battery type and footprint still need checking against the schematic.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:24:33 +09:00
mikkeli 1d405a6b91 Pin NTP to NICT, set Tokyo timezone; add time sync report
timesyncd now uses ntp.nict.jp (stratum 1), with the JP pool and Ubuntu
as fallback, over whichever uplink holds the default route. Timezone
moves from Asia/Yakutsk to Asia/Tokyo: same offset, right place.

Records that the RTC loses time at power-off (the cold boot came up at
June 4 until NTP synced), and the planned chrony + gpsd setup once
GNSS has a fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:24:33 +09:00
mikkeli 65a5bb995f Record cold-boot verification of CAN names and LTE
With both adapters attached at power-on, pcan registered first and took
can0, and the udev rule renamed it to can_pcan, confirming the race and
the fix. qmi_wwan auto-loaded, povo auto-connected below WiFi, and gpsd
came up on the stable symlink.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:19:03 +09:00
mikkeli f651eba2ac Point PCAN rebuild steps at ~/infra instead of /tmp
The driver source sat in /tmp and was gone after a reboot, leaving the
"after a kernel update" steps unusable. Re-fetched PEAK 9.2.0 into
~/infra/peak-linux-driver-9.2.0 per GUIDELINES §1; it is the same
release as the installed pcan.ko (Release_20260707_n).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:38:33 +09:00
mikkeli 2d62d1a4f8 Pin CAN interface names by udev; document device naming
mttcan and pcan both load at boot, so the PCAN adapter could take can0
and push the onboard controller to can1. A udev rule now names them
can_onboard (platform c310000.mttcan) and can_pcan (USB 0c72:000c),
both outside the canN pool so a transient canN can never collide.

Also records why the SIM7600 needs nothing more: ModemManager and NM
don't use ttyUSB numbers, and gpsd already uses a symlink.

can_onboard is verified live; can_pcan is checked against the driver
source only (adapter not plugged in).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:38:25 +09:00
mikkeli 4742d4a5bb Add SIM7600 setup report: LTE over QMI, gpsd on stable port
The L4T kernel ships without qmi_wwan/cdc-wdm, and PPP dial-up made KDDI
detach the povo SIM (attach APN was au's; PPP re-activating the default
bearer still detached). Built both modules out of tree from v5.15.148
into ~/infra/qmi_wwan, set the attach APN to povo.jp, and added an NM
connection at metric 1000 so LTE ranks below Ethernet and WiFi.

GNSS autostarts on the modem and gpsd reads /dev/sim7600-gps (udev
symlink on interface 01); no fix yet, tested indoors.

BOM: NMEA is on ttyUSB1 not ttyUSB3, and the data path is QMI, not
RNDIS/PPP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:36:27 +09:00
mikkeli 007ce0bd8e Record PCAN driver install status on mikkeli-orin-nano
The original report was written on another host. On this machine the
pcan module (NETDEV_SUPPORT) is built, installed under misc/, and loaded
at boot via /etc/modules; the adapter was not yet plugged in. Adds the
verification and post-kernel-update rebuild steps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:36:27 +09:00
mikkeli 00f27dfda0 Remove DSI LCD entry: no dedicated display in scope
The Orin Nano Developer Kit exposes no DSI connector — the module carries DSI
on SODIMM pins but the reference carrier board does not break them out, and
DisplayPort is its only display output. The Waveshare panel is also a
Raspberry Pi accessory and mechanically incompatible. It could not have been
connected without a custom carrier board.

Moot regardless: the tablet is the display, and no dedicated display is in
scope. The entry was still marked research pending / TBD.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
2026-09-04 14:51:52 +09:00
mikkeli 262de0a771 Adopt designed front matter: typed, with staleness on plans
Replaces `type: default` — one value across every document, read by nothing.
Types are now reference, guidelines, plan and report; plans carry status and
updated, reports carry date. Convention documented in project-yukart REPOS.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
2026-09-04 14:16:05 +09:00
mikkeli 72f178e254 added display option to bill of materials 2026-08-06 14:08:39 +00:00
mikkeli bf514f78ff Add SIM7600G-H-M.2 (LTE+GNSS) to BOM 2026-08-04 17:08:21 +08:00
mikkeli a548983255 Add PEAK PCAN-USB entry to BOM 2026-08-04 16:21:57 +08:00
mikkeli c785bca71a Move plans and reports under docs/impl/ for cleaner structure 2026-08-04 16:20:24 +08:00
mikkeli efc2623dba Add BOM.md prototype and fix reports path in README 2026-08-04 16:08:31 +08:00
mikkeli bbfe1440aa repo restructure 2026-08-04 16:01:09 +08:00
mikkeli 6813d2f069 add README.md 2026-08-04 07:54:41 +00:00
mikkeli 0b4382f415 initial commit 2026-08-04 13:15:00 +08:00