In the context of a robotic project where different 'payloads' and/or robotics arms (end-deflector) should be mated mechanically with power, data and control connections support, I would like to identify the best suited (serial) bus.
I have a hard time putting together the requirements, but the main 5 important ones could be summarized as following:
- Minimal wiring: 2-3 pins (or less)
- Multi-points/clients, if possible without host/client/server/master aspects
- The-wiring-is-the-bus (=no need for repeater/switch/hub)
- Hot-pluggable/swappable: adding/removing clients, changing the topology
- Support for different topology: straight, meshed, star, fake-loop,...
Speed is not really a constraint.
Currently CAN bus was used in our bread-boarding, in order to inter-connect a few RasPi/Zero with PICANDUO daughter boards, covering almost all 5 requirements except of course #4, as it is not meant to be hot-pluggable and thus gives issues for #5 (especially moving/adapting the 120 ohms termination resistors). We then use a flying master for changing the master of the bus.
Ethernet would be almost covering all 5 (except #1 & #2), but is completely overkill...so is SpaceWire. SpaceFiber could be an option.
I am also considering RS-485, LVDS, I2C, 1-Wire,... But these seems to get trouble with #4 (end resistor) too.
USB would be great (only 2 data wires, powered separately), but it requires a single (stable/single) Host/master (or does it?).
Am I overlooking a specific bus here?
What would you think of other potential candidate(s) here?
Thank you for your hints!