Hi, how do I take a data signal (for NeoPixels) and route it to one of 7 possible destinations?
For context: I'm working on a lighting project involving lots of separate Arduino circuits, each functioning as its own module. They're all hexagons that can connect to each other and communicate via serial (initially wanted to use that for lighting data but it's not nearly fast enough), with 1 NeoPixel per side, with all 6 permanently arranged in one "sub-strip", meaning the input from any side could go back to any one of the sides OR to that sub-strip (total of 7 possibilities), and then the end of the sub-strip can go to any side. Then I have one "source" module (triangular with only one active side) which controls all the LEDs. I already have an algorithm that automatically figures out what the whole assembly looks like using serial between the modules.
What I want to do is have each module kind of "dynamically route" the data wire for those NeoPixels, so that no matter what the assembly looks like, the source can treat it as one big LED strip. This means, a cell needs to route input from whichever side has data coming to it from the previous cell, to any of the 7 destinations I listed.
My question is, what would be the best way to do this? Should I just use a ton of npn transistors? Is there a cheap 8-channel multiplexer that will do what I want? I don't think shift registers would work but maybe? I'd like the solution to be as small and cheap as possible, since if this works I'll be using dozens of the modules and that adds up quick!