TPM2 Protocol Implementation


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

View deleteFolder2
public static boolean deleteDirectory(File directory) {
File[] files = directory.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
else {
View deleteFolder
public static void deleteFileOrFolder(final Path path) throws IOException {
Files.walkFileTree(path, new SimpleFileVisitor<Path>(){
@Override public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs)
throws IOException {
return CONTINUE;
@Override public FileVisitResult visitFileFailed(final Path file, final IOException e) {
return handleException(e);