Skip to content

Instantly share code, notes, and snippets.

@jblang
jblang / tpm2.md
Last active December 28, 2025 18:11
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

@irsal
irsal / binary_heap.cs
Last active April 3, 2023 13:36
Binary Heap Implementation C#
using System;
namespace PathPlanner
{
/// <summary>
/// A min-type priority queue of Nodes
/// </summary>
public class BinaryHeap
{
#region Instance variables