From c05585c9b015b0a52771778e11b43b98f60fa2d8 Mon Sep 17 00:00:00 2001 From: Mikkeli Date: Sun, 11 Oct 2026 23:59:28 +0900 Subject: [PATCH] BOM: WT61 facts from the datasheet (current, filtering, power-up calibration, yaw drift) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz --- docs/BOM.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/docs/BOM.md b/docs/BOM.md index cdd15bf..ae27f91 100644 --- a/docs/BOM.md +++ b/docs/BOM.md @@ -108,7 +108,9 @@ type: reference | **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 | +| **Power** | 3.3 V from header pin 1. Datasheet: 3.3–5 V input through an onboard regulator, **< 10 mA** | +| **Range** | ±16 g, ±2000 °/s; roll and yaw ±180°, pitch ±90°. No magnetometer | +| **Datasheet** | `~/infra/kb/inbox/engineer/raw/WT61_Datasheet.pdf` (raw, not yet in the KB) | ### Wiring (40-pin header) @@ -121,8 +123,8 @@ type: reference ### 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. +- **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, @@ -130,7 +132,16 @@ type: reference - 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. +- The temperature field is the chip's own temperature, not the air's: `raw / 340 + 36.53` °C per the datasheet (smart-serow's `IMU.md` + says 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. +- I²C mode (`FF AA 62`) exposes the raw MPU6050 only (no angles) and needs 4.7 kΩ pull-ups. Not used. ## RTC backup battery