diff --git a/docs/wiring-diagram.md b/docs/wiring-diagram.md index 61736f7..b5fb999 100644 --- a/docs/wiring-diagram.md +++ b/docs/wiring-diagram.md @@ -10,9 +10,11 @@ │ USB-C ──── STM32 CDC (/dev/stm32-bridge, 921600 baud) │ │ USB-A1 ─── RealSense D435i (USB 3.1) │ │ USB-A2 ─── RPLIDAR A1M8 (via CP2102 adapter, 115200) │ +│ USB-C* ─── SIM7600A 4G/LTE modem (ttyUSB0-2, AT cmds + PPP) │ │ CSI-A ──── ArduCam adapter → 2× IMX219 (front + left) │ │ CSI-B ──── ArduCam adapter → 2× IMX219 (rear + right) │ │ M.2 ───── 1TB NVMe SSD │ +│ 40-pin ─── ReSpeaker 2-Mic HAT (I2S + I2C, WM8960 codec) │ │ Pin 8 ──┐ │ │ Pin 10 ─┤ UART fallback to FC (ttyTHS0, 921600) │ │ Pin 6 ──┘ GND │ @@ -149,6 +151,59 @@ BATTERY (36V) ──┬── Hoverboard ESC (36V direct) | USB CDC | USB-C | 921600 | Jetson primary | `/dev/stm32-bridge` | +### 7. ReSpeaker 2-Mic HAT (on Orin 40-pin header) + +| Orin Pin | Signal | Function | +|----------|--------|----------| +| Pin 12 (GPIO 18) | I2S BCLK | Audio bit clock | +| Pin 35 (GPIO 19) | I2S LRCLK | Audio left/right clock | +| Pin 38 (GPIO 20) | I2S DIN | Audio data in (from mics) | +| Pin 40 (GPIO 21) | I2S DOUT | Audio data out (to speaker) | +| Pin 3 (GPIO 2) | I2C SDA | WM8960 codec control (i2c-7) | +| Pin 5 (GPIO 3) | I2C SCL | WM8960 codec control (i2c-7) | +| Pin 32 (GPIO 12) | GPIO | Button input | +| Pin 11 (GPIO 17) | GPIO | RGB LED (APA102 data) | +| Pin 2, 4 | 5V | Power | +| Pin 6, 9 | GND | Ground | + +- **Codec:** Wolfson WM8960 (I2C addr 0x1A) +- **Mics:** 2× MEMS (left + right) — basic stereo / sound localization +- **Speaker:** 3W class-D amp output (JST connector) +- **Headset:** 3.5mm TRRS jack +- **Requires:** WM8960 device tree overlay for Jetson (community port) +- **Use:** Voice commands (faster-whisper), wake word (openWakeWord), audio feedback, status announcements + +### 8. SIM7600A 4G/LTE HAT (via USB) + +| Connection | Detail | +|-----------|--------| +| Interface | USB (micro-B on HAT → USB-A/C on Orin) | +| Device nodes | `/dev/ttyUSB0` (AT), `/dev/ttyUSB1` (PPP/data), `/dev/ttyUSB2` (GPS NMEA) | +| Power | 5V from USB or separate 5V supply (peak 2A during TX) | +| SIM | Nano-SIM slot on HAT | +| Antenna | 4G LTE + GPS/GNSS (external SMA antennas — mount high on chassis) | + +- **Data:** PPP or QMI for internet connectivity +- **GPS/GNSS:** Built-in receiver, NMEA sentences on ttyUSB2 — outdoor positioning +- **AT commands:** `AT+CGPS=1` (enable GPS), `AT+CGPSINFO` (get fix) +- **Connected via USB** (not 40-pin) — avoids UART conflict with FC fallback, flexible antenna placement +- **Use:** Remote telemetry, 4G connectivity outdoors, GPS positioning, remote SSH/control + +### 9. Power Budget (USB) + +| Device | Interface | Power Draw | +|--------|-----------|------------| +| STM32 FC (CDC) | USB-C | ~0.5W (data only, FC on 5V bus) | +| RealSense D435i | USB-A | ~1.5W (3.5W peak) | +| RPLIDAR A1M8 | USB-A | ~2.6W (motor on) | +| SIM7600A | USB | ~1W idle, 3W TX peak | +| ReSpeaker HAT | 40-pin | ~0.5W | +| **Total USB** | | **~6W typical, ~10W peak** | + +Orin Nano Super delivers up to 25W — USB peripherals are well within budget. + +--- + ## Data Flow ``` @@ -178,6 +233,13 @@ BATTERY (36V) ──┬── Hoverboard ESC (36V direct) │ │ │ │ │ L motor R motor│ │ SLAM / Nav2 / AI │ │ 🛞 🛞 │ │ Person following │ -└────────────────┘ │ cmd_vel → FC │ - └───────────────────┘ +└────────────────┘ │ Voice commands │ + │ 4G telemetry │ + └──┬──────────┬───────┘ + │ │ + ┌──────────▼─┐ ┌────▼──────────┐ + │ ReSpeaker │ │ SIM7600A │ + │ 2-Mic HAT │ │ 4G/LTE + GPS │ + │ 🎤 🔊 │ │ 📡 🛰️ │ + └────────────┘ └───────────────┘ ```