[Update] Latest recommendation is to use Klipper firmware https://github.com/KevinOConnor/klipper with 2 Arduino+Ramps 1.4 or other similar boards. Connecting 4 motors to a separate stepper driver. This allows the use of mechanical auto gantry leveling or 4 endstop configuration.
There are several ways to connect 4 stepper motors to a single RAMPS like board.
1. Connect them in mixed parallel and a serial connection to a single stepper driver. This has worked for me for some time.
2. Connect 2 motors on one side of X in series to Z stepper driver and connect 2 other motors in series to E1. Look to enable “Z_DUAL_STEPPER_DRIVERS” in Configuration_adv.h in Marlin. The benefit of this connection is that each motor receives 2 times more power than in the first method, and also is a possible step to have “Z_DUAL_ENDSTOPS” enabled what will make homing on left and right side of the printer independent. I have implemented this method for a 3 stepper motor schema to fight one side creeping.
This video shows use of both Z_DUAL_STEPPER_DRIVERS and Z_DUAL_ENDSTOPS:
3. “Split a signal not a load” all previouse methods are splitting load from stepper drivers which limits power output to each stepper. For example if your PSU is 12V output to 2 stepper motors connected in series will be 6V. So instead of splitting load 3rd method splits signal. Bellow schema is presenting use of CNC shield as stepper extender:
and the video of the schema in working example:
You may also combine method 2 and 3 and instead of “Connect 2 motors on one side of X in series to Z stepper driver and connect 2 other motors in series to E1” connect signals from Z stepper driver input to X and Y pins of CNC shield and E1 signals to Z and A.