Lil-console
My project is named Lil-Console and it's a little portable retro gaming device.
Author: Simion Sarah Stefania
GitHub Project Link: link_to_github
Description
The goals of this project is to use the Raspberry Pi Pico 2W microcontroller to build a basic retro portable console. A joystick and a few buttons are used for movement, navigation and selection. The games will have a classic gaming vibe, for this I choose the games "Pong" and "Snake", along with a simple menu system.
Motivation
I choose this idea because I am currently very passionate about games and I enjoy playing games on both computer and consoles, but I haven't experienced the retro gaming consoles world and thought that if it is possible to make one myself now I would really enjoy the making of it and definitely the using of it.
Architecture

Log
Week 5 - 11 May
I attached all the components and made a suitable kicad schmatic.
Week 12 - 18 May
I added a debugger and I tried testing the wiring to the display with a simple code of the spi connection.
Week 19 - 25 May
I added all components and I started working on the games. After I finished the snake game, the most problematic error I encountered was setting the thresholds of the joystick, just to realize the x axys wasnt working so I had to change the joystick.
Hardware
This are the hardware parts that I would like to use:
- Raspberry Pi Pico 2W (main microcontroller) + one used as a debugger
- LCD SPI 1.8"(128x160) Display
- PS2 Joystick Module and a button


Schematics
Bill of Materials
| Device | Usage | Price |
|---|---|---|
| Raspberry Pi Pico 2W | Main microcontroller board | 40 lei |
| LCD SPI 1.8" (128x160) Display | Used to visually display information or interface elements. | 29 lei |
| PS2 Joystick Module | Provides directional input and control options. | 4 lei |
| [Simple PCB Boards] | Base for soldering and connecting components. | [had at home] |
| Buttons | For control options | 2x 2 lei |
Software
| Library | Description | Usage |
|---|---|---|
| rp-hal | Hardware Abstraction Layer for the RP2040 microcontroller | Provides access to RP2040 peripherals |
| embedded-graphics | 2D graphics library for embedded systems without a display server | Renders shapes, text, and images on the display |
| rand | Random generator | Used to make random values for games |
| embedded-hal | A set of traits for embedded hardware abstraction in Rust | Provides generic interfaces for timers, digital I/O, SPI, etc |
| st7735 | Driver crate for ST7735-based LCD displays | Drives the display with embedded-graphics support |
| heapless | Fixed-capacity data structures without dynamic memory allocation | Enables usage of vectors, strings, and other collections without a heap |
| mipisdi | Driver for MIPI DSI compatible displays like ST7735 | Interfaces MIPI DSI displays with embedded-graphics support |
| ufmt | Lightweight, no_std-friendly formatting crate | Enables efficient string formatting with minimal binary size |