# telink-usb-ota: reconstructing Telink USB-HID firmware updates

> telink-usb-ota reconstructs Telink's USB-HID OTA update exchange as a Rust Linux host tool for querying and flashing a CIDOO V65 v2 keyboard. Its protocol notes specify 33-byte HID reports, START and FINISH opcodes, 16-byte data chunks, CRC-16/MODBUS and the next-chunk acknowledgement rule, derived from updater and firmware disassembly and checked by the author against hardware.

- Type: Case study
- Targets: Firmware · 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/jbonadiman/telink-usb-ota>
- Primary source: <https://github.com/jbonadiman/telink-usb-ota/blob/df23c6e46aa51aa4fbec5d4c6248ecb68ba0344e/README.md>
- Catalog page: <https://awesomerea.org/resources/telink-usb-ota-case/>
- Record JSON: <https://awesomerea.org/resources/telink-usb-ota-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/telink-usb-ota-case/index.md)

## Requirements & limits

- **Prerequisites:** Linux hidraw access, Rust and a compatible Telink device are required; flashing also requires a firmware image and --confirm-flash.
- **Testing evidence:** The author tested a CIDOO V65 v2 keyboard; other Telink devices require device-specific checking.
- **Limits:** Flashing has no reconnect-and-resume path or firmware read-back.
- **License:** AGPL-3.0-only license.

## Primary sources

1. <https://github.com/jbonadiman/telink-usb-ota/blob/df23c6e46aa51aa4fbec5d4c6248ecb68ba0344e/README.md>

## More in Firmware and hardware

- [K2 OpenKlipper: reconstructing the Creality K2 control stack](https://awesomerea.org/resources/k2-openklipper-case/index.md) · Case study
- [ThinkCentre Fan Control: recovering fan telemetry and modes from the M70t Gen 6](https://awesomerea.org/resources/thinkcentre-fan-control-case/index.md) · Case study
- [strix-890m-macos: investigating Radeon 890M display bring-up](https://awesomerea.org/resources/strix-890m-macos-case/index.md) · Case study
- [Twin Famicom: reconstructing the console power board](https://awesomerea.org/resources/twin-famicom-case/index.md) · Case study
- [EasyRazer: reconstructing Razer analog keyboard controls](https://awesomerea.org/resources/easyrazer-keyboard-case/index.md) · Case study
- [Sisu DCP-3: reconstructing Nokia 3210 firmware behavior](https://awesomerea.org/resources/sisu-dcp-3-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.
