It is sometimes convenient to send the pixel data stream over a CAT5 cable between the controller and the lights. This is for cases where you’d have to send a lot of pixel connections (e.g., xConnect) with power and data together an inconvenient distance, but where there is not enough data to warrant the expense and complexity of another controller capable of translating ethernet packets into pixel protocols.
It is typical to send 4 “streams” of pixel data over the Cat5 cable, to have 4 “ports”, however you like to call it. This is simply because the Cat5 cable has 4 differential pairs, each capable of transmitting a pixel stream. The signal timing on the Cat5 is exactly the same as the signal data that goes into the pixels, it’s just a “differential signal“, which is a well-known solution for increasing the range and noise-resistance of a digital signal, and with electrical isolation between the sender and receiver (no need for a common ground).
Kinds of Differential/Long-Range Receivers
Since the differential encoding scheme is such a straightforward application of common concepts and components, one might hope that differential receivers would be compatible. This isn’t as true as we’d like it to be.
The first thing to get out of the way is so-called “smart receivers”, such as the Falcon SmartReceiver or the HolidayCoro SMART Long Range Receiver. These smart receivers use the basic concept of the dumb one, but there is some “metadata” in the pixel stream that describes how to divvy up the data between receivers, allowing them to each send part of the overall stream to their connected pixels. This kind of receiver tends to have inconvenient limitations on number of pixels you can use, and to have a confusing compatibility matrix even if you stay on brand. So we are not considering cross-brand compatibility of smart receivers here… just the “dumb” kind (which are plenty smart IMO).
I use a lot of HinksPix Pro controllers in my show. Benefits of the HinksPix Pro: I could get them. I could get them easily in October 2021 when I started putting my first show together, they came ready-to-run, they are built well, easy to use, and have a lot of conveniences like fuse indicators, bulkhead connectors for the 2 ethernet ports, and so on. The one down-side I noted is that there are not bulkhead connections for the long-range ports, just a strain relief for the cables, but we’ll get to that in a bit.
I’ve also found a lot of cool differential receivers on the market besides the official ones and their ready-to-run packages. My favorite has to be the Wizard of Wire Original Meanwell Differential Receiver for Falcon and Kulp controllers, because it makes it easy to assemble a compact differential receiver like the one on the right (next to the HolidayCoro board on the left for comparison):
Are They Compatible?
According to the manufacturer, “they are not compatible”, end of story. (This may be a good time to say, as a disclaimer, I am only telling you what I did, what worked for me. I am not responsible if you break your stuff! And since the manufacturer said they are not compatible, if you break it, they will probably be happy to sell you another one and be no more helpful than that.)
But how silly is that? How could they not be compatible given the simple mechanism and principle of operation?
Well… the fact is they’re not compatible. Not quite. I plugged them in and tried it, and it almost worked. Port 1 and 4 worked, port 2 and 3 had weird behavior where lighting up pixels on one of them lit up pixels on the other and vice versa… and so they’re off by a pin. Todd Merkel got back to me with his pinout right away:
- Output 1 – pins 1/2 (typically orange pair)
- Output 2 – pins 3/6 (green)
- Output 3 – pins 4/5 (blue)
- Output 4 – pins 7/8 (brown)
This is quite typical of how a Cat5 cable is used.
The HolidayCoro-supplied controller and receiver have the following instead:
- Output 1 – pins 1/2 (Orange)
- Output 2 – pins 3/4 (Blue+GreenWhite)
- Output 3 – pins 5/6 (Green+BlueWhite)
- Output 4 – pins 7/8 (Brown)
(HolidayCoro did not / would not tell me this. You could perhaps glean a first approximation of my method from the following photo.)
Now, aside from being a nuisance, and as Skymaster from AusChristmasLighting pointed out to me, this pinout is not ideal because Cat5 cable gets some of its noise tolerance characteristics from how the wire pairs are twisted together, and you’d want to send both polarities of the signal down the same twisted pair, which the latter pinout does not.
Making Them Compatible
So now we know how the pinouts differ, and which pinout is “right” and which is “wrong”. For compatibility and best performance, we’re looking for a way to use the Falcon/Kulp/Todd pinout. Even if two HolidayCoro products are talking to each other, it’s an improvement, albeit a pain in the butt, to swap the solid green and solid blue as soon as they come out of an HC long range port, or as soon as they head into one.
One way to do this, the first that came to mind, was to cut the RJ45 connector off the Cat5 cable and crimp on another with the wires moved a bit.
I do very much love how vendors and people in the chat rooms referred to this as a “custom” cable, rather than a “buggered” cable. Realistically, I am not likely able to remember which end of which cable has been customized/buggered, or to remember which is suitable for ethernet use vs. long range differential. So something else then.
Remember how I said I wished there were jacks for the long-range connections on the outside of the controller box, but there weren’t? Well, adding the bulkhead connectors provides the ideal place to swap the blue/green conductors and make things compatible.
And, no need even to recrimp the RJ45 connector, as there’s a junction between the male cable and the board with the female connection. We’re going to swap the pins at this junction.
After making these modifications, I can now quickly plug either of the long-range receivers into the HinksPix controller, using a standard Cat5 cable. I tried all the ports, and everything works as expected.
Now all I have to do is customize and/or install about 80 long range ports (controller and receiver side)… but I guess I needed small tasks for coffee breaks, right?