Custom Gaming Controller
In the final year of the engineering curriculum at the University of Denver, all seniors are assigned a "Senior Design Project." This project is set as a group project that works directly with a company to find a solution to their problem. Each team contains engineers of different disciplines and utilizes everyone's skills to try their attempt at solving the sponsor's issues.
For my Senior Design Project, my team was assigned to make a 2nd generation controller that boasts various improvements over the company's original controller. This type of controller is mostly meant for fighting games like Super Smash Bros; however, it can be used on most common consoles and all games. Besides the basic functionality, some of the sponsors' desired improvements included increased speed, production time, and cost. As the Electrical Engineer on my team, I took on the task of developing the PCB that the entire project would be based around.
1. The first part of this process started with designing an outline of how the buttons should be laid out in illustration software and then creating a dxf template of the layout in Fusion 360 for use in the KiCad, the PCB CAD software used in this project.
2. The next step was to create the schematic that the PCB would be designed around. This schematic had to consider how a USB-C Port can be routed to a Raspberry Pi Pico and act as its sole port in addition to considering how to route 20 buttons to the GPIO ports on board the Pi Pico. That schematic turned out as follows:
3. Once the Schematic was built, I could choose components and start populating the PCB. During this part, I could use the dxf layout created before to know where switches should be placed. After this, I simply had to route the traces.
Note: One difficult aspect of this project was routing the traces when there was a matrix configuration across the switches. This is because minimal traces should be on the rear due to the electromagnetic interference caused when breaking the rear copper fill. This was tamed simply by routing the system several times until minimal traces were on the rear, and the front traces looked clean.
4. After this stage, all that was left was ordering the PCB and components from a manufacturer, soldering all the components, and testing. I ordered from PCBway for this project, and the results were fantastic.
Note: All parts except the switches were surface mounted using a solder template and a re-flow oven, as seen in the pictures above.
Once my part of the project was done, I could hand over one of the PCBs to our Computer Engineer, who could then begin implementing his code and debugging. Additionally, I was in close coordination with our mechanical engineer the whole time so that he could design a 3D-printed enclosure for the PCB. With regard to the enclosure, the sponsor requested the lid be made of clear acrylic, and luckily, I used to teach people how to use our school's laser engraver, so laser cutting this lid was an easy last step.
Finally, when the code was finished and everything was complete, the product was fully functional and a blast to use. My team and I then had a pitch on the product and a live demonstration for a few dozen people on how it worked before handing everything over to the sponsor.