Sorry, I meant the output expander, not the sensor board. In combination with what you are using to sense current (which might be a sensor board).
OK, without a custom micro, consider how this could work with existing output expanders.
If you used an output expander (OE for short) in each node, and used a unique combination of output channel and board address, you could have 64 unique node addresses. Each of those could be configured for a unique range of pixel addresses.
For example, let’s say you have 12 pieces / nodes. You’d need 12 OE. They are all fed off of the same data stream. On the first 8 nodes you would leave the OE addresses set to 0, and connected LEDs to increasing output channels from 0-7. The 9th through 12th nodes would be at board address 1, using 4 channels numbered 0 through 3.
In the PB settings screen, you’d set it up with only 2 boards (one at address 0, one at address 1), and configure the channels for each node. Sure all 8 OE at address 0 are doing the same thing, but only one of the channels is connected at a time.
Let’s say to make the math easy for an example, every node is only 10 pixels long, and on the setting screen, each channel starts at the next address (as it would if you clicked the auto button).
The first node is at board 0, channel 0, and has pixel start index 0, length of 10. It can be drawn in a render when index is 0 through 9.
The next node is board 0, channel 1, and has pixel start index 10, length of 10. It can be drawn in a render when index is 10 through 19.
And so on. You’d have 120 pixels in total, no matter how many nodes were actually connected, and in any order.
It wouldn’t know where in the assembly they are. The order wouldn’t matter (to it) since they have a fixed address, and it would have the same pixel index no matter how many nodes or in what order they were arranged. You could handle those aspects in some other way, this would just be a way to get everything individually addressable and doesn’t have any inherent detection, it’s just output.
If you don’t want to buy and install an OE for each node, but have room for your own micro and lots of free time, you could adapt the output expander code or write you own client that reads the data stream and spits out a single channel for the LEDs.
It wouldn’t, not alone. You’d need some other way to detect the order, but to some extent the order wouldn’t matter in that you wouldn’t need it in order to know how to draw things consistently.
In some ways this would make it harder to detect, since turning any given pixel or node on/off changes the current draw by the same amount regardless if where it is, but you could still detect the presence / absence of a node.