RC G1タクチルグローブ <unk> データプロトコル & パイリング参照
バイナリーフレームフォーマット,ATコマンドセット,LEDステートテーブル,およびRC G1タクチルグローブシリアル/ブルートゥースプロトコルのトラブルシューティング.
このページは,自分の読書を書き込むとき,またはカスタマイズされたデータパイプラインにG1を統合するときに使用します.このページはバイナリーフレームフォーマット,シリアルチャネル上のATコマンドセット,すべてのLED状態,および最も一般的な故障モードをカバーします.接続して記録する必要がある場合, [Windows]
参考資料更新 2026年5月 困難: 進歩
1 ハードウェアアーキテクチャ
G1部署には5つの構成要素があります.単手袋装置には最初の4つのみ必要であり,USBハブは多手袋 (LH + RH) のセットアップに用いる.
- ** 繊維センサー配列.** 16×16論理マトリックスに配置された162点のピエゾレスシスティブセンサー (256 ADCスロット,そのうち162つは物理的にセンサーにケーブルをつけている.無線スロットはゼロに近いのでソフトウェアでマスクできる)
- データ取得モジュール (Aボード). ESP32ベースのBluetooth MCU,統合された300mAh/3.7Vバッテリー,充電/データ/ファームウェアのための USB-C,ハードウェアタクチルボタン,ステータスLED. 50 × 32 × 15.5mm;6.6gボード + ~15gバッテリー.
- Bluetooth USB受信機 (dongle). 1:1 単一のAボードとペア. USB-A, 66.1 × 23.2 × 13 mm. 選択式
ケーブルのみ操作は完全にサポートされています. - USB 3.0-to-Type-Cケーブル (2 m). 連続接続 921 600 bps デフォルトで,オプション 3 000 000 bps高速モード.
- USBハブ. 多手袋のリグ (例えば双手LH+RH)
データ流:
+--------------------+ +--------------------+ +--------+
| Fabric sensors | --> | A-board ADC | --+--> | Host |
| (162 / 16x16) | | (ESP32 + IMU) | | | |
+--------------------+ +--------------------+ | +--------+
| |
| BLE 30 Hz | USB-C 100 Hz
v | (921600 / 3M)
+--------------------+ |
| BT USB dongle | -+
| (CH340 endpoint) |
+--------------------+
2. シリアル設定
- デフォルトポート設定: 921 600 baud, 8N1,流量制御なし
- オプション高速モード: 3 000 000 baud
固有ソフトウェア側設定変更,連絡先サポートが必要です. - データの取得モジュール (ワイヤレスで接続された場合) とブルーテース・ドングルの両方にあるUSBチップ: CH340 (WCH USB ID
T4 ). - Linux: tree内カーネルドライバー
T5 . macOS: install T6 . Windows: install T7 .
§3 に記述された同じバイナリプロトコルは,ワイヤレスまたはBT-dongle シリアルパスで動作します.
3.バイナリーフレーム形式
センサーの読み取りは,合計256の圧力値とIMUデータの16バイトを含む2つのパケットとして提供されます.各パケットは,常時4バイトの同期ヘッダー
Byte layout for one sensor pair (packet 1 + packet 2)
| Offset | Length | Field | Description |
|---|---|---|---|
| Packet 1 (sequence = 0x01) — 134 bytes total | |||
0–3 |
4 B | Sync header | Constant AA 55 03 99 |
4 |
1 B | Sequence | 0x01 = first half |
5 |
1 B | Sensor type | 0x01 LH, 0x02 RH, 0x03 LF, 0x04 RF, 0x05 WB |
6–133 |
128 B | Pressure payload A | First 128 of 256 raw pressure values, 8-bit unsigned ADC (0–255) |
| Packet 2 (sequence = 0x02) — 150 bytes total | |||
0–3 |
4 B | Sync header | Constant AA 55 03 99 |
4 |
1 B | Sequence | 0x02 = second half |
5 |
1 B | Sensor type | Same value as packet 1 |
6–133 |
128 B | Pressure payload B | Last 128 of 256 raw pressure values |
134–149 |
16 B | IMU quaternion | 4 little-endian IEEE-754 floats: w, x, y, z |
センサー型ID
| ID | Code | Device class |
|---|---|---|
0x01 |
LH | Left Hand |
0x02 |
RH | Right Hand |
0x03 |
LF | Left Foot |
0x04 |
RF | Right Foot |
0x05 |
WB | Whole Body |
作業したヘックスキャプチャ
テーブルの上に座っている左手デバイスからワイヤから抜けた原始バイト (読みやすく切り離されている):
[14:04:29.427] AA 55 03 99 01 01 00 00 00 00 00 00 00 00 00 00 ... (128 B payload)
[14:04:29.428] AA 55 03 99 02 01 00 00 ... 00 62 F3 00 00 00 ... (144 B payload, last 16 B = IMU quaternion)
参照解析器 (Python)
最小解析器で2つの原始パケットを取り出し センサー ID,256細胞圧縮ベクトル,クアテリアンを返します Linuxの設定ガイドが使っているものの一模です
import struct, numpy as np
def parse_pair(packet1: bytes, packet2: bytes):
assert packet1[:4] == packet2[:4] == b"\xAA\x55\x03\x99"
assert packet1[4] == 0x01 and packet2[4] == 0x02
sensor_id = packet1[5] # same on both halves
pressure = np.frombuffer(packet1[6:134] + packet2[6:134], dtype=np.uint8) # 256 pts
qw, qx, qy, qz = struct.unpack("<ffff", packet2[134:150])
return sensor_id, pressure, (qw, qx, qy, qz)
** フレームリング提示:** 騒音なUSBリンクで,固定オフセットを信頼する代わりに4バイトの同期ヘッダをスキャンしてください.前回の順序-1なしでシーケンス-2パケットを受け取ると,それを落として再同期します.
4.論理チャンネル地図
配線感知点162は16×16格子 (256細胞,行長1
試料速度は: 100 Hz ワイヤレスまたは 30 Hz Bluetooth. 単点動態範囲: 0
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
| 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
| 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |
| 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
| 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
| 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
| 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 |
| 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 |
| 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 |
| 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 |
| 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 |
| 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 |
| 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 |
| 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 |
| 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 |
5. AT コマンドセット (ブルートゥースペアリング)
配線は,BT dongle のシリアルポートに921 600 baudで終了する
| Command | Response | Purpose |
|---|---|---|
AT |
OK |
Sanity check the serial link. |
AT+SCAN=1 |
OK, then one +SCAN=<i>,<MAC>,<RSSI>,<adv-len>,<name_MAC> line per discovered device |
Start a BLE scan; look for lines containing JQ-LH, JQ-RH, JQ-LF, JQ-RF, or JQ-WB. |
AT+CONN=<MAC> |
OK, then binary sensor frames begin streaming |
Open a connection to the discovered MAC. Pairing is persistent across power cycles. |
AT+DISCONN |
OK |
Drop the current link. |
AT+VER |
firmware version string | For support reports. |
実施例
> AT+SCAN=1
< OK
< +SCAN=1, 8277169C745A, -1, 18, Redmi Watch 3 745A
< +SCAN=2, 3C8A1F2E9A36, -1, 23, JQ-RH_3C:8A:1F:2E:9A:36 ← the device we want
< +SCAN=3, 0,88F3079C11B4, -1,9, KeepB4-B4
> AT+CONN=3C8A1F2E9A361
< OK
< (binary sensor frames begin streaming ...)
識別子注:
6. LED基準国家
データ取得モジュール ボタン機能
| Action | Effect |
|---|---|
| Short press while in standby | Wake device and run IMU calibration. Red LED on briefly, then blue flashes while advertising. |
| Short press while operational | Trigger an IMU re-calibration. Keep the module flat and still for ~2 s. |
| Long press | Power off. Red LED on solid until the device is off. |
データの取得モジュール 状態 LED色
| Color | Meaning | Battery |
|---|---|---|
| Solid Blue | Bluetooth connected, high battery | > 3.3 V |
| Solid Green | Bluetooth connected, medium battery | 3.1 – 3.3 V |
| Solid Red | Bluetooth connected, low battery (charge soon) | ≤ 3.1 V |
| Red flashing | Bluetooth disconnected / advertising | — |
| Blue flashing | Pairing mode / advertising | — |
| Solid White | Charging via USB-C | — |
| LED off | Standby (auto-entered after 1 min of no pressure change — press button to wake) | — |
ブルーツドングル LED
| State | Meaning |
|---|---|
| Red flashing | Not connected to any device. |
| Red + Blue both solid | Connected to a paired device. |
| Red solid only | Communication abnormal. Unplug and replug the dongle to recover. |
7. 再配合 (手袋がを失った場合)
- データを収集するモジュールを電動サイクルにします. 赤いまで長く押して,広告を出すために短く押します (青く閃く).
- ロープをスキャンの上に 接続する
- ホストのシリアルポートを921 600 baudでドングルに開く
T57 , T58 ,USBドライブに送信されたSSCOMユーティリティ,またはCompanion Appを使用します. T59 を実行します. T60 / T61 / などで終了する行から MAC をコピーします. T62 を実行します. T63 にバイナリーフレームが続くのは,あなたが ペアされていることを意味します.リンクは持続的です. 将来の電源サイクルの後,モジュールまたはドングルを交換しない限り,再配合する必要はありません.
8. 誤差解決のシート
| Symptom | Resolution |
|---|---|
| Module won’t power on | Battery flat. Charge for 10 min via USB-C (solid white LED), then retry the button. |
LED red-flashing forever after AT+CONN |
The MAC isn’t a G1 device (you copied the wrong line from AT+SCAN=1). Re-scan and look for JQ-LH/RH/LF/RF/WB. |
| Stream starts and stops every minute | 1-minute no-pressure standby has kicked in. Bend a finger to keep traffic flowing, or short-press the wake button. |
四元数 = (NaN, NaN, NaN, NaN) |
IMU lost calibration. Lay the module flat on a still surface and short-press the button to re-calibrate (takes ~2 s). |
Pressure values all 255 |
Cable is reversed (TX/RX swapped) on a custom harness, or you’re reading at the wrong baud. Reset to 921 600. |
| Dongle LED solid red | Communication abnormal. Unplug and replug the dongle. |
| Companion App activation fails | Disable VPN / corporate proxy and retry. |
9.仕様速報
| Sensing | |
| Sensing points per hand | 162 |
|---|---|
| Resolution | 4 × 6 mm |
| Sensing area | 179 × 145 mm (±3%) |
| Max single-point load | 350 N |
| Accuracy | 0.01 N |
| 再現性 | ±8% |
| Response time | < 0.2 ms |
| Durability | 200 000 cycles @ 3 MPa (automotive-grade) |
| Physical | |
| Ingress rating | IP21 |
| Weight per glove | 35.4 g |
| Minimum fold radius | < 0.2 mm |
| Streaming | |
| Sample rate | 100 Hz wired / 30 Hz Bluetooth (customizable ≤ 600 Hz) |
| Baud rate | 921 600 (default); 3 000 000 high-speed |
| Power | |
| Operating voltage | 3.5 – 5.0 V |
| Operating current | 48 mA |
| Bluetooth battery life | 3.75 h active |
| Standby | 1 week |
| Environment | |
| Operating temperature | −20 °C to 60 °C (textile sensor) / −25 °C to 85 °C (PCB) |
| Operating humidity | < 90% RH, non-condensing |
| IMU | |
| Part | TDK InvenSense ICM-42688 |
| ジャイロスコープ | 3-axis, ±2000 °/s |
| 加速度計 | 3-axis, ±16 g |
| ADC | 16-bit |
| Interface | I²C up to 1 MHz / SPI 24 MHz / I3C 12.5 MHz |







