Star on GitHubStar2.4k stars

Case study

openmili: implementing the Mi-Light 2.4 GHz control protocol

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.

Targets
Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed
Stars
111
Last commit
2015-06-07
Language
C++
License (GitHub)
GPL-3.0

GitHub data as of 2026-11-09

Copy as MarkdownView JSONCite

Requirements & limits

  • Prerequisites: The included sketch uses an Arduino-compatible board, an nRF24L01 radio, and the RF24 library.
  • Prerequisites: The host daemon requires Python serial support and a serial connection to the sketch.
  • Limits: TCP handling in the host daemon is marked unimplemented.
  • License: GPL-3.0 license.

Cite

BibTeX

@misc{openmili-case,
  title = {{openmili: implementing the Mi-Light 2.4 GHz control protocol}},
  howpublished = {\url{https://github.com/henryk/openmili}},
  url = {https://github.com/henryk/openmili},
  urldate = {2026-11-06},
  note = {Awesome REA entry: \url{https://awesomerea.org/resources/openmili-case/}}
}

Plain text

openmili: implementing the Mi-Light 2.4 GHz control protocol. https://github.com/henryk/openmili (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/openmili-case/

Useful? Star Awesome REA on GitHub2.4k

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · henryk/openmili · Revision 0ae5ecb
  2. MiLightRadio.cpp GitHub · henryk/openmili · Revision 0ae5ecb
  3. host/openmilid.py GitHub · henryk/openmili · Revision 0ae5ecb

More in Protocols

All 720 entries in ProtocolsProtocols case studies (645)

↑↓ move↵ open⌘↵ new tab