{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/henryk/openmili/blob/0ae5ecb2741893f28e71dab98f367394518f3251/MiLightRadio.cpp",
    "https://github.com/henryk/openmili/blob/0ae5ecb2741893f28e71dab98f367394518f3251/host/openmilid.py"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "openmili implements the Mi-Light 2.4 GHz LED control exchange with an nRF24 radio acting as a PL1167 backend. An Arduino sketch sends and receives framed packets over serial, while a Python daemon maps UDP commands to light-control messages with configurable sender IDs. The code specifies channels, sync words, CRC handling, and command mappings.",
  "description_zh": "openmili 使用 nRF24 无线模块作为 PL1167 后端，实现 Mi-Light 2.4 GHz LED 灯控通信。Arduino 程序通过串口收发数据包，Python 守护程序将 UDP 命令转换为可配置发送方 ID 的灯控消息；源码还定义了信道、同步字、CRC 处理和命令映射。",
  "entry_url": "https://awesomerea.org/resources/openmili-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/openmili-case/",
  "evidence_url": "https://github.com/henryk/openmili/blob/0ae5ecb2741893f28e71dab98f367394518f3251/README.md",
  "group": "cases",
  "id": "openmili-case",
  "json_url": "https://awesomerea.org/resources/openmili-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/openmili-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/openmili-case/index.md",
  "name": "openmili: implementing the Mi-Light 2.4 GHz control protocol",
  "name_zh": "openmili：实现 Mi-Light 2.4 GHz 灯控协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "The included sketch uses an Arduino-compatible board, an nRF24L01 radio, and the RF24 library.",
    "The host daemon requires Python serial support and a serial connection to the sketch.",
    "TCP handling in the host daemon is marked unimplemented.",
    "GPL-3.0 license."
  ],
  "requirements_zh": [
    "随附程序需要兼容 Arduino 的开发板、nRF24L01 无线模块和 RF24 库。",
    "主机守护程序需要 Python 串口支持，并通过串口连接开发板。",
    "主机守护程序的 TCP 处理标记为尚未实现。",
    "采用 GPL-3.0 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/henryk/openmili",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
