# TrikiEmu: reconstructing the Żabka Triki BLE controller

> TrikiEmu recreates the Żabka Triki motion controller's BLE behavior on ESP32 firmware. It reproduces advertising identity, a Nordic UART Service profile and 14-byte IMU frames using findings from TrikiScope and Android HCI captures; PC tools feed keyboard, CSV or recorded motion to the emulator. The author reports that Żappka connects and reacts to movement on M5StickC Plus2.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/Maku-hub/TrikiEmu>
- Primary source: <https://github.com/Maku-hub/TrikiEmu/blob/569a90cd6bdd4d2831d4951a2195bb7d5445149a/README.md>
- Catalog page: <https://awesomerea.org/resources/trikiemu-zabka-triki-case/>
- Record JSON: <https://awesomerea.org/resources/trikiemu-zabka-triki-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/trikiemu-zabka-triki-case/index.md)

## Requirements & limits

- **Prerequisites:** An ESP32 board, USB cable, phone with Żappka and a real Triki controller's BLE address are required.
- **Prerequisites:** PlatformIO Core builds the firmware; PC tools require Python 3 and pyserial.
- **Limits:** The author reports that gameplay responds to motion, while saving scores requires authentication from a real controller.
- **License:** MIT license.

## Primary sources

1. <https://github.com/Maku-hub/TrikiEmu/blob/569a90cd6bdd4d2831d4951a2195bb7d5445149a/README.md>
2. <https://github.com/Maku-hub/TrikiEmu/blob/569a90cd6bdd4d2831d4951a2195bb7d5445149a/firmware/README.md>

## More in Protocols

- [TrikiScope: decoding the Żabka Triki BLE motion stream](https://awesomerea.org/resources/trikiscope-zabka-triki-case/index.md) · Case study
- [G2CC: a replacement Even G2 client built from Bluetooth traffic analysis](https://awesomerea.org/resources/g2cc-even-g2-client-case/index.md) · Case study
- [Melitta Barista & Nivona: reconstructing coffee-machine BLE control](https://awesomerea.org/resources/melitta-barista-nivona-ha-case/index.md) · Case study
- [OpenHX: rebuilding Line 6 HX preset control over USB](https://awesomerea.org/resources/openhx-case/index.md) · Case study
- [BunATV: reconstructing Apple TV control protocols in TypeScript](https://awesomerea.org/resources/bunatv-apple-tv-protocol-case/index.md) · Case study
- [Ember Mug: decoding the on-device drink-log stream](https://awesomerea.org/resources/ember-mug-drink-log-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
