I am working on a project which deals with a large number of stepper motors and other devices. A key feature I want to achieve is create a modular/ expandable system, so that new devices can be easily connected and programmed through a dedicated GUI. Currently what I have is following system: 3 (or may be 4) stepper motors and drivers (+ other simple perephirals) will create 1 "device". So far it works fine. I managed to actuate them simultaneously (through pyfirmata). But so far this 1 device already uses 6 pins! Okay, I have read how to improve this using shift registers, making 3 pins for 1 device.
However, as mentioned, I want a modular system, similar to shown below: Meaning that I have 1 main controller and devices connected to it. It doesn't have to be 1 pin to 1 device, I was also exploring options such as CAN. (Also, i suppose running single 12V line wont be enough, but that's something to consider at later stage).
I have researched various options such as: RS485, SPI, UART (using TMC2208 drivers) etc. Problem is that I could not find a proper example to see how it fits into my system.
Therefore my questions are:
What would be the best way to realise system I have described (1 main controller and multiple slaves/devices) + is it feasible at all? Could you give a simple diagram how this should be working What would be the most cost effective solution Some extra info:
Distance between devices is within 2 meters. At later stage the idea to create a PCB and make all systems more compact Motors and devices must work simultaneously Currently there is no feedback loop, meaning that master just sends pulses to drive steppers, no information back is required. Ideally use TMC2208 drivers
I would really appreciate any help! Please comment if you need more details