Game Console
A custom-built gaming system with a WiFi-connected console and controller
Author: Alexandru Grecu
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-GrecuAlexandru
Description
The project is similar to a PlayStation or an Xbox. It has:
- a console that runs a game by itself and displays it on a screen
- a controller with buttons that runs separate from the console and transmits user input through WiFi
Motivation
The motivation behind this project is to explore the fundamental principles of gaming systems by building a simplified, custom console-controller setup using the Raspberry Pi Pico 2W. By separating the console and controller and connecting them via WiFi, the project mimics real-world designs like PlayStation and Xbox, offering insights into wireless communication, embedded systems and real-time game processing. It also provides an opportunity to develop practical skills in hardware integration and also 3D modeling for building the plastic cases of the 2 components.
Architecture
The system architecture consists of two main components: the Console and the Controller.
-
The Console includes the Raspberry Pi Pico W running the game logic, rendering 2D graphics (such as a Snake-like game) on an attached LCD display.
-
The Controller is a separate device, also based on a Raspberry Pi Pico W, equipped with tactile buttons to capture user inputs.
-
Communication between the Controller and the Console happens over WiFi. The Controller sends input data, and the Console processes it to update the game state and display it accordingly.
Log
Week 5 - 11 May
Started the project by setting up the Raspberry Pi Pico 2W and the LCD display. I managed to display a simple "Hello World" message on the screen. I also started working on the controller, connecting the buttons and testing their functionality.
Week 12 - 18 May
I finished the whole harware setup, including drawing power from the 9V batteries. I also managed to send button presses from the controller to the console over WiFi. The console receives the input and displays the pressed button on the screen.
Week 19 - 25 May
I finished coding the project and assembled the hardware over the 3D printed cases. The console now runs a simple Maze Game with enemies that move left-right or up-down.
Hardware
The project uses the following hardware components:
Console:
- Raspberry Pi Pico 2W
- 2.4 inch LCD IPS Display 240x320
- DC-DC Step Down Module
- 9V Battery Support
- 9V Battery
- Breadboard, Required wiring and connectors
- Plastic Case (3D printed)
Controller:
- Raspberry Pi Pico 2W
- Tactile Buttons
- 9V Battery Support
- 9V Battery
- Breadboard, Required wiring and connectors
- Plastic Case (3D printed)
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
3x Raspberry Pi Pico 2W | 2x microcontroller + 1x debugger | 117 RON |
Waveshare 2.4 inch LCD IPS Display 240x320 | Screen | 52 RON |
2x DC-DC Step Down Module LM2596S | DC-DC Step Down Module | 26 RON |
2x 9V Battery Support | 9V Battery Support | 2,60 RON |
2x 9V Battery | 9V Battery | 20 RON |
4 Tactile Buttons | Tactile Buttons | 5 RON |
Breadboard, Required wiring and connectors | Breadboard, Required wiring and connectors | 30 RON |
3D Printed Plastic Cases | 3D Printed Plastic Cases | 110 RON |
Total | 362.6 RON |
Software
Library | Description | Usage |
---|---|---|
embedded-graphics | 2D graphics library | Used for rendering simple 2D graphics on the display |
cyw43 | WiFi driver for Raspberry Pi Pico 2W | Used to manage WiFi connections between the Controller and Console |
mipidsi | MIPI DSI driver for Raspberry Pi Pico 2W | Used to interface with the LCD display |