I’ve got a medium and a long data run from my controller. Pardon my imperial measurements, but about 20 feet and 40 feet. Previously using a level shifter helped, but trying to find the right value for the resistor was inconsistent. I decided to implement RS485 protocol and threw in RJ45s for standard ethernet cabling. I’m using POE to supply the RS485 modules on the remote board. I tested it with a 100m cable and it worked as well as a 1m cable.
Here’s the evidence:
The next version of the board uses GPIO14 instead of 12 (boot issues with pullup) plus I added spots to trigger an external relay for powering down the strips when the controller is off



