20. Project development¶
What does it do?¶
I designed the button box as a custom input device, meant to streamline interactions in gaming, simulations, and even productivity tasks. It provides tactile feedback through well-placed switches, encoders, and buttons, enhancing control beyond the standard keyboard.
Who’s done what beforehand?¶
Plenty of enthusiasts have built button boxes for flight sims and racing setups. I looked into projects from Instructables, previous Fab Academy projects, and Arduino communities, studying how others approached usability and technical challenges. Then, I refined those ideas to better suit my needs.
What did I design?¶
I focused on creating a sleek, well-integrated device that balances function and form. My design included:
- Ergonomic layout to maximize efficiency and comfort.
- Aesthetic considerations for a modern, polished look.
- Thoughtful placement of switches and encoders for intuitive use.
What sources did I use?¶
I pulled information from forums, datasheets, and GitHub repositories to understand best practices. I also consulted with many experts in the lab as they were knowledgeable in their subject of expertise.
What materials and components did I use?¶
- Microcontroller: XIAO RP2040.
- Switches: A mix of toggle switches, push buttons, and rotary encoders.
- Enclosure: 3d Printed.
- Wiring: Soldered connections for reliability.
- Software: Arduino IDE with the Joystick library.
Where did they come from?¶
I sourced componets from the Lab, Bambu Labs, and Amazon.
How much did they cost?¶
The total cost of materials was around $270.83
For me, the total cost of this project was $96.54
| Item Link | Item Name | Price | Notes | In Lab? |
|---|---|---|---|---|
| Black PLA | $19.99 | YES | ||
| Black Acrylic Panel | $30.07 | YES | ||
| Heat Set Inserts | $6.99 | YES | ||
| M3 Machine Screws | $1.50 | YES | ||
| Female Jumper Wires | $6.59 | Buy 2 | YES | |
| Male Pinheaders | $4.13 | YES | ||
| Solder | $7.99 | YES | ||
| Seeed Studio – Xiao RP2040 | Xiao RP2040 | $3.99 | YES | |
| USB C Cable | $8.99 | 2 needed | YES | |
| 1206 10k Ohm Resistors | $0.56 | Buy > 50 | YES | |
| Digi-Key – CD4051BEE4 | CD4051BEE4 | $0.86 | 1 needed | NO |
| Digi-Key – CD74HC4067M96 | CD74HC4067M96 | $0.78 | 2 needed | NO |
| Grayhill 58J8A45-01-1-05N | Key Switch | $76.90 | YES | |
| Amazon – Metal Toggle Switch (B0BMVLKJHL) | Toggle Switch | $14.99 | NO | |
| Amazon – STARELO Push Button | Push Button | $17.49 | NO | |
| Amazon – JTAREA Rotary Encoder | Rotary Encoder | $7.99 | NO | |
| Amazon – Nilight ON/OFF/ON Rocker Switch | ON/OFF/ON Rocker Switch | $8.09 | 2 needed | NO |
| mxuteuk Momentary Rocker Switch (B0885W19KL) | ON/OFF/ON Rocker Switch | $7.99 | NO | |
| Amazon – ZJWZJH Rotary Toggle Switch | ON/OFF/ON Rotary Toggle Switch | $15.99 | NO | |
| Amazon – Nilight Latching Push Button | Latching Push Button | $13.49 | NO |
What parts and systems did I make?¶
- The PCB for efficient input processing.
- The Code for signal handling.
- Enclosure design for stability and aesthetic appeal.
What processes did I use?¶
I went through: - PCB design. - System Integration. - 3D printing the enclosure. - Embedded Networking.
What questions did I answer?¶
I tackled: - Compatibility with different software ecosystems. - Optimal placement and responsiveness of controls. - Power consumption and microcontroller limitations.
What worked? What didn’t?¶
- Worked: Button responsiveness, smooth integration, durable enclosure.
- Didn’t: Initial wiring complexity, firmware troubleshooting, occasional compatibility issues.
How did I evaluate it?¶
I tested it extensively, analyzing responsiveness and durability, and gathered feedback for refinements.
What are the implications?¶
This project contributes to the open-source hardware space, offering a refined approach to custom controllers. It highlights structured design thinking and could expand into gaming.
Dissemination Plan¶
My project will be released under the Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) license. This license allows others to freely use, modify, and share the project for non-commercial purposes, while preserving credit to the original creator and encouraging community collaboration. I chose this license because it supports open access and learning, while preventing unauthorized commercial use. If I decide to turn the project into a product, I may adopt a dual-license model or develop a separate commercial version that can be sold while maintaining the original educational edition as free and open-source.
Placeholders¶

These are in the root of my directory.