From f0e5751b30918f87e3074d39a0391951e48cfab9 Mon Sep 17 00:00:00 2001 From: Mikkeli Date: Sun, 11 Oct 2026 23:55:28 +0900 Subject: [PATCH] BOM: WitMotion WT61 IMU (planned), on the header UART at 3.3 V Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz --- docs/BOM.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/BOM.md b/docs/BOM.md index 5ee2dc8..cdd15bf 100644 --- a/docs/BOM.md +++ b/docs/BOM.md @@ -96,6 +96,42 @@ type: reference - 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: planned.** Moving from the smart-serow motorcycle unit, where an Arduino reads it; not fitted yet. + +| 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; the module accepts 3.3–5 V | + +### 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 | + +### 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. 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 65` flat, `FF AA 66` upright. 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 `dialout` group to open `/dev/ttyTHS1`. +- The temperature field is the chip's own temperature, not the air's. + ## RTC backup battery **Status: optional, low priority.** Battery choice settled (CR2032); footprint/R560 still to verify against NVIDIA's schematic.