# thermalmaster: a Go client for ThermalMaster camera USB commands

> thermalmaster implements a Go USB client for ThermalMaster P3 and P1 thermal cameras using documented VDCMD control transfers. It captures PNG frames, streams thermal and IR video to Linux v4l2loopback, and records USB command framing and model identifiers for interoperability.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-06
- Original resource: <https://github.com/xaionaro-go/thermalmaster>
- Primary source: <https://github.com/xaionaro-go/thermalmaster/blob/4a52a1fa82fbd996a57b02a19ea6d4a4472d21b8/doc/reverse-engineering.md>
- Catalog page: <https://awesomerea.org/resources/thermalmaster-case/>
- Record JSON: <https://awesomerea.org/resources/thermalmaster-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/thermalmaster-case/index.md)

## Requirements & limits

- **Prerequisites:** A ThermalMaster P3 or P1 camera, a C toolchain, pkg-config and libusb development files.
- **Prerequisites:** Linux with v4l2loopback is required for video streaming; USB permissions must be configured.
- **License:** CC0-1.0 license.

## Primary sources

1. <https://github.com/xaionaro-go/thermalmaster/blob/4a52a1fa82fbd996a57b02a19ea6d4a4472d21b8/doc/reverse-engineering.md>
2. <https://github.com/xaionaro-go/thermalmaster/blob/4a52a1fa82fbd996a57b02a19ea6d4a4472d21b8/README.md>

## More in Protocols

- [open-rknpu: Rockchip NPU task-program reconstruction](https://awesomerea.org/resources/open-rknpu-case/index.md) · Case study
- [hardsid4u: reconstructing the HardSID 4U USB protocol](https://awesomerea.org/resources/hardsid4u-case/index.md) · Case study
- [PyEilik: a client for the Eilik robot's USB protocol](https://awesomerea.org/resources/pyeilik-case/index.md) · Case study
- [libfprint-goodixtls: a reconstructed Goodix GXFP5187 fingerprint driver](https://awesomerea.org/resources/libfprint-goodixtls-case/index.md) · Case study
- [RazerStream: reconstructing Stream Controller device control](https://awesomerea.org/resources/razerstream-case/index.md) · Case study
- [DABplay+: reconstructing USB DAB+ dongle control](https://awesomerea.org/resources/dabplayplus-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.
