{
  "added_at": "2026-11-06",
  "additional_evidence_urls": [
    "https://github.com/aklto/PyEilik/blob/b1bf7ea6f29b939cddee66ffadd498ad32d02aa0/PROTOCOL.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "PyEilik implements control of an Eilik desk robot over a recovered USB serial protocol. Its C library and Python wrapper move four servos, read and update the 128×64 display, and play video with synchronized movement. The protocol reference documents 125000-baud framing, command IDs, checksums and acknowledgements.",
  "description_zh": "PyEilik 基于恢复出的 USB 串行协议控制 Eilik 桌面机器人。C 库与 Python 封装可驱动四个舵机、读取和更新 128×64 屏幕，并在视频播放时同步动作。协议文档记录了 125000 波特率、帧结构、命令号、校验和及应答。",
  "entry_url": "https://awesomerea.org/resources/pyeilik-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/pyeilik-case/",
  "evidence_url": "https://github.com/aklto/PyEilik/blob/b1bf7ea6f29b939cddee66ffadd498ad32d02aa0/README.md",
  "group": "cases",
  "id": "pyeilik-case",
  "json_url": "https://awesomerea.org/resources/pyeilik-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/pyeilik-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/pyeilik-case/index.md",
  "name": "PyEilik: a client for the Eilik robot's USB protocol",
  "name_zh": "PyEilik：Eilik 机器人的 USB 协议客户端",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "macOS and Python 3.9 or newer are required; the serial link uses an Apple-specific ioctl for 125000 baud.",
    "Video playback requires ffmpeg on PATH; PNG display requires the image extra.",
    "The robot's speaker cannot receive audio through the documented protocol.",
    "MIT license."
  ],
  "requirements_zh": [
    "需要 macOS 和 Python 3.9 或更新版本；125000 波特率串口依赖 Apple 专用 ioctl。",
    "播放视频需要 PATH 中的 ffmpeg；显示 PNG 需要安装 image 扩展依赖。",
    "文档所述协议无法向机器人的扬声器发送音频。",
    "采用 MIT 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/aklto/PyEilik",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
