I wanted to share a design for a “secondary controller” that has worked really nicely for 3419 for the past couple of years. We use a secondary controller to activate functions that the main driver doesn’t need to have on his or her joystick - for example, initiating an end-game mechanism.
Our design goals were:
-Rugged: These tend to take a beating at practices and competitions, so we wanted to make something that would hold up to being dropped, smashed, etc.
-Reliable: It has to work perfectly every time.
-Reusable: It should be able to be customized from year to year with minimal effort.
The design utilizes an Xbox Adaptive Controller ( https://www.microsoft.com/en-us/d/xbox-adaptive-controller/). The controller is intended as a basis for building video game controllers for players who have limited mobility. It uses a variety of buttons and devices that can be plugged into the hub to create totally custom game controllers.
To make a joystick for FRC purposes with it is really simple:
-Buy any buttons or switches that you might like. We use this sort of button because it’s big and tactile, but any kind of switch will work: https://www.sparkfun.com/products/9340
-Buy a 3.5mm male-to-male stereo cable, like this. You need one of these for every two buttons on your controller https://a.co/d/2t3tdHm
-Cut the cable in half, strip the wires inside the cable, and solder them onto the leads of the button.
-Plug the stereo cables into the Xbox Adaptive and make note of which button is plugged into which port.
-Make a nice box with holes on top and attach the buttons. We used 1/4” polycarbonate for this.
-Run a USB A to USB C cable from the Xbox Adaptive to the driver station laptop. Remember to build some strain-relief into the cable.
-In WPILIB, this shows up as a regular XboxController object and you can access the buttons and switches the same way you do a normal controller.
In subsequent years, you can reuse most of the setup, and just replace the top of the box to have a button layout that makes sense for that game.
I’m happy to answer any questions you might have.