{
  "added_at": "2026-10-31",
  "additional_evidence_urls": [
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/bluetooth.md",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/generalplus.md",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/nordic.md",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/actions.md",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/fluffd/fluffd.js",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/fluffd/package.json",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/Dockerfile",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/docker.md",
    "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/LICENSE.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Documents the Bluetooth Low Energy interface of Hasbro's Furby Connect toy, worked out, according to its notes, from the companion app's native library, sniffed BLE traffic and trial and error. It maps the GATT services and the command and response bytes of the toy's Nordic radio and GeneralPlus controller, covering action sequences, antenna colour, mood values, sensor reports and a hidden debug screen. fluffd, a Node.js daemon built on the noble BLE library, exposes these commands through an HTTP API and a browser control page.",
  "description_zh": "记录 Hasbro 玩具 Furby Connect 的蓝牙低功耗（BLE）接口；据其说明，这些内容来自对配套应用原生库的分析、BLE 流量嗅探和反复试验。文档梳理了 GATT 服务，以及玩具中 Nordic 无线芯片和 GeneralPlus 控制器的命令与响应字节，涵盖动作序列、天线颜色、情绪数值、传感器报告和一个隐藏的调试界面。fluffd 是基于 noble BLE 库的 Node.js 守护进程，通过 HTTP API 和浏览器控制页面提供这些命令。",
  "entry_url": "https://awesomerea.org/resources/bluefluff-furby-connect-ble-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/bluefluff-furby-connect-ble-case/",
  "evidence_url": "https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/README.md",
  "group": "cases",
  "id": "bluefluff-furby-connect-ble-case",
  "json_url": "https://awesomerea.org/resources/bluefluff-furby-connect-ble-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/bluefluff-furby-connect-ble-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/bluefluff-furby-connect-ble-case/index.md",
  "name": "bluefluff: reverse engineering Furby Connect's Bluetooth LE protocol",
  "name_zh": "bluefluff：逆向分析 Furby Connect 的蓝牙低功耗协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Most research commits date from 2017 and 2018, with a few later fixes and a Docker setup added in March 2026. The README reports that large parts of the BLE protocol are understood, while the action list is incomplete, the update (DLC) format is only partly explored, and code execution, custom LCD animations and the sleep-mask connector remain untried.",
    "Requires a Furby Connect and a host with Bluetooth LE, built in or through a USB Bluetooth 4.0+ adapter. The repository contains no Hasbro update files or app code. The README warns that interfacing in unwarranted ways can brick the toy and will almost certainly void its warranty.",
    "fluffd needs Node.js 7.0 or later according to the README and pins @abandonware/noble 1.9.2-23. The README covers Linux, which needs libudev development files and a running BlueZ, and macOS, which needs xpc-connection, and also names FreeBSD and Windows. The Docker image uses node:16-bullseye, needs host networking for raw HCI access and supports Linux hosts only.",
    "The findings are the author's documented observations, made without opening the toy. The repository has no tests or CI.",
    "MIT (2017, Florian Euchner); the README's disclaimer says the information is for educational purposes only. Furby Connect, its companion app and Hasbro's content keep their own rights."
  ],
  "requirements_zh": [
    "大部分研究提交集中在 2017 和 2018 年，此后只有少量修复，并于 2026 年 3 月加入了 Docker 配置。README 报告已弄清 BLE 协议的大部分内容，但动作列表尚不完整，更新包（DLC）格式只做了部分探索，代码执行、自定义 LCD 动画和睡眠面罩接口均未尝试。",
    "需要一台 Furby Connect，以及内置蓝牙低功耗或配有 USB 蓝牙 4.0+ 适配器的主机。仓库不含 Hasbro 的更新文件或应用代码。README 警告，以不当方式操作可能使玩具变砖，而且几乎必然导致失去保修。",
    "README 指出 fluffd 需要 Node.js 7.0 或更高版本，并固定使用 @abandonware/noble 1.9.2-23。README 说明了 Linux（需要 libudev 开发文件和运行中的 BlueZ）和 macOS（需要 xpc-connection）的安装方法，也提到 FreeBSD 和 Windows。Docker 镜像基于 node:16-bullseye，需要使用主机网络以访问原始 HCI，仅支持 Linux 主机。",
    "这些发现是作者在未拆开玩具的情况下所记录的观察结果。仓库没有测试或 CI。",
    "采用 MIT 许可（2017 年，Florian Euchner）；README 的免责声明称这些信息仅供教育用途。Furby Connect、其配套应用以及 Hasbro 的内容各自保留其权利。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/Jeija/bluefluff",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
