Skip to content

Instantly share code, notes, and snippets.

View NgoHungCuong's full-sized avatar
🏠
Working from home

Ngô Hùng Cường NgoHungCuong

🏠
Working from home
View GitHub Profile
@NgoHungCuong
NgoHungCuong / tpm2.md
Created May 23, 2025 02:50 — forked from jblang/tpm2.md
TPM2 Protocol Description

TPM2 Protocol Implementation

Introduction

Frame data is transferred inside packets (similar to DMX, for example). A frame is an image representing a matrix or a light scene.

The packets start and end with one-byte characters. In between are a few control bytes followed by the payload. There is no set size for a payload; it is transmitted with each packet. This makes the protocol quite flexible. There are enough bytes in a single packet for an RGB matrix with 21,845 pixels, but if you just want to control an RGBW lamp, that only requires 9 bytes. The variable frame size means there is no overhead, allowing for maximum transfer speed.

TPM2 Packet Structure