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\x02Input DisplayPort:\x74\x00\x11\x00\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x03Brightness 20%:\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x3EBrightness 30%:\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9A\x3EBrightness 50%:\x21\x00\x14\x00\x00\x00\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3FBrightness 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.