Case study
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.
- Targets
- Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C1 partial scope or analysis entry
- Stars
- 21
- Last commit
- 2026-10-09
- Language
- Python
- 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-09
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.
Cite
BibTeX
@misc{trikiemu-zabka-triki-case,
title = {{TrikiEmu: reconstructing the Żabka Triki BLE controller}},
howpublished = {\url{https://github.com/Maku-hub/TrikiEmu}},
url = {https://github.com/Maku-hub/TrikiEmu},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/trikiemu-zabka-triki-case/}}
}Plain text
TrikiEmu: reconstructing the Żabka Triki BLE controller. https://github.com/Maku-hub/TrikiEmu (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/trikiemu-zabka-triki-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · Maku-hub/TrikiEmu · Revision 569a90c
- firmware/README.md GitHub · Maku-hub/TrikiEmu · Revision 569a90c
More in Protocols
- TrikiScope: decoding the Żabka Triki BLE motion stream · Case study
- G2CC: a replacement Even G2 client built from Bluetooth traffic analysis · Case study
- Melitta Barista & Nivona: reconstructing coffee-machine BLE control · Case study
- OpenHX: rebuilding Line 6 HX preset control over USB · Case study
- BunATV: reconstructing Apple TV control protocols in TypeScript · Case study
- Ember Mug: decoding the on-device drink-log stream · Case study