Files
orin-nano-env-setup/docs/BOM.md
T
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

56 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: reference
---
# Bill of Materials
## PEAK-System PCAN-USB
| Field | Value |
|-------|-------|
| **Manufacturer** | PEAK-System Technik GmbH |
| **Model** | PCAN-USB |
| **USB ID** | `0c72:000c` |
| **Purpose** | USB-to-CAN adapter for reading car CAN bus traffic |
| **Interface** | SocketCAN netdev |
| **Default bitrate** | 500 kbps |
| **Driver** | PEAK proprietary driver 9.2.0 (netdev build) — out-of-tree module, must be rebuilt after kernel updates |
### Notes
- The mainline kernel driver `peak_usb` is not compiled into the NVIDIA Tegra kernel (JetPack r36.4), so PEAK's proprietary driver is required.
- Must be built with `NET=NETDEV_SUPPORT` for standard SocketCAN tools (`candump`, `ip link`, etc.).
- The module lives at `/lib/modules/$(uname -r)/misc/pcan.ko` and is loaded via `modprobe pcan`.
- Jetson Orin Nano has a built-in CAN controller (exposed by GPIO pins). Kernel `canN` order is not stable, so both are pinned by udev: onboard → `can_onboard`, PCAN-USB → `can_pcan` ([device naming](impl/reports/DEVICE-NAMING.md)).
## Waveshare SIM7600G-H-M.2
[hat](https://www.waveshare.com/wiki/SIM7600G-H-M2_4G_HAT) [module](https://www.waveshare.com/wiki/SIM7600G-H-M.2)
| Field | Value |
|-------|-------|
| **Manufacturer** | Waveshare (SIMCom SIM7600G-H-M.2 module) |
| **Form factor** | M.2 B KEY |
| **Purpose** | LTE Cat 4 cellular + multi-constellation GNSS (GPS, Beidou, GLONASS, GALILEO, QZSS) |
| **Interface** | USB (ttyUSB* for AT commands/NMEA, QMI `cdc-wdm0` + `wwan0` for data) |
| **Power** | 3V – 4.2V (board rail) |
| **Antennas** | 3× IPEX (LTE main + LTE diversity + GNSS) |
| **Max data rate** | 150 Mbps DL / 50 Mbps UL (LTE Cat 4) |
### Required software
| Package | Purpose |
|---------|---------|
| `gpsd` | Decode NMEA from the GNSS ttyUSB port |
| `ModemManager` + `NetworkManager` | Manage the modem and the LTE data connection (QMI) |
| `qmi_wwan` + `cdc-wdm` kernel modules | Not in the Tegra kernel; built out of tree in `~/infra/qmi_wwan/` |
| `minicom` (or `picocom`) | AT command terminal for module configuration |
### Notes
- The module presents multiple USB serial ports (`/dev/ttyUSB0`–`/dev/ttyUSB4`) — ttyUSB2/3 for AT commands, ttyUSB1 for NMEA GPS data (symlinked as `/dev/sim7600-gps`).
- Default USB composition (PID 9001) is used with QMI; no PID switch needed. PPP dial-up does not work with the povo SIM (network detaches).
- Setup details: [SIM7600 setup report](impl/reports/SIM7600-SETUP.md).
- M.2 B KEY is **not** mechanically compatible with Mini-PCIe.
- Supply voltage should be ~4.0 V for reliable operation.
- DO NOT hot-plug while powered.