STM32 Pocket Game / Dev Console is an early embedded hardware project where I was first introduced to battery-powered system design, LCD integration, and ARM-based microcontrollers.

The goal was to design a compact handheld device that could function as a simple game console or development board, featuring a small display and a limited set of input buttons.

STM32 Console


Inspiration

The project was inspired by a desire to recreate a very simple game experience — specifically Snake from the original Nokia 3310 — while learning embedded hardware design along the way.

Rather than emulating the game in software, the intent was to build the hardware first and adapt the firmware to the platform’s constraints.

During development, it became clear that the chosen microcontroller had limited memory resources, and storing graphical assets quickly exhausted available flash and RAM. As a result, the original game idea was postponed in favor of focusing on display control, input handling, and system bring-up.


Hardware design choices

The device is based on an STM32F-series microcontroller, selected primarily for:

This project marked my first use of SWD (SWDIO/SWCLK) for programming and debugging, as well as STM32 configuration tools.

Key hardware elements:

The LCD driver was available and functional, and SPI provided sufficient bandwidth for basic graphics and acceptable refresh rates given the hardware limits.

STM32 Console PCB


Power and battery considerations

This was my first battery-powered PCB, which introduced several new considerations:

Using a boost converter simplified the power architecture but required attention to component selection and layout to avoid instability under load.


Firmware integration

Firmware development was done using the official STM32 IDE and tooling.

This allowed:

While powerful, this toolchain was also more complex than what I had previously used, making this project an important step toward professional embedded workflows.

A limitation encountered was the use of graphics libraries that were not well-suited to the MCU’s memory constraints, which reinforced the importance of matching software architecture to hardware capabilities.


Manufacturing considerations

The PCB was manufactured and sponsored by PCBWay.

Assembly was done manually. During the first revision, an error in the schematic caused an ADC-related pin configuration issue, resulting in repeated pin failures during testing. This required manual desoldering and rework.

The issue was corrected in the second revision, reinforcing the importance of:


Open-source project

Both the hardware design files and firmware source code are available on my GitHub profile.

The project is shared as a learning reference and reflects an early stage of my embedded development experience.


Conclusion

This project was an important milestone in my transition from simple microcontroller projects to battery-powered embedded systems with displays.

Key lessons learned:

Although simple in scope, this project provided foundational experience that directly influenced my later, more advanced embedded and PCB designs.

STM32 Console PCB