My team used the Button Board Deluxe from AndyMark. For us, it was no more difficult to program than any other controller. There is no other special programming needed. I will get you a picture of our labeling when I get a chance but we found it very useful for this year with all the various heights needed for cargo and hatch panels. Using the button board we rotated it longways so we had two columns of four buttons for various heights. Then we were able to use some of the buttons on the side to help us with preparing our climb to level two or three.
Feel free to reply or message me with any questions!
Not a true “button” board, but we at team Max ended up buying and using an Elgato Stream Deck this year. We built a background C# application that sets the button images and also feeder the data to vJoy. I highly recommend it as a fun small programming project and as a control system.
The major cons are:
You’re running a background app, so you should check before each match to confirm it’s actually running.
The buttons are really gummy, since they simply exist over a touch screen effectively.
The stream deck is much smaller than it appears to be online. The 15 buttons are very close.
Assuming you’re asking about whether we used the entire capacity of the controller, until this year, no. This year we used a number of rotary switches, and each switch position appears as a button, so we had to alter the program for the PSoC 5LP to turn some of the LED outputs into button inputs.
Our team has used these buttons from Andymark (https://www.andymark.com/products/button-board) inset into our polycarb driverstation this year with much success. The buttons come with connectors that slip onto the USB controller and the controller shows up as a joystick and only requires you to set the buttons (Similar to any other gamepad or joystick).
I’ve procured the parts for our button panel the past few years. The main components the past few years have been from Amazon, but as others have mentioned, Digi-Key, Sparkfun are also reputable vendors to look at.
The EasyGet USB arcade controllers are very easy to use and we like them because the students need to have EVERYTHING LED, which this controller supports. The controller is able to power light up micro-switches and run a signal back to the controller with one connector. The connectors are solid on both ends and we haven’t had any issues with loose wiring (quite the opposite actually when you miswire something). If you want to connect the leads to other switches with larger blades, you may need to get spade connectors that you can crimp on the ends. We used a powered USB hub to prevent over-current issues on the laptop (and to save on repeated insertions to the laptop ports)
The controllers support connecting up to 12 buttons, plus 4 more if you get creative by re-purposing the analog X and Y axis inputs for the traditional stick controls. We used 2 controllers and maxed out both of them with push buttons, switches and momentary rocker switches
According to our programmers - not difficult at all. Because we use two joysticks for driving, when you plug in these USB controllers, they appear in Windows as two more joysticks. The programmers were able to easily map functions to each button press as they normally did for the driver joysticks. The Driver Station software recognizes them as Generic USB Joystick and it is easy to troubleshoot and diagnose button press issues.
Nope, see above. We actually wanted to add a few more smarts to the panel by adding an Arduino and some digital relays to control the +5V to the LEDs to control them to be either ON, OFF, or FLASHING. This would indicate to the operator when certain operations could be performed, but we had to scale back the idea to “get it working first, then make it better”.
Rest of the build is just polycarb on a frame that we re-use every year. Dimensions are roughly 1’ x 1’ which can make spacing difficult, but definitely plan ahead before you cut & drill.
We bought a joystick kit off Amazon for ours. Practically plug-and-play to set up, and programming was very easy as well. We did kill the USB port on ours, making the Operator switch to an Xbox controller during SAC. He ended up liking it more than the button board (cries) so we’ve shelved the button board for this year.
Was nice while it lasted though.
Most of the kits I am seeing have 10 buttons. How do you get more than that? I still want the driver to use an X-box controller or joystick depending on their preference, but I want the secondary person to use the box. This year we would have needed more than 10 buttons on the box.
We had a few early instances of ‘generic usb device’ being in the wrong slot on the driver station, but once we got them locked in we were good for the entire event. Our operator really liked the custom controls and we’ve actually been iterating them between events with our laser cutter, super easy to cut a new board out of acrylic.
Neither of these are kits, but the TI Launchpad option supports up to 20 buttons, and the Cypress PSoC supports 22 buttons with the vendor-provided firmware. We altered the PSoC firmware to support 32 buttons this year, which is the maximum Windows and/or WPILib will support on a single “joystick” [reference].
All of this is controlled by an Arduino Due using the Arduino Joystick Library. I used a screw terminal prototyping shield for the Arduino to make it easier to re-use the buttons later. For maximum redundancy and protection against failures, each button and switch has it’s own independent ground and sense/power pin. That way a single wire coming loose will affect only a single element of the device. This made wiring a terrible pain, though.
The box is laser cut MDF with custom sharpie accents until such a time we manage to design and print a label sheet.
Super simple. The Arduino shows up as a standard joystick with the buttons you’ve specified. In our case we have a gamepad that has 22 buttons and no axes. As a safeguard, we added some code that ensures each toggle switch is reporting only one direction at a time and the code goes into a failure mode if this assertion fails.
Nope, if you can map a standard joystick, you can map a custom box.
If you would like our code for the box, feel free to PM me. It’s currently mixed in to our main robot source repo, which we will release after the season ends.
Got it. No, the bigger portion of the board is the actual gamepad controller. The smaller portion is a programmer to allow you to change the firmware on the bigger part. You could break off the smaller part and just use the bigger part, as long as you either put the right firmware on the bigger part before you break them apart or build a way to temporarily reconnect the 5-pin headers on either side of the “break.”
If you also get the arcade sticks that come with the buttons, be aware they are basically on/off. There is no axis with them We didn’t learn this until after the fact and changed our plan for how we moved forward at the end of our build.