Planar Z6

Sometimes you have to deal with equipment that has little, no, or misleading documentation. On my latest project I had to control a few things on a Planar (ColorLight) Z6 wall controller. A little trial-and-error, and I’m happy to share the commands that actually worked.

From the documentation I had, I did know there were a couple ways to interface with the controller:

TCP port 9999
UDP port 9099

At first, I tried TCP but it requires a heartbeat packet to keep the connection open to accepting commands. For whatever reason, I could not get the heartbeat to work correctly. Next, I tried UDP and it happily accepted commands but provided no feedback. Sometimes that’s a tradeoff I can accept.

Here are the commands I used that worked correctly with the wall:

Input HDMI:
\x74\x00\x11\x00\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x02
Input DisplayPort:
\x74\x00\x11\x00\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x03
Brightness 20%:
\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x3E
Brightness 30%:
\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9A\x3E
Brightness 50%:
\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3F
Brightness 60%:
\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1A\x3F

When you’re working remotely through a slow hotspot connection and relying on the tech to tell you exactly what they see, it can be difficult to get the hardware to do much more than this.

While a traditional application developer has the ability to add breakpoints, watch variables, and immediately see the updates take shape, AV programmers have a different experience. We compile programs for an architecture that is niche, debug remotely by attaching to another machine, rarely see the results with our own eyes. It’s shocking how advanced the tooling is once you step outside of the AV programmer bubble.

Leave a Reply