The shield contains two L293D motor drivers and one 74HC595 shift register. The shift register expands 3 pins of the Arduino to 8 pins to control the direction for the motor drivers. The output enable of the L293D is directly connected to PWM outputs of the Arduino.
To increase the maximum current, the L293D allows extra chips with “piggyback”. Piggyback is soldering one or two or three extra L293D drivers on top of the L293D drivers on the board to increase the maximum current. The L293D allows parallel operation.
The Motor Shield is able to drive 2 servo motors, and has 8 half-bridge outputs for 2 stepper motors or 4 full H-bridge motor outputs or 8 half-bridge drivers, or a combination.