d4d5edb2fc
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
13 KiB
13 KiB
type
| 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) |
| 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_usbis not compiled into the NVIDIA Tegra kernel (JetPack r36.4), so PEAK's proprietary driver is required. - Must be built with
NET=NETDEV_SUPPORTfor standard SocketCAN tools (candump,ip link, etc.). - The module lives at
/lib/modules/$(uname -r)/misc/pcan.koand is loaded viamodprobe pcan. - Jetson Orin Nano has a built-in CAN controller (exposed by GPIO pins). Kernel
canNorder is not stable, so both are pinned by udev: onboard →can_onboard, PCAN-USB →can_pcan(device naming).
Waveshare 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.
- 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)
| 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.
- 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 |
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 (
x264encultrafast) 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.
WitMotion WT61 IMU
Status: module lost (2026-10-12). The unit moved from smart-serow shorted and burnt out on first power-up on Dupont wires; cause unknown. Needs a replacement. Everything below still applies to one.
| Field | Value |
|---|---|
| Manufacturer | WitMotion |
| Model | WT61: 6-axis accelerometer + gyroscope, with onboard angle fusion (roll, pitch, yaw) |
| Purpose | Motion data for the recordings: longitudinal and lateral g, yaw rate, road grade |
| Interface | TTL UART on the 40-pin header: UART1, /dev/ttyTHS1 (free: no console or getty on it). The header I²C stays free for other sensors |
| Protocol | 11-byte packets, 0x55 header: accel 0x51, gyro 0x52, angle 0x53, each three int16 values + temperature + checksum. Reference: smart-serow arduino/IMU.md |
| Rate | Planned 115200 baud / 100 Hz (factory default) |
| Power | 3.3 V from header pin 1. Datasheet v24-0429: 3.3–5.5 V, 5 mA working (5 V), 39 µA asleep; data valid ~1 s after power-up |
| Range | ±16 g, ±2000 °/s; roll and yaw ±180°, pitch ±90°. No magnetometer |
| Datasheet | v24-0429: /mnt/wdelem/dropzone/WT61-datasheet-240429.pdf. Older: ~/infra/kb/inbox/engineer/raw/WT61_Datasheet.pdf (raw, not yet in the KB) |
| Module pins (bare module, 12 pads) | 2, 11 VCC · 5, 8 GND · 3 RX · 4 TX · 6 SWIM (programming) · 1, 7, 9, 10, 12 not connected. A breakout board's labels take precedence |
Wiring (40-pin header)
| WT61 | Header pin |
|---|---|
| VCC | 1 (3.3 V) |
| GND | 6 |
| TX | 10 (UART1 RX) |
| RX | 8 (UART1 TX), needed only to send config commands |
| Realign button (optional) | 7 (GPIO09, PAC.06) through the button to ground on 9; 10 kΩ from 7 to 3.3 V (pin 1). Pin to confirm |
Everything sits in header pins 1–10, so one 2×5 connector can carry it. Pins 3/5 (I²C bus 7) carry the UPS monitor.
Notes
- The header is 3.3 V logic and not 5 V tolerant. Powering the module at 3.3 V keeps every signal at 3.3 V. The datasheet only says "TTL level", so if it is ever fed 5 V, first check that its idle TX reads ~3.3 V.
- Power comes from the header's 3.3 V supply pin (1 or 17), a regulated rail on the carrier board. Not from a GPIO: a GPIO pin is a signal and is not meant to power anything.
- The module stores its baud rate and output rate in flash. Leaving smart-serow it is set to 9600 baud / 20 Hz. The reader opens at 9600,
sends
FF AA 63(115200 / 100 Hz), and reopens at 115200. Commands at the wrong baud are ignored, so configuring on every start is safe. - Mounting mode:
FF AA 65flat,FF AA 66upright. Set it once the car mounting is known. - Do not zero the accelerometer at startup the way smart-serow's
imu_calibrate()does: that removes gravity, which tilt and grade need. - The user needs the
dialoutgroup to open/dev/ttyTHS1. - The temperature field is the chip's own temperature, not the air's:
raw / 340 + 36.53°C per the datasheet (smart-serow'sIMU.mdsays 36.25). - The gyro zeroes itself at power-up, and yaw resets to 0. The module must be still while it powers up; it is, if it powers with the Orin at ignition and the car is parked.
- Yaw drifts. With no magnetometer, yaw is integrated gyro and holds only over short spans; use yaw rate, not absolute yaw. Roll and pitch are referenced to gravity and do not drift.
- Output is low-pass filtered at 10 Hz by default, even at 100 Hz output. Fine for vehicle motion, but it smooths out bumps and vibration. A gyro rate under 0.122 °/s reads as 0 (static threshold). Both are set only from WitMotion's PC software; there is no serial command for them.
- Realign button parts (optional, not fitted): one momentary push button (normally open) and one 10 kΩ resistor. The resistor pulls pin 7 up to 3.3 V, so the pin reads 1, and a press grounds it to 0. Realigning starts from the tablet app first; the button adds a way that works without the tablet, triggering the same command.
- Realign: a press levels the frame to gravity (the mounting rotation, from averaged accelerometer readings) and sends
FF AA 52to zero yaw. The result is stored on disk, not redone every drive. Refuse while moving (gyro or GPS speed); record raw data plus a realign event, so a bad alignment can be corrected afterwards. Align on level ground: a slope becomes part of the mount. - I²C mode (
FF AA 62) exposes the raw MPU6050 only (no angles) and needs 4.7 kΩ pull-ups. Not used; v24-0429 lists SDA/SCL as not connected. - No reverse-polarity protection is documented. A 4-way Dupont housing put on the wrong way round swaps VCC and GND. Check VCC and GND with a meter before first power-up.
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.
- Forum sources: RTC battery on Orin Nano DevKit, How to add RTC battery.
- 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).