I Built My Own Arduino Snake Game Console, Instead of Buying One

by telugu_mad_thinker in Circuits > Arduino

36 Views, 1 Favorites, 0 Comments

I Built My Own Arduino Snake Game Console, Instead of Buying One

snake.gif

DIY Handheld Snake Game Using Arduino Nano & Nokia 5110 LCD

Remember the classic Snake game from old mobile phones?

A few weeks ago, I randomly started thinking about those old retro handheld gaming consoles and classic mobile Snake games.

At first, I wanted to buy one.

But then another thought hit me:

“Why buy it… if I can build it myself?”

That simple question started this project. After many prototypes, wiring mistakes, debugging sessions, and game improvements, I finally built my own handheld Snake console using an Arduino Nano and a Nokia 5110 LCD.

The most fun part was creating a custom startup animation. Before the game starts, the screen shows a loading sequence, a snake animation, Telugu text reveal, and finally the Retro Snake Game title screen.

In this Instructable, I'll show you how I built it from scratch.

What You'll Learn

  1. Arduino game development fundamentals
  2. Graphics on monochrome LCD displays
  3. Reading button inputs with INPUT_PULLUP
  4. Generating sound effects with a buzzer
  5. Memory optimization on the ATmega328P
  6. Perfboard prototyping and soldering techniques

Let's build it.

Supplies

retro-snake.jpg
nano.jpg
speaker.jpg
soldering.jpg

Required Components

  1. Arduino Nano (ATmega328P compatible)
  2. Nokia 5110 LCD Display
  3. 10kΩ resistors - 4
  4. 1kΩ resistor-1
  5. 4x Tactile Push Buttons
  6. Passive Buzzer
  7. Perfboard / Zero PCB
  8. Jumper Wires
  9. USB Cable for Arduino Nano
  10. Soldering Iron & Solder

Optional Components

  1. 10kΩ potentiometer for LCD contrast
  2. Li-ion battery + TP4056 charging module
  3. Power switch
  4. 3D printed enclosure

Tools

  1. Arduino IDE 2.x
  2. Adafruit GFX Library
  3. Adafruit PCD8544 Nokia 5110 Library
  4. Soldering iron
  5. Solder wire
  6. Wire cutter
  7. USB cable

Watch the Final Console in Action

Before building, let's see what the final device can do.

Features:

  1. Classic Snake gameplay
  2. 4-button controls
  3. Sound effects
  4. Startup animation
  5. Multiple firmware versions
  6. Fully built on perfboard

Watch it here

Understanding the Nokia 5110 LCD

nokia5110.jpg

Nokia 5110 LCD

I selected the Nokia 5110 LCD because it is:

  1. Cheap
  2. Easy to find
  3. Low power
  4. Perfect for retro graphics

The display has a resolution of 84 × 48 pixels, which is enough for simple games like Snake.

Wiring the Components

wiring.png

Connections

Connect the Nokia 5110 LCD:

RST → D11

CE → D10

DC → D9

DIN → D8

CLK → D7

VCC → 3.3V

GND → GND

Connect the buzzer:

Buzzer (+) → D6 through 1kΩ resistor

Buzzer (-) → GND

Connect the buttons:

UP → D2

DOWN → D3

LEFT → D4

RIGHT → D5

All buttons connect to GND when pressed.

The firmware uses INPUT_PULLUP, so no external pull-up resistors are required.

Planning the Perfboard Layout

perfborad'.jpg

Planning is Important

Before soldering, place all components on the perfboard and plan the layout. and draw circuit on paper.

Things to consider:

  1. LCD position
  2. Button spacing
  3. Arduino placement
  4. Wire routing
  5. Future repairs

Planning first helps reduce wiring mistakes later.

Installing the Required Libraries

Screenshot 2026-05-29 165106.png

Installation Arduino Libraries

Open Arduino IDE.

Install these libraries:

  1. Adafruit GFX Library
  2. Adafruit PCD8544 Nokia 5110 LCD Library

After installation, restart the IDE if necessary.

Uploading the Firmware

Screenshot 2026-05-29 165752.png
Screenshot 2026-05-29 165908.png

Open your preferred firmware version.

Select:

Board: Arduino Nano

Processor:

ATmega328P

If uploading fails:

ATmega328P (Old Bootloader)

Click Upload.

The game should start after flashing.

Github Code link

Firmware Versions Explained

Screenshot 2026-05-29 170318.png

Several firmware versions are included.

snakegamelighterversion

  1. Core gameplay
  2. No sound
  3. Best for learning

snakegame-simplerversion

  1. Ultra-light version
  2. Lower memory usage

sankegamev1

  1. Sound effects
  2. Startup animation
  3. Speed progression

snake_game_full_version

  1. Score system
  2. Sound effects
  3. Startup animation
  4. Complete experience

startup_animation

  1. Startup animation only
  2. LCD testing and branding

I personally use snake_game_full_version.ino

Here We Go! Let's Play Snake

snake.gif

Congratulations!

If everything is connected correctly and the firmware uploaded successfully, your retro handheld Snake console should now come to life.

Power it up and enjoy the moment.

The display will show the startup sequence, followed by the game screen. Use the four directional buttons to control the snake, collect food, and try to beat your high score.

This is my favorite part of the entire project.

After hours of planning, soldering, debugging, and testing, seeing the game finally running on a device built from scratch feels incredibly rewarding.

Watching a game you programmed run on hardware you assembled yourself is a special feeling that never gets old.

Custom Startup Animation

animate.gif

This is my favorite part of the project.

Instead of showing a plain boot screen, I created a custom startup sequence.

The animation includes:

  1. Ready screen
  2. Loading sequence
  3. Animated snake
  4. Mad Thinker branding
  5. Retro Snake title screen

This small detail makes the console feel like a real product.

Common Problems and Fixes

LCD stays blank:

  1. Check wiring
  2. Verify LCD contrast

Upload fails:

  1. Try Old Bootloader option

Buttons not responding:

  1. Verify INPUT_PULLUP wiring
  2. Check GND connections

No sound:

  1. Verify buzzer polarity
  2. Check D6 connection


Customization Ideas

You can easily modify the project.

Ideas:

  1. Increase game speed
  2. Change sound effects
  3. Add new animations
  4. Create new game modes
  5. Add a battery pack
  6. Design a 3D printed case

The code is modular and easy to customize. Detail code instruction you can find in github

Final Thoughts

shutterstock_190549466.jpg

This project started with a simple question:

"Why buy one when I can build one?"

What began as nostalgia became a fun journey through electronics, game programming, prototyping, and problem solving.

The best part isn't playing Snake.

The best part is knowing that every pixel, every sound, and every button press comes from something you built yourself.

If you build your own version, I'd love to see it.

Thanks for Reading

More Builds on the way stay tuned!