Skip to main content
Version: FILS English

Lil-console

My project is named Lil-Console and it's a little portable retro gaming device.

info

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

Alt text

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

Alt text

Alt text

Schematics

Alt text

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WMain microcontroller board40 lei
LCD SPI 1.8" (128x160) DisplayUsed to visually display information or interface elements.29 lei
PS2 Joystick ModuleProvides directional input and control options.4 lei
[Simple PCB Boards]Base for soldering and connecting components.[had at home]
ButtonsFor control options2x 2 lei

Software

LibraryDescriptionUsage
rp-halHardware Abstraction Layer for the RP2040 microcontrollerProvides access to RP2040 peripherals
embedded-graphics2D graphics library for embedded systems without a display serverRenders shapes, text, and images on the display
randRandom generatorUsed to make random values for games
embedded-halA set of traits for embedded hardware abstraction in RustProvides generic interfaces for timers, digital I/O, SPI, etc
st7735Driver crate for ST7735-based LCD displaysDrives the display with embedded-graphics support
heaplessFixed-capacity data structures without dynamic memory allocationEnables usage of vectors, strings, and other collections without a heap
mipisdiDriver for MIPI DSI compatible displays like ST7735Interfaces MIPI DSI displays with embedded-graphics support
ufmtLightweight, no_std-friendly formatting crateEnables efficient string formatting with minimal binary size
  1. link
  2. link