6aa0d940f6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
120 lines
7.9 KiB
Markdown
120 lines
7.9 KiB
Markdown
---
|
||
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 |
|
||
| **Bitrate** | 500 kbps, measured on the Z27AG OBD port (listen-only by default; see [CAN bitrate plan](impl/plans/CAN-BITRATE.md)) |
|
||
| **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.
|
||
|
||
## Waveshare UPS Power Module (C)
|
||
|
||
[wiki](https://www.waveshare.com/wiki/UPS_Power_Module_(C))
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Purpose** | Keep the Orin running through cranking and short power losses, and give time for a clean shutdown at ignition off |
|
||
| **Input** | 15–19 V DC (Waveshare recommends a 19 V / 2.37 A adapter). ⚠ A PD trigger at the standard 20 V level is above the rated maximum |
|
||
| **Output** | Input voltage when powered (pass-through); battery voltage (9–12.6 V) when not |
|
||
| **Battery** | 3 × 21700 Li-ion in series (not included); charging stops when full and resumes below 12 V |
|
||
| **Monitoring** | INA219 on I²C. On the car unit it is **bus 7 (40-pin header), address `0x41`** |
|
||
| **Holdover (bench, 2026-10-09)** | ≥ 20 s across a supply swap, enough to ride through cranking |
|
||
|
||
### Notes
|
||
|
||
- First read-only check (2026-10-09, on input power, charged): bus 12.34 V, shunt ≈ 0 mV (idle). Chip at power-on defaults (config `0x399f`,
|
||
calibration unprogrammed), so read current from the **shunt-voltage register** (0x01, 10 µV/LSB) rather than the current register.
|
||
- Fed from the ignition-switched cigarette socket via a **15 V PD trigger** (15 V / 3 A, inside the 15–19 V rating). Plan: [car power](impl/plans/POWER.md).
|
||
- Ignition-off shutdown (not built yet): on input loss the battery current turns clearly negative (discharging). A small service watches the
|
||
INA219, waits out a grace period longer than a crank (30–60 s), then runs `systemctl poweroff`, with low battery voltage as a hard backstop.
|
||
The shunt value is unconfirmed; check the schematic before converting shunt mV to amps.
|
||
- No GPIO or shutdown signal on the module; the BOOT button may be needed to wake a battery that stopped outputting (FAQ).
|
||
|
||
## USB camera (IMX662, Sunplus UVC bridge)
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Sensor** | Sony IMX662 per the seller (1/2.8", STARVIS 2, low-light); the USB bridge does not report it |
|
||
| **USB ID** | `1bcf:2d4f` (Sunplus Innovation Technology, "USB Camera 1080P"), USB 2.0 high-speed |
|
||
| **Purpose** | Camera for the Orin: recording, live view on the tablet, later inference (roles open; see project-yukart roadmap, Phase 5) |
|
||
| **Interface** | UVC (`uvcvideo`, `/dev/video0`) + UAC microphone (ALSA card `U1080P`, 48 kHz stereo). In-tree drivers, no setup |
|
||
| **Formats** | MJPEG up to 1920×1080 at 60 fps nominal; YUYV only at low rates (5 fps at 1080p). **No H.264** |
|
||
| **Documentation** | None beyond the seller's listing; facts from the device: [USB camera report](impl/reports/USB-CAMERA.md) |
|
||
|
||
### Notes
|
||
|
||
- Delivered frame rate follows the light: 17–20 fps indoors with auto exposure, full rate with a short fixed exposure.
|
||
- MJPEG is ~245 KB per 1080p frame, ~7.3 MB/s at 30 fps; too much for the tablet link (~5 MB/s) or for recording. The Orin Nano has
|
||
**no hardware video encoder**; software H.264 (`x264enc` ultrafast) costs ~1.3 cores at 19 fps, ~2 at 30.
|
||
- Shares the carrier board's internal USB 2.0 hub with the SIM7600; headroom is ample.
|
||
- UVC controls (exposure, white balance, power-line frequency) reset on re-enumeration; set them when opening the device.
|
||
|
||
## RTC backup battery
|
||
|
||
**Status: optional, low priority.** Battery choice settled (CR2032); footprint/R560 still to verify against NVIDIA's schematic.
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| **Purpose** | Keep the RTC (`rtc0`, `nvvrs-pseq-rtc`) running while the board is unpowered, so the clock is correct at boot without network or GPS |
|
||
| **Carrier board** | P3768 (Orin Nano Developer Kit): pads present, **connector not populated** (needs soldering) |
|
||
| **Connector (per NVIDIA docs, as quoted on the forum)** | Wieson AC2651-0011-003-HH, 2-pin, 1.25 mm pitch. A community-used substitute is Molex 53398-0271 header + 51021-0200 housing |
|
||
| **Battery** | **CR2032** (primary 3 V lithium) in a holder with leads. **Not ML2032 or other rechargeables:** the module datasheet says the backup pin (PMIC_BBAT) does not support charging, so a rechargeable just drains, and it has ~⅓ of the capacity |
|
||
| **Expected life** | RTC draws 12–50 µA while unpowered (~15 µA measured on the forum) → CR2032 (~220 mAh) lasts ~1.5–2 years typical, ~6 months worst case. Drains only while the board has no power |
|
||
| **Extra parts** | Forum reports also populating R560 (0.56 Ω, e.g. Panasonic ERJ2BQFR56X); confirm in the P3768 schematic |
|
||
|
||
### Notes
|
||
|
||
- Without it the clock boots at a stale date (seen 2026-10-08: June 4) until NTP syncs. See the [time sync report](impl/reports/TIME-SYNC.md).
|
||
- Forum sources: [RTC battery on Orin Nano DevKit](https://forums.developer.nvidia.com/t/rtc-battery-on-jetson-orin-nano-developer-kit/296732), [How to add RTC battery](https://forums.developer.nvidia.com/t/how-to-add-rtc-battery-in-jetson-orin-nano/255792).
|
||
- A reported side effect: the battery lead and socket make the case cover sit unevenly.
|
||
- Polarity: one forum post says the positive pad is marked with a white triangle. Confirm with a meter before connecting.
|
||
- Test after fitting: power off fully, wait a few minutes, boot with no network, and check `cat /sys/class/rtc/rtc0/date` (should be today, not a reset date).
|
||
- Low priority: online almost always means NTP within a minute; the gap only matters for offline drives (see the [time sync report](impl/reports/TIME-SYNC.md)).
|