PacketUDP

Packs the data for each LED in sequence into a UDP packet, then sends it to a given IP/port.

Input Modes: Discrete 1D
Source Code

Supported Protocols

  • Raw: Outputs the LED data without any headers or packet splitting. Used by cnlohr’s ColorChord and most basic receivers.
  • TPM2.net: Outputs data packets as per the TPM2.net spec, see here, and TPM2 info in German. Usable with WLED. Can split packets for many more LEDs.
  • E1.31: Outputs the LED data in packets as per the E1.31 spec. Useful for DMX systems.

Common to all Protocols

Option NameTypeDefaultRangeControllableDescription
Typestring“PacketUDP”❌Required: Specifies this output type.
NamestringAny unique name❌Required: A unique identifier used to attach controllers.
VisualizerNamestringValid visualizer instance name❌Required: The Name property of the visualizer instance to attach to.
Protocolstring“Raw”Supported protocols from list above❌Determines how packets are formatted and split. See below for supported protocols. cnlohr’s version only supports “Raw”.
IPstring127.0.0.1Valid IPs✅The IP to send the packets to.
Portint77770~65535✅The port to send the packets to.
LEDPatternstring“RGB”Any valid pattern❌The order in which to send data for each LED. Any combination of characters R, G, B, Y is valid, in any order, including repetition. Number of characters determines how many bytes each LED takes up in the packet.
ZigZagboolfalse❌Whether to reverse every odd line of the output for zig-zag wired LED arrays.
Mirrorboolfalse❌Whether the LED matrix wiring runs left-to-right (false) or right-to-left (true).
RotatedArrayboolfalse❌Rotates the LED data 180 degrees for an upside-down matrix.
SizeXint1❌How wide the LED matrix is. Leave as default if you’re not using a matrix, otherwise specify correctly.
SizeYint1❌How tall the LED matrix is. Leave as default if you’re not using a matrix, otherwise specify correctly.
StartIndexint00~✅Where in the visualizer data to start reading when putting data into the packet. Use this if you want the packet to only contain a subset of the visualizer data.
EndIndexint-1-1~✅Where in the visualizer data to stop reading when putting data into the packet. Use this if you want the packet to only contain a subset of the visualizer data. -1 means read to the end, regardless of data amount.
Enablebooltrue✅Whether to use this output.

Configuring an LED Matrix

If you are outputting to an LED matrix, there are several options available to help you make sure the output is correct.

Looking at your LED matrix from the front, match how it is wired with one of the images below to find the correct options for your setup:


ZigZag = false
Mirror = false
RotatedArray = false

ZigZag = false
Mirror = true
RotatedArray = false

ZigZag = false
Mirror = false
RotatedArray = true

ZigZag = false
Mirror = true
RotatedArray = true

ZigZag = true
Mirror = false
RotatedArray = false

ZigZag = true
Mirror = true
RotatedArray = false

ZigZag = true
Mirror = false
RotatedArray = true

ZigZag = true
Mirror = true
RotatedArray = true

Protocol-Specific Configs

Raw

Option NameTypeDefaultRangeControllableDescription
PaddingFrontint00~1000✅Number of padding bytes to append to the front of the packet.
PaddingBackint00~1000✅Number of padding bytes to append to the back of the packet.
PaddingContentint00~255✅What data to put in the padding bytes at the start and end, if present.

TPM2.net

Option NameTypeDefaultRangeControllableDescription
PaddingContentint00~255✅What data to put in the padding bytes at the start and end, if present.
MaxPacketLengthint-1-1~65535❌The maximum size of packets before splitting. -1 means use protocol specified limit (1490).
ConstantPacketLengthboolfalse❌Whether to make all packets the same size, filling blank space with PaddingContent.

E1.31 (sACN)

Option NameTypeDefaultRangeControllableDescription
Universeint11~63999✅The DMX universe to address packets to.
UUIDhex string9E917B13714044CFB46F7A8298692DE3any 16-byte hex string❌Unique sender ID. Change this if you have multiple instances of ColorChord.NET on the network.