Skip to content

Final Project

Outlining my Final Project

My Project:

For my final project, I’m creating a button box—a small device with multiple buttons designed to enhance immersion while playing video games. My focus is on driving games, so I’ve tailored the design to resemble the layout of a truck cab.

My goal for this project is not only to make a fuctional button box, but also to make it aesthetically pleasing. I really want this project to look like a real product. So Im striving to make the quality as high as I can while juggling my weekly projects.

Weeks I Might Use

  1. Computer Aided Design
  2. Embedded Programming
  3. 3D Scanning and Printing
  4. Electronics Design
  5. Computer Controled Machining
  6. Electronics Production
  7. System Integration
  8. Invention, Intelectual Property and Income

Inspiration

A link to the box I’m taking inspiration from.

My Concept Design

These are my designs for the button box.

This is what it should look like on my current simulator.

Gantt Chart

Materials

Buttons:

Item Type Description Link
Engine Start/Stop Key switch Realistic ignition control [Buy here]https://www.arrow.com/en/products/58j8a45-01-1-05n/grayhill()
Parking Brake Push/Pull Toggle Switch Engage/disengage parking brake Buy here
Trailer Attach/Detach Push button Quick trailer coupling/decoupling Buy here
Headlights & High Beams Rotary Switch Low beams/high beams Buy here
Wipers Rotary switch Cycle through wiper speeds Buy here
Horn Push button Standard horn activation Buy here
Air Horn Heavy-duty push button Loud air horn for immersion Buy here
Differential Lock Toggle switch Engage/disengage differential Buy here
Lift Axle Toggle switch Raise/lower front lift axle Buy here
Trailer Axle Toggle switch Raise/lower trailer axle Buy here
Retarder Control ON/OFF/ON Toggle Adjust retarder level incrementally Buy here
Cruise Control Toggle switch Activate/deactivate cruise control Buy here
Speed Adjustment Rotary encoder Fine-tune cruise speed Buy here
Navigation Controls Push button Cycle through in-game navigation screens Buy here
Windows Up/Down ON/OFF/ON Rocker Raise/lower window incrementally Buy here
Radio Stations Rotary encoder Scroll through channels Buy here
Cycle Radio Presets Push button Quick preset change Buy here
Engine Brake On/Off Toggle switch Activate engine brake system Buy here
Engine Brake Adjust Two push buttons Increase/decrease braking intensity Buy here
Trailer Brake Push/Pull Toggle Switch Momentary trailer brake activation Buy here
Hazard Lights Rocker switch Turn hazard lights on/off Buy here
Suspension Height (Front) ON/OFF/ON Toggle Adjust suspension height incrementally Buy here
Suspension Height (Rear) ON/OFF/ON Toggle Adjust suspension height incrementally Buy here
Accept Button Push button Confirm in-game selections Buy here
Auto Fueling Latching Pushbutton switch Enable/disable automatic fueling Buy here
Qty Description Price Link Notes
1 3d Printer PETG Filament –.00 $ http://amazon.com/test
1 M Nuts and Bolts –.00 $ http://amazon.com/test
1 LED Light Strip –.00 $ http://amazon.com/test

My Input Device

This week, my input device was a Greyhound single-pole, five-throw rotary key switch. I’m very grateful to Mr. Dubick for giving this to me for free, as it’s an expensive component on its own.

Breadboard Prototype

Before designing my PCB, I wanted to fully understand how the switch worked. Mr Dubick helped me trace a copy of the datasheet for the switch, which was pretty usefull to see. I also used a schematic I found on an Arduino forum to wire it onto the breadboard. The schematic used a pull-up resistor configuration for each switch position, with all of them connected to ground. I followed this setup and connected the necessary pins to the ESP. Everything worked fine.

During this process, I discovered that all pins, except for the selected one, are set to high by default. I made a mental note to account for this in my code later to ensure proper functionality.

After coding, this is what it looked like.

Designing the PCB

Since this week was shortened due to spring break—and the lab would be closed—I had to design my PCB within just a few hours. This time constraint led to a few issues, which I’ll discuss later.

The PCB design itself was straightforward. I chose 1206-sized SMD components since I was already familiar with them from Design Week. The schematic was relatively simple, but transferring it to the PCB layout proved more challenging. Fitting all the traces onto a single layer required some careful routing, but I eventually got everything to work. Once finalized, I sent the design for milling.

Milling the PCB

Milling the PCB went smoothly. Since the lab was closing in 15 minutes, I had to work quickly and didn’t have time to document the process in detail. However, it was very similar to what I had done during Electronics Design Week—straightforward and without issues.

Soldering

For soldering, I didn’t have access to the lab, so I relied on the SMD book provided for Fab. I used five 10K resistors, five LEDs, my soldering iron, a solder fan, and a modeling mat to protect my wooden desk. The soldering process took about 45 minutes, but it was relatively simple.

The biggest challenge was the lack of a multimeter—we lost the one we usually have at home. To solve this, I came up with a clever workaround. I took a spare chip, placed it on a breadboard, and connected the 3.3V pin through a 220Ω resistor to a jumper cable, which I left hanging. Then, I connected another jumper cable to ground. Using this setup, I was able to test the polarity of the LEDs and ensure they were oriented correctly. This method worked even better than I expected, and I felt pretty proud of my improvisation.

I also soldered female jumper wires to my board so I could connect the rotary key switch to the board.

Software Used

Things I Swiped From Corporations

Button Box Design I Took Inspiration From

My Files


Last update: May 9, 2025