Skip to content

Instantly share code, notes, and snippets.

@GOROman
Created August 7, 2026 07:19
Show Gist options
  • Select an option

  • Save GOROman/d37bf7ed7e1d51072bb31dbe9ad0ccff to your computer and use it in GitHub Desktop.

Select an option

Save GOROman/d37bf7ed7e1d51072bb31dbe9ad0ccff to your computer and use it in GitHub Desktop.
Codex Micro Device Status・Battery解析

Codex Micro Device Status・Battery解析

解析日: 2026-08-07

device.status

CodexアプリはVendor JSON-RPCでFirmware、Profile、Layer、バッテリーをまとめて取得する。

リクエスト:

{"method":"device.status","params":null,"id":123}

応答:

{
  "result": {
    "version": "v0.6.1",
    "profile_index": 0,
    "layer_index": 1,
    "battery": 100,
    "is_charging": false
  },
  "id": 123,
  "method": "device.status"
}
フィールド 意味
version string Firmware version
profile_index number 選択Profile、0始まり
layer_index number 選択Layer、0始まり
battery number 0...100
is_charging boolean 充電中ならtrue

Codexアプリは接続時に取得し、接続中はおよそ60秒間隔で更新する。入力直後はHID処理を優先するため、Status更新を短時間延期する。

sys.version

リクエスト:

{"method":"sys.version","params":null,"id":124}

応答:

{"result":{"version":"v0.6.1"},"id":124,"method":"sys.version"}

Battery Serviceとの併用

標準BLE Battery Service:

Service Characteristic
0x180F Battery Level 0x2A19 1 byte、0...100

Codexアプリとの互換性ではdevice.status.result.batteryが重要。OSのBluetooth画面にも残量を出したい場合は0x2A19も実装する。

よくある不具合

  • batteryを文字列で返す: 型検証で失敗する
  • is_charging0/1で返す: booleanではないため失敗する
  • 応答に元のidがない: Timeoutする
  • 改行なしでInput Reportを返す: HID受信バッファが完了しない場合がある
  • device.statusへ応答しない: Codex上で未検出または接続エラーになりやすい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment