# catbus99: reconstructing Epomaker TH99 Pro screen control over USB-HID

> catbus99 reconstructs control of the Epomaker TH99 Pro keyboard display from captured driver WebHID traffic. Its Rust client sends USB-HID reports to display images and rendered widgets, while a protocol document maps the configuration and TFT interfaces. A daemon governs writes to the display's flash storage.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/terraboops/catbus99>
- Primary source: <https://github.com/terraboops/catbus99/blob/341574514fbf74315487f2aa5984657e16646f16/docs/PROTOCOL.md>
- Catalog page: <https://awesomerea.org/resources/catbus99-case/>
- Record JSON: <https://awesomerea.org/resources/catbus99-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/catbus99-case/index.md)

## Requirements & limits

- **Prerequisites:** Epomaker TH99 Pro connected by USB cable; macOS or Linux and Rust 1.82+.
- **Limits:** The display is not reachable over 2.4 GHz or Bluetooth.
- **Limits:** Screen uploads are subject to a rate limit with a five-minute floor.
- **License:** MIT License.

## Primary sources

1. <https://github.com/terraboops/catbus99/blob/341574514fbf74315487f2aa5984657e16646f16/docs/PROTOCOL.md>
2. <https://github.com/terraboops/catbus99/blob/341574514fbf74315487f2aa5984657e16646f16/README.md>

## More in Protocols

- [OpenWatch: reconstructing the LJ736/LY736D smartwatch BLE client](https://awesomerea.org/resources/openwatch-ly736d-case/index.md) · Case study
- [Quntis Monitor Light for ESPHome: reconstructing RF control](https://awesomerea.org/resources/quntis-monitor-light-esphome-case/index.md) · Case study
- [Bosch Smart System: BLE diagnostic and live data protocol map](https://awesomerea.org/resources/bosch-smart-system-ble-case/index.md) · Case study
- [GreenPods: reconstructing AirPods control on Android](https://awesomerea.org/resources/greenpods-airpods-protocol-case/index.md) · Case study
- [dualsense-bridge: reconstructing DualSense Bluetooth microphone access](https://awesomerea.org/resources/dualsense-bridge-case/index.md) · Case study
- [FX30 Controller: reconstructing Sony FX30 remote control](https://awesomerea.org/resources/fx30-controller-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.
