Fall 2022 ECE 411 Practicum Project
Group 11 Team Members/Project Authors
- Cesar Ordaz-Coronel
- Charles Nasser
- Anthony Bruno
This practicum project is for the development of a Handheld Video Game Console. This gaming device has buttons for users to interact with the device electronics and view game graphics/animations on the console's display. This device was designed for beginner-electronics users who want to code their own games (also build/modify/customize their own portable game console). The handheld game console is a portabe device with a simple interface for users.
This handheld game console was designed with a simple user interface and at a affortable cost. The device contains 4 direction/navigation buttons, 2 action buttons, power switch, and a QWIIC I2C connector for adding accessory sensors and devices such as an accelerometer for motion control with the Handheld Video Game Console. The system uses a 3.7V 2000mah LiPo battery that is rechargable through the USB connection. The USB connection serves to not only charge the LiPo battery but also for user to upload their own coded games. This device uses the Arduino IDE (Processing language) to code games and upload/interact with the system electronics hardware. The gaming device has a 3D printed enclosure that can be modified for customized enclosure designs.
-
411documents - contains all documentation for the this project over the course of 10 weeks. This folder contains Level 1 and Level 0 functional decomposition block diagrams for the device, Bill of Materials, Proposed project schedule (Ghantt Chart), Test plans, project ideas, the Product Design Specification (PDS), device electrical schematics, device PCB layout, and 3D printed CAD files.
-
code - This folder contains any code that was generated to run the device, test the device, and debug the device during development. The software in this folder includes test programs, UI code for user, prototype code, and device video game code examples.
-
hardware/console-hardware - This folder contains all electrical schematics, PCB layout, components, CAD project, and mechanical CAD files. This is the main folder for DIY building, fabrication, modifications, or reworking this prjoect.
-
media - this folder contains all media related to this project. This includes test videos, debugging videos, test images and protoype images, demonstration videos, photos, etc.
-
LICENSE file - The current license of this practicum project is CREATIVE COMMONS ZERO V1.0 UNIVERSAL. This is an Open-Source License and this project is dedicated to the public domain. This project can be copied, modified, distributed, and performance of work (including commercial purposes) without asking for permission. For more information on CC0 1.0 Universal - Public Domain Dedication, please follow this link: https://creativecommons.org/publicdomain/zero/1.0/
-
README.md file - A markdown file (this file) that explains a majority of the files and folders of this practicum project.
-
Team Information - A markdown file that contains information about the team members of this practicum project.
For more system architecture details, go to the 411documents folder in this repsitory and view the G11_L1blockDiagram
The current license of this practicum project is CREATIVE COMMONS ZERO V1.0 UNIVERSAL. This is an Open-Source License and this project is dedicated to the public domain. This project can be copied, modified, distributed, and performance of work (including commercial purposes) without asking for permission. For more information on CC0 1.0 Universal - Public Domain Dedication, please follow this link: https://creativecommons.org/publicdomain/zero/1.0/
-
Go to the project Repository
-
Use one of the following options
-
Click the GREEN "<>Code" dropdown.
-
Click on "Download ZIP".
-
After the download is complete, unzip the folder using 7zip, PeaZip, WinZip, or any other ZIP application.
If you know how to use Git/GitHub, you can clone the project repository
-
Click the GREEN "<>Code" dropdown.
-
Copy the https git link.
-
Open git bash on your current machine and move to the directly on your local machine where you would like to clone the project repository to.
-
type the following commands.
git clone [the http git link you copied, you can use SHIFT + INSERT for this]
Now you have a local repository for this project.
You can now access all files and documents of this project
There are a few software tools that you will need in order to build, modify, or view the files in this project.
For the PCB design schematic, PCB layout, and any other items related to the electronics board, you can use any electronics CAD design and automation software. We highly recommend using KiCAD EDA for this project, a free, open-source electronics CAD EDA.
For the 3D Printed enclosure the project includes STL files and an AutoDesk Fusion 360 Archive file. We recommend you use Autodesk Fusion360 CAD for the 3D printed enclosure, which is free for personal use.
For software development of the device and coding your own games, we recommend you use Arduino IDE. We also recommend reading the tutorial for the 2.8" TFT LCD. We also recommend researching some of the libraries used in the original device program for more optimization (i.e FloppyDerp_with_UI.ino)
IMPORTANT NOTE: If you plan to use Arduino IDE to upload your own programs and create your own code, you MUST burn the arduino IDE Bootloader to the ATmega32U4 Microcontroller in the project. We HIGHLY recommend you use an Arduino as an ISP for burning the bootloader to the IC. You can follow a tutorial on how to set this up and the burning process at Arduino as ISP and Arduino Bootloaders.
IMPORTANT NOTE: If you plan to use Arduino IDE to create code and upload to the Nerd Box, PLEASE set the "Board" under "Tools" dropdown to "Arduino Leonardo"!
The Nerd Box has two ways to power the device:
-
Power using LiPo Battery: The Nerd Box can be powered using a LiPo battery with a JST connector on the back of the PCB. We recommend using a 3.7V, 2000mAh battery. This one from Adafruit is the best since it fits in the chassis and supplies around 40 hours of power to the Nerd Box.
-
Power over USB: The Nerd Box can also be powered directly over the USB connection. When the Nerd Box's USB is connected, if there is a LiPo battery attached then the LiPo battery will be charged up. THIS IS HOW YOU CHARGE THE LIPO BATTERY IN THE DEVICE. Again the USB serves as a way of charging the LiPo battery and programming/uploading games to the device. The Nerd Box can be powered over the USB without the LiPo battery as well.
- We recommend using Oshpark to have your own PCBs fabricated and using Digi-Key for components.
- If you have a 3D printer or printer service with fine detail/quality, you can modify the 3D enclosure with labels. Otherwise, you can use decals on the 3D Prints.
- The recommended screw size and type is a M2.2, self-tapping flat head screw that is roughly 16mm to 19mm in length. Here are some recommendations from McMaster-Carr: Link 1, Link 2, Link 3
- If you are planning to assemble the PCB yourself, we recommend that you solder a subcircuit first and then test with a bench power supply, then test with the LiPo battery. This ensures that everything will operate as expected. The order we recommend from the design schematics are: 3.3V Linear Regulator, LiPo Charger, USB Input Programming & Power, ATmega32U4 + ICSP, the rest of the components. Solder the LCD LAST! Also the board contains different test points. Reference the schematic on what each one does and utilize them in your testing!
- DO NOT USE A HEAT GUN OR PCB OVEN on the PCB with the LCD soldered down to the PCB! THIS WILL DAMAGE IT!
- Consideration: If you plan to have your board fabricated & fitted/assembled by another service, we recommend you add sodler bridges between subcircuits of the device and then add 0Ohm resistors to bridge the subcircuits together. This makes testing each subcircuit easier and able to use an assembly service.
- The 3D Prints for the enclosure don't have any labels for the buttons but you are free to modify the prints with labels. You can also just add decals onto the 3D prints. Go to YouTube or read any tutorials online on how to do this.