Case study
open-cardi: reconstructing Cardi lighting control over BLE
open-cardi reconstructs BLE control of Cardi K3 and K4 Active Ultra lighting kits in Android and web clients. The author derived GATT services, packet framing, and command behavior from decompiled vendor apps and HCI snoop replay, including color, zone, pattern, and reset operations.
- Targets
- App · Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C1 partial scope or analysis entry
- Stars
- 1
- Last commit
- 2026-10-19
- Language
- Kotlin
- License (GitHub)
- MIT
GitHub data as of 2026-11-10
Evidence

- Observed
- Download and demo observed; the case covers part of the target software.
- Scope
- Partial
- Checked
- 2026-11-08
Requirements & limits
- Scope: Cardi K3 or K4 Active Ultra, or another named ConSmart-family kit, is the documented hardware scope.
- Limits: The web client can leave a resetting kit blinking until power cycling and vendor-app color setting; the Android client uses the default 23-byte MTU.
- Limits: Lock and unlock effects on neighboring controllers remain inferred.
- License: MIT license.
Cite
BibTeX
@misc{open-cardi-case,
title = {{open-cardi: reconstructing Cardi lighting control over BLE}},
howpublished = {\url{https://github.com/harshmandan/open-cardi}},
url = {https://github.com/harshmandan/open-cardi},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/open-cardi-case/}}
}Plain text
open-cardi: reconstructing Cardi lighting control over BLE. https://github.com/harshmandan/open-cardi (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/open-cardi-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · harshmandan/open-cardi · Revision d8eaf5b
- debug/README.md GitHub · harshmandan/open-cardi · Revision d8eaf5b
More in Apps
- Pool Comfort / Galaxywind: a local heat-pump client from Android and UDP analysis · Case study
- Mondeer Bluetooth scale: reconstructing BLE weighing and binding · Case study
- Smartboard notebook Exporter: documenting and converting .notebook files · Case study
- WeChat: recovering macOS chat databases for HTML export · Case study
- led-hue-cycle: reconstructing LEDDMX strip control over BLE · Case study
- OPPO 移动电源助手: reconstructing power bank control on macOS · Case study