{
  "added_at": "2026-11-08",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "DJI RC Joystick Bridge reconstructs the stick-value exchange of a locked DJI RM-series controller over its DUML USB interface. The Python client polls command set 0x06, command 0xf5, decodes four little-endian axes from the payload and exposes them as a Linux uinput gamepad.",
  "description_zh": "DJI RC Joystick Bridge 重建锁定状态下 DJI RM 系列控制器通过 DUML USB 接口发送的摇杆数据。Python 客户端轮询命令集 0x06、命令 0xf5，从载荷解析四个小端轴值，并通过 Linux uinput 呈现为游戏手柄。",
  "entry_url": "https://awesomerea.org/resources/dji-rc-joystick-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/dji-rc-joystick-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/gregszero/dji-rc-joystick/blob/fc0dbff0988bd8ae9386f13cecded9b7073ba1bd/README.md",
  "group": "cases",
  "id": "dji-rc-joystick-case",
  "json_url": "https://awesomerea.org/resources/dji-rc-joystick-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/dji-rc-joystick-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/dji-rc-joystick-case/index.md",
  "name": "DJI RC: reconstructing joystick values from DUML USB messages",
  "name_zh": "DJI RC：从 DUML USB 消息重建摇杆数据",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "attribution",
    "license"
  ],
  "requirements": [
    "Linux, Python 3, libusb, uinput access and a powered DJI RM-series controller with USB ID 2ca3:1023 are required.",
    "DUML framing and CRC routines are derived from dji-firmware-tools.",
    "GPL-3.0 license."
  ],
  "requirements_zh": [
    "需要 Linux、Python 3、libusb、uinput 访问权限，以及已开机且 USB ID 为 2ca3:1023 的 DJI RM 系列控制器。",
    "DUML 封帧与 CRC 例程源自 dji-firmware-tools。",
    "GPL-3.0 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/gregszero/dji-rc-joystick",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
