/TPM2

Arduino library of the TPM2 protocol for LED lighting

Primary LanguageC++GNU General Public License v2.0GPL-2.0

TPM2 Arduino library

TPM2 is a protocol designed for LED (matrices) communications. Details about TPM2 can be found here (german) or here (english). This is a generic Arduino implementation of the protocol, it uses the serial part only, also called TPM2.serial. It should work on any Arduino.

If you are searching for network support, take a look at the alternatives below.

Limitations

The amount of free RAM defines the number or LEDs. An Arduino Uno with 2 KiByte RAM can only handle a finite number of LEDs. Use a bigger Arduino (e.g. Mega 2560) for more LEDs.

Installation

As usual, place this repository into the Arduino library folder, e.g. ~/Documents/Arduino/libraries/ for macOS or ~/Arduino/libraries/ for Linux. Or use the Arduino-IDE to import the zip-file.

Hardware

Smart LEDs like WS2812 (NeoPixels) or similar devices need a lot of current. In most cases 10 LEDs will exceed the capabilities of a USB 2 port.

Short example for 3-color (RGB) LEDs in full white.

LED(s) Current
1 60 mA
10 600 mA
100 6000 mA

WS2812 are 5 Volt LEDs, so driving the data-Pin with 5 V is necessary. In most cases 3.3 V will work, too. But that is not good engineering. More details can be found in Adafruits Best Practices guide.

Examples

TPM2NeoPixel

TPM2 with Adafruit's NeoPixel library.

TPM2FastLED

TPM2 with the FastLED library.

PC Software support

Alternatives

  • TPM2.net: TPM2 over UDP packets.
  • Art-Net(tm): For example, my ArtnetWifi library.

Commercial devices

License

GPL v2 only