We use two of
these to control our robot; I think they have 12 buttons you can check. The driver controls the base of the robot and the minibot deployment system while the operator controls the arm and the pickup.
Programming wise, you need to declare two controllers (not sure if you guys are using WindRiver like us) but Joystick *driver; and Joystick *operator; are declared and motors are controlled based on inputs from these two controllers.
Is that enough information? Feel free to ask question!