Pranavi Boyalakuntla Fall 2020
With the rising popularity of lifestyle video games and lack of game consoles on the market during this pandemic, I created a USB powered game controller that could interface with the popular game: Stardew Valley. In this paper, I will cover the process by which I designed the schematic, PCB layout, and handles for this game controller.
During this pandemic, lifestyle video games have become more popular than ever before. Nintendo Switches have been sold out across the country and Animal Crossing sales have been through the roof. As one of the unlucky majority who keeps refreshing the Nintendo Switch page only to see "Sold Out", I (along with many others) have turned to playing a lifestyle game on my computer: Stardew Valley.
Stardew Valley is a simple game where you live life in a small town, talk to your computer created neighbors, and earn profit from mining and farming as you watch Joja, a large corporation, take over your small town.

The Stardew Valley Gameplay
A huge value proposition of the Nintendo Switch, however, is the tactile experience it provides with its proprietary "Joycons". Sitting on the couch farming in the virtual world, is a lot more fun and interactive than growing carrots at your desk. In this project, I created a handheld game controller to enhance the Stardew Valley gameplay experience in an attempt to recreate the tactile and "away-from-the-desk" value proposition that gaming console systems hold.
This project was made as a part of a project-based microcontrollers class offered in the fall of 2020. This was a semester long class where I exercised and grew my skills in KiCAD to iteratively design schematics, layout PCBs, electrical and firmware system design, and part sourcing. This project was done across 2 months.
In order to design a game controller for the Stardew Valley game, we need to look at the functionality the game requires.
<aside> 👉 Click on the open button (after hovering) next to the name of the functionality to view a visual representation of how this works.
</aside>
There are two types of inputs on most game controllers: buttons and joysticks. Joysticks control character motion and mouse capabilities while buttons handle the rest of the functionality. I employed these similar game controller design principles here as well. We will use two joysticks to handle the character movement and "mouse and click" functionality.
Outside of this, there is a requirement for 8 other types of keyboard inputs along with the entire number row with the '-' and '=' key inputs. Rather than using 8 buttons for the 8 keyboard inputs, we can use 4 buttons and their different combinations. For the number row requirement, we can use 2 buttons that increment and decrement the input along the number row.
To make the game even more engaging, we can use an accelerometer to allow the user to tap the controller to use a tool or place an item. Lastly, we can use an OLED display to show the battery voltage to make sure the user is aware if their battery charge is low.