{
  "added_at": "2026-10-27",
  "additional_evidence_urls": [
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/rf/README.md",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/hardware-table.md",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/python_tools/README.md",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/python_tools/requirements.txt",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/python_tools/pixmob_conversion_funcs.py",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/python_tools/tests/test_pixmob_conversion_funcs.py",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/arduino_sender/README.md",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/tree/b372420e1e1ff818a8d25ba50f0c71e97e62f138/raw_wild_ir_captures",
    "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/LICENSE"
  ],
  "category": "reconstruction-cases",
  "description_en": "Recovers enough of the infrared protocol used by PixMob event wristbands to light them at home, starting from Flipper Zero recordings made at concerts and games and replaying them to bracelets. Pulse-timing analysis found 38 kHz signals with bit intervals of roughly 700 µs, and targeted brute forcing from an ESP32 discovered hundreds of colour, fade, random and motion-mode commands, now sent through Arduino, Python and web tools. The README calls the result far from exhaustive and points to a later repository that decoded most of the full IR protocol through MCU dumping.",
  "description_zh": "从在演唱会和球赛现场用 Flipper Zero 录下的信号出发，把录音重放给手环，恢复出足以在家中点亮 PixMob 活动手环的部分红外协议。脉冲时序分析发现信号载波为 38 kHz、比特间隔约 700 微秒；项目再用 ESP32 做有针对性的暴力枚举，找到数百条颜色、渐变、随机和体感模式命令，现可通过 Arduino、Python 和网页工具发送。README 称这些结果远未穷尽，并指向一个后来通过 MCU 转储基本解出完整红外协议的仓库。",
  "entry_url": "https://awesomerea.org/resources/pixmob-ir-protocol-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/pixmob-ir-protocol-case/",
  "evidence_url": "https://github.com/danielweidman/pixmob-ir-reverse-engineering/blob/b372420e1e1ff818a8d25ba50f0c71e97e62f138/README.md",
  "group": "cases",
  "id": "pixmob-ir-protocol-case",
  "json_url": "https://awesomerea.org/resources/pixmob-ir-protocol-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/pixmob-ir-protocol-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/pixmob-ir-protocol-case/index.md",
  "name": "PixMob IR reverse engineering: controlling event wristbands at home",
  "name_zh": "PixMob 红外逆向工程：在家控制活动手环",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Reviewed at the 2026-02-06 main head; there are no releases. The write-up covers IR bracelets, while the rf folder adds 915 MHz and 868 MHz OOK recordings and notes for RF wristbands, where a further encoding layer and a likely CRC remain unresolved. The project reports testing six IR bracelet versions made between 2014 and 2021, and a hardware table lists boards and MCUs where known.",
    "Needs the user’s own PixMob bracelets with fresh batteries and an Arduino-compatible board or ESP32 with a 940 nm IR emitter, using the IRremote or IRremoteESP8266 library; a Flipper Zero can instead send codes from a separate repository. The Python tools need pyserial, PySimpleGUI and clipboard, and the web interface runs in Chrome and connects directly to the Arduino.",
    "The evidence is recordings and observed bracelet reactions: the repository holds raw Flipper IR captures from several events, edited RF captures, the discovered effect definitions, a record of brute-force attempts and a dump of one bracelet’s 24C02 EEPROM. The README says brute forcing targeted only a few packet lengths, so the code list is far from exhaustive, and the programming and choreography signals used at events remain undiscovered.",
    "Python unit tests cover the conversion functions and Flipper-file parsing; there is no CI. Effects are reported by the author and contributors from their own bracelets.",
    "MIT (LICENSE). PixMob’s hardware, firmware and trademarks are outside that license, and the X-ray images are credited to Samy Kamkar."
  ],
  "requirements_zh": [
    "审阅对象为 2026-02-06 的 main 最新提交，没有发布版本。主文档针对红外手环；rf 文件夹另外提供射频手环的 915 MHz 与 868 MHz OOK 录音和笔记，其中可能存在的额外编码层和 CRC 仍未解开。项目报告测试了 2014 至 2021 年间生产的六个红外手环版本，硬件表列出了已知的电路板和 MCU。",
    "需要用户自己的 PixMob 手环（换上新电池），以及连接 940 nm 红外发射器的 Arduino 兼容板或 ESP32，并使用 IRremote 或 IRremoteESP8266 库；也可改用 Flipper Zero，从另一个仓库发送代码。Python 工具需要 pyserial、PySimpleGUI 和 clipboard，网页界面在 Chrome 中运行并直接连接 Arduino。",
    "证据来自录音和观察到的手环反应：仓库收录多场活动的原始 Flipper 红外录音、整理过的射频录音、已发现的效果定义、暴力枚举尝试记录，以及一只手环的 24C02 EEPROM 转储。README 说明暴力枚举只针对少数几种数据包长度，因此代码列表远未穷尽，活动中使用的编程和编排信号仍未发现。",
    "Python 单元测试覆盖转换函数和 Flipper 文件解析；项目没有 CI。各种效果由作者和贡献者在自己的手环上报告。",
    "采用 MIT 许可（LICENSE）。PixMob 的硬件、固件和商标不在该许可范围内，X 光图片注明来自 Samy Kamkar。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/danielweidman/pixmob-ir-reverse-engineering",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
