BOM: second WT61 on a CP2102 at 115200/100 Hz; it speaks the register protocol; no PL2303 driver in JetPack
/ crosscheck (push) Successful in 0s
/ crosscheck (push) Successful in 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
+14
-5
@@ -132,7 +132,7 @@ All ports are taken.
|
||||
| **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) |
|
||||
| **Rate** | **115200 baud / 100 Hz**, set 2026-10-14 on the second module (it came at 9600 / 10 Hz); 100 packets/s of each type, no checksum errors |
|
||||
| **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) |
|
||||
@@ -166,11 +166,20 @@ Header facts (carrier board spec SP-11324-001 v1.3, Table 3-3 and 5-3; raw copy
|
||||
"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 65` flat, `FF AA 66` upright. Set it once the car mounting is known.
|
||||
- **The second module (2026-10-14) speaks WitMotion's newer register protocol, not the 3-byte commands** in smart-serow's `IMU.md`:
|
||||
it ignored `FF AA 63`. It came at 9600 baud / 10 Hz (a rate the datasheet does not list). Commands are 5 bytes,
|
||||
`FF AA <register> <low> <high>`, each run as **unlock `FF AA 69 88 B5`, the write, save `FF AA 00 00 00`**, all at the module's
|
||||
current baud. Done on the car Orin, checking after each step:
|
||||
1. at 9600: unlock, `FF AA 04 06 00` (BAUD = 6, 115200), save → it answered at 115200 at once, still 10 Hz;
|
||||
2. at 115200: unlock, `FF AA 03 09 00` (RRATE = 9, 100 Hz), save → 100 packets/s of each type.
|
||||
Stored in the module's flash. Back to 9600: BAUD = 2. The register map is WitMotion's general one (its "WT61 Protocol" document, linked
|
||||
from the datasheet, is not in the KB); confirmed here only by the module's behaviour.
|
||||
- Mounting mode (`FF AA 65` / `66` on the old protocol): not needed; the reader rotates into the car's frame itself.
|
||||
- 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 serial device belongs to `dialout` (the header's `/dev/ttyTHS1` and USB adapters alike); a service gets it with
|
||||
`SupplementaryGroups=dialout`, not by adding users to the group.
|
||||
- **USB-UART adapter:** JetPack's kernel has drivers for CP210x and FTDI only (no PL2303, no CH341). In use: a CP2102 (`10c4:ea60`,
|
||||
generic serial `0001`, so it can only be told apart by port). A PL2303GC (`067b:23a3`) enumerates but gets no driver.
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user