I have a machine/robot that has a manual joystick to control forward and reverse. The joystick is connected to a mechanical linkage system that goes forward/backward, which than controls a hydraulic pump. I want to be able to "hack" the joystick to control the forward/backward motion through software. I have a few design criteria that I am trying to work around, hoping to get some input/help:

1) I need a failsafe. If I cut the power while the machine is moving and then turn it back on, I would like the machine to start in neutral, not where (forward/backward) it last was.

2) Its not a binary forward/backward so some voltage control would be nice to make it smoother.

3) Able to control manually and through software. I would like to send X voltage to it through software (arduino + hardware) but not lose functionality if someone wants to take physical control.

Any advice on what kind of set up I would need to do this?

  • $\begingroup$ For the failsafe, use a switch or relay that you have to prime before the system gets enabled. It will reset once power is cut, only to re-enable after human interaction. Most electric tools make use of this. The joystick can be manoeuvred by solenoids or pneumatic actuators, so you can also overide it by moving the joystick yourself. Use springs and dampers to smooth the automated operation. $\endgroup$
    – Bart
    Feb 8, 2018 at 10:07

1 Answer 1


I suggest: joystick->arduino ->motor driver for arduino-> micro peristaltic pump

1) I need a failsafe.

no prob as long as joystick returns to center position( joysticks usually have springs for that)

2) Its not a binary forward/backward so some voltage control

arduino has pwm output, if you put a capacitor you get analog output, but maybe that's not even required because the driver will convert that for you. Same for forward reverse, if the driver doesnt do it, you'll need a H-bridge to switch polarity on the pump

3) Able to control manually and through software.

both manual and software control will go through the arduino, so it's just a few lines of code to define the priority


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.