Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ce4eaa1aaf | |||
| c395d4e3b0 | |||
| f05fda71ee | |||
| d8c40eb9ed |
@@ -32,10 +32,11 @@ Planned repositories and the reasoning behind the split are described in
|
|||||||
|
|
||||||
| Part | Role |
|
| Part | Role |
|
||||||
|---|---|
|
|---|---|
|
||||||
| NVIDIA Jetson Orin Nano Super (`mikkeli-orin-nano-2`) | Main compute, JetPack r36.4 / Ubuntu 22.04 |
|
| NVIDIA Jetson Orin Nano Super (`mikkeli-orin-nano`) | Car unit: main compute, JetPack r36.4 / Ubuntu 22.04 |
|
||||||
| PEAK PCAN-USB | Car CAN bus access (`can1`, 500 kbps) |
|
| NVIDIA Jetson Orin Nano Super (`mikkeli-orin-nano-2`) | Development unit: builds, CI, bench (see [REPOS](docs/REPOS.md)) |
|
||||||
| Onboard MTTCan | Second CAN interface (`can0`) |
|
| PEAK PCAN-USB | Car CAN bus access (`can_pcan`, 500 kbps) |
|
||||||
| Waveshare SIM7600G-H-M.2 | LTE Cat 4 + GNSS |
|
| Onboard MTTCan | Second CAN interface (`can_onboard`) |
|
||||||
|
| Waveshare SIM7600G-H-M.2 | LTE Cat 4 (povo, fallback uplink below WiFi/Ethernet) + GNSS |
|
||||||
|
|
||||||
Details and rationale live in the environment repo's
|
Details and rationale live in the environment repo's
|
||||||
[bill of materials](gitea:yukart/orin-nano-env-setup).
|
[bill of materials](gitea:yukart/orin-nano-env-setup).
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ rest down.
|
|||||||
## Shape
|
## Shape
|
||||||
|
|
||||||
```
|
```
|
||||||
CAN (can1) ──▶ can-bridge ──┐
|
CAN ──▶ can-bridge ──┐
|
||||||
OBD-II ──▶ obd-poller ─┤
|
OBD-II ──▶ obd-poller ─┤
|
||||||
GNSS ──▶ gnss ├──▶ message bus ──┬──▶ recorder (disk)
|
GNSS ──▶ gnss ├──▶ message bus ──┬──▶ recorder (disk)
|
||||||
camera ──▶ vision* ─┘ ├──▶ hud (local video out)
|
camera ──▶ vision* ─┘ ├──▶ hud (local video out)
|
||||||
@@ -84,6 +84,8 @@ Payloads: a self-describing JSON envelope for decoded signals; compact binary fo
|
|||||||
Every envelope carries **two clocks**. `monotonic` is authoritative for ordering
|
Every envelope carries **two clocks**. `monotonic` is authoritative for ordering
|
||||||
and intervals; `timestamp` is the absolute reference and may step, since the car
|
and intervals; `timestamp` is the absolute reference and may step, since the car
|
||||||
boots without network and NTP corrects the clock once LTE connects mid-drive.
|
boots without network and NTP corrects the clock once LTE connects mid-drive.
|
||||||
|
The car unit has no RTC battery, so until then the clock sits at roughly the
|
||||||
|
last shutdown time — offset by however long the car was parked.
|
||||||
|
|
||||||
Topic names, payload schemas and the signal registry live in
|
Topic names, payload schemas and the signal registry live in
|
||||||
[contracts](gitea:yukart/contracts).
|
[contracts](gitea:yukart/contracts).
|
||||||
@@ -259,10 +261,11 @@ They are never committed. `tool-mapmint` holds the scripts that fetch and build
|
|||||||
them, plus a report of each build's provenance; `svc-nav` consumes the output. The
|
them, plus a report of each build's provenance; `svc-nav` consumes the output. The
|
||||||
artifacts themselves live outside git and never touch the workstation-side repo.
|
artifacts themselves live outside git and never touch the workstation-side repo.
|
||||||
|
|
||||||
They reach the car by `rsync` **over the LAN only, never over LTE** — the IoT SIM
|
They reach the car by `rsync` **over the LAN only, never over LTE** — the metered
|
||||||
is not a sensible transport for a multi-gigabyte tile set. Gate the sync on a
|
povo SIM is not a sensible transport for a multi-gigabyte tile set. Gate the sync on a
|
||||||
reachable LAN target rather than on an SSID, so the check validates the thing it
|
reachable LAN target rather than on an SSID, so the check validates the thing it
|
||||||
actually needs, and treat NetworkManager's metered flag as a second guard.
|
actually needs, and treat NetworkManager's metered flag as a second guard (set on the `povo`
|
||||||
|
connection).
|
||||||
Cadence is quarterly or on annoyance; road geometry does not move fast enough to
|
Cadence is quarterly or on annoyance; road geometry does not move fast enough to
|
||||||
justify anything more.
|
justify anything more.
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -153,8 +153,12 @@ Two Orin Nanos, and they have different jobs:
|
|||||||
|
|
||||||
| Unit | Role |
|
| Unit | Role |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Development Orin | Build, CI runner, bench testing. Always powered, on the LAN |
|
| Development Orin (`mikkeli-orin-nano-2`) | Build, CI runner, bench testing. Always powered, on the LAN |
|
||||||
| Car Orin | Deployment target only |
|
| Car Orin (`mikkeli-orin-nano`) | Deployment target only |
|
||||||
|
|
||||||
|
The SIM7600 LTE/GNSS hat lives in the car unit only — its custom enclosure doesn't
|
||||||
|
move between units. Anything touching the modem or gpsd is tested on the car unit;
|
||||||
|
on the development unit, `gnss` runs against its own mock input (decision 19).
|
||||||
|
|
||||||
⚠ **The guarantee is version parity, not architecture.** An aarch64 binary built
|
⚠ **The guarantee is version parity, not architecture.** An aarch64 binary built
|
||||||
on a newer userland still fails to load on an older one. A JetPack or Ubuntu
|
on a newer userland still fails to load on an older one. A JetPack or Ubuntu
|
||||||
|
|||||||
+14
-6
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
type: plan
|
type: plan
|
||||||
status: active
|
status: active
|
||||||
updated: 2026-09-04
|
updated: 2026-10-08
|
||||||
---
|
---
|
||||||
# Roadmap
|
# Roadmap
|
||||||
|
|
||||||
@@ -12,11 +12,19 @@ something demonstrable in the car.
|
|||||||
|
|
||||||
Getting the Jetson to see the hardware at all.
|
Getting the Jetson to see the hardware at all.
|
||||||
|
|
||||||
- [x] PCAN-USB working as SocketCAN `can1` (out-of-tree `pcan.ko`, netdev build)
|
- [x] PCAN-USB working as SocketCAN (out-of-tree `pcan.ko`, netdev build)
|
||||||
|
- [x] Stable CAN names by udev: `can_pcan`, `can_onboard` — `canN` order raced at boot
|
||||||
- [x] SIM7600G-H-M.2 specified and documented
|
- [x] SIM7600G-H-M.2 specified and documented
|
||||||
- [ ] SIM7600 brought up: LTE data path and GNSS via gpsd
|
- [x] SIM7600 LTE data path: QMI (self-built `qmi_wwan`), povo, metered, ranked
|
||||||
- [ ] Kernel-update procedure for the out-of-tree PCAN module — it does not
|
below Ethernet/WiFi; failover tested, Tailscale stays reachable over LTE
|
||||||
survive kernel upgrades and will break silently
|
- [ ] SIM7600 GNSS via gpsd — pipeline up (`/dev/sim7600-gps`), **no fix yet**;
|
||||||
|
needs an open-sky test
|
||||||
|
- [x] Kernel-update procedure for the out-of-tree modules (`pcan`, `qmi_wwan`) —
|
||||||
|
documented, sources kept in `~/infra`; still manual, and breaks silently
|
||||||
|
if forgotten
|
||||||
|
- [x] Network time pinned to NICT; timezone `Asia/Tokyo`
|
||||||
|
- [ ] Optional: RTC backup battery (CR2032) — without it the clock boots stale
|
||||||
|
until NTP or GPS corrects it
|
||||||
- [ ] Power and mounting in the car: clean shutdown on ignition off
|
- [ ] Power and mounting in the car: clean shutdown on ignition off
|
||||||
|
|
||||||
Tracked in [orin-nano-env-setup](gitea:yukart/orin-nano-env-setup).
|
Tracked in [orin-nano-env-setup](gitea:yukart/orin-nano-env-setup).
|
||||||
@@ -79,7 +87,7 @@ and `tool-mapmint` (artifact builds).
|
|||||||
- [ ] Pull a Japan basemap extract from the Protomaps daily build with
|
- [ ] Pull a Japan basemap extract from the Protomaps daily build with
|
||||||
`go-pmtiles`; static-serve it, with `localIdeographFontFamily` set for CJK
|
`go-pmtiles`; static-serve it, with `localIdeographFontFamily` set for CJK
|
||||||
- [ ] MapLibre page rendering the basemap from a replayed GNSS trace
|
- [ ] MapLibre page rendering the basemap from a replayed GNSS trace
|
||||||
- [ ] Moving map live in the car — **blocked on gpsd in Phase 0**
|
- [ ] Moving map live in the car — **blocked on a GNSS fix in Phase 0**
|
||||||
- [ ] Meili map matching over recorded sessions, as Phase 2 ground truth
|
- [ ] Meili map matching over recorded sessions, as Phase 2 ground truth
|
||||||
- [ ] Routing and turn-by-turn guidance onto `yukart/nav/guidance`
|
- [ ] Routing and turn-by-turn guidance onto `yukart/nav/guidance`
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user