Scaleable sensor/actor concept
-
Hello everybody,
what I'd like to propose is not merely a "Hardware Wish" but rather a new control concept based on the (theoretical) possibilities offered by the CAN-Bus on the Duet3. I know there already is the toolboard using the CAN-Bus for decentralized control but I thought about how to drive this even further.
In fact it should (technically) be possible to implement each function of a 3D-Printer (heaters, fans, endstops, Stepper drivers, etc.) as a single, self-contained board connected to the main control board only by means of power and the can-bus signals. For example a smart stepper driver board (I think this was already mentioned in another post) possibly with higher power levels available, a smart mosfet board for the heated bed, different styles of toolboards with different hardware options e.g. you don't need a stepper driver at the hotend for a bowden setup, if you add a digital/analog input board you could even go for a "brain-only" main control board. Just to name a few ideas.
I think this would add an enormous amount of flexibility to the ecosystem as a whole, consider a Voron2 printer which ends up depending on the configuration with up to 9 stepper motors. Of course this is already doable with current products but a decentralized approach could be much more elegant.
Has something like this ever been considered? I´d be happy to help with elaborating this further and could even lend a hand developing the hard- and software necessary.
Best regards
Pascal -
Great stuff.
Balance it all against the manufacturing/distribution outbound supply chains of a small to medium sized company. "SKU Sprawl" is a killer.
-
To make it work I think you'd need a few things...
Because there are so many combinations of I/O what you could do to minimize the number of SKUs would be to create maybe a 1, 2, 4, 6 position carrier board, then single function daughterboards, one stepper driver, one A/D I/O, one thermistor, one low power PWM, one high power PWM, etc. So for an XY stepper with endstop, you run power and CAN to a 2 position carrier and plop a stepper and A/D I/O daughterboard on. For a Z motor, you use a single position carrier. A hotend might use a 4 position carrier, etc.
The other issue is software related... Need to make sure that throughput on the bus is fast enough that a device like an endstop can on one carrier can trigger a motor stop on another in a reasonable amount of time.