Redundant control of motor/motor driver

Goal: Redundant control a DC linear actuator/motor with two microcontrollers (e.g. Arduino with ethernet/wifi, or esp8266). The two microcontrollers are both powered on but not being used to control the motor at the same time. If one microcontroller fails, the other microcontroller can be used.

Would either of the below two designs work? Pros and cons? Will the setup cause “conflicts” on INA, INB, or any of the other pins on the microcontrollers and motor drivers? Any other recommendations to achieve the goal?
(I used the Pololu product images for the design drawings.)
Thank you.


Your first design proposal is feasible as long as each microcontroller can handle the other’s logic level (otherwise you might add some voltage divider or logic level shifters to your design), and you are careful not to send signals from microcontrollers at the same time (i.e. when one is sending signals, the pins on the others should be configured as inputs). That probably means you would need some communication between the two controllers, which could prevent the controllers from truly being redundant for each other depending on the details of your application.

Your second design proposal is not feasible since it shorts the outputs of the drivers together. The only practical way something like that might work would be if there were something between the motor driver outputs and the motor to isolate them from each other. (You could use our something like a 2-Channel SPDT Relay Carrier for something like that.)

The safest solution would probably be to have a third microcontroller that solely connects to the motor driver and can communicate with both of the other controllers, The new microcontroller would essentially function as a multiplexer, listening to the commands from both of your other devices and deciding which one to use. You might consider one of our Arduino compatible A-Star Programmable Controllers for that.

- Patrick

Appreciated the quick response and helpful information/ideas. I am looking into the third microcontroller solution.

Regarding Design 1: If I don’t send signals from both microcontrollers to the motor driver at the same time, is it ok to keep the microcontrollers pins as output, e.g. the pin to INA, the pin to INB, etc?


Configuring a pin as an output (i.e. put it in a low-impedance state) is sending a signal because that allows the pin to either source or sink a relatively high current. If two microcontroller pins are connected, then at least one of them should always be configured as an input (i.e. put in a high-impedance state) so that it does not try to supply/drain too much current for the other pin.

- Patrick

Thank you, Patrick.