Build an inexpensive handheld Arduino color console

Arduino Pro Mini 3.3V 8 MHz

As most inexpensive LCDs work at 3.3v the Arduino for this project works at 3.3v too.

At only 8MHz the Arduino Pro Mini 3.3v is slow by today’s standards but fast enough for most classic games.

Other Arduinos or compatibles can be used in its place. If an 5v Arduino like the Uno is used you must use a Level shifter from 5v to 3.3v or you’ll risk frying the TFT.

Build an inexpensive handheld Arduino color console

2.2″ TFT 240×320 SPI

This high quality 2.2″ TFT screen has an integrated ILI9341 controller and we will be connecting to it using Hardware SPI.

While the screen is sold as an 240×320 pixels TFT, we’re going to use it at 320×240 pixels, rotated using a simple hardware configuration switch, making it more suitable for video games.

The size is perfect for a small handheld videogame and fast enough for most classic video game titles.

The TFT screen features an SDCART reader but for now we’ll not be using it.

3-axis joystick

A joystick with 3 axis is used to control de videogame, horizontal and vertical plus fire.

The first two controls connect to the Arduino using 2 ADC pins and the fire button a regular digital pin.


Sound FX is an important component of Videogames. A small buzzer is present to provide sound feedback to the player. It can be used to play music and sound effects.

Other components

  • Power switch
  • 4 AA Battery holder
  • 4x LR6/AA (rechargeable) battery
  • Female and Male headers
  • Perforated board/breadboard/PCB
  • Wire
  • 0.1µF capacitor

Connecting the TFT screen to the Arduino

Arduino Pin TFT Pin
Vcc Vcc
Gnd Gnd
5 CS
6 D/C
13 SCK

Pins 11 to 13 are Arduino’s hardware SPI pins. When hardware SPI is used, the Arduino SPI hardware handles all the communication overhead and we get more processing power for our code. Usually it also means the communication is faster.

Pins 5, 4, 6 and 9 are regular digital Arduino pins. 9 controls the backlight, without it there won’t be any image on the TFT screen. Pin 4 resets the TFT controller when required. Pins 5 and 6 help with SPI communication by telling the TFT when data or commands are being sent.


For more detail: Build an inexpensive handheld Arduino color console

Leave a Comment

= 3 + 7

(Spamcheck Enabled)

Read previous post:
Boost Converter Intro with Arduino

Let’s say that you’re trying to drive a few Nixie clock tubes, or you want to make a strobe light....

Scroll to top