
I Built most meaningful Esp32 project even until this for me
Hey everyone!
I wanted to share a project that recently became incredibly meaningful to me. I’ve been building my own DIY Tamagotchi using an ESP32-C3 and a 1.69-inch ST7789 display.
While I was right in the middle of working on the firmware, my orange cat, Tarçın, managed to run away from home. I was absolutely devastated because he’s truly the happiest part of my life. Thankfully, he showed back up at the door a day later, completely exhausted but completely safe.
That scare completely changed how I looked at this build. To celebrate him being home, I used Gemini AI to help me sketch out pixel art frames of his likeness and coded him directly into the hardware as the main character! Now, he lives on my desk as a virtual pet companion. You can feed him, play mini-games, clean up the room, and put him to sleep—just like a classic Tamagotchi.
🛠️ The Hardware Setup
- MCU: ESP32-C3 (Handmade compact dev board layout)
- Display: 1.69-inch ST7789 screen (240x280 resolution)
- Inputs: 3x Tactile buttons using internal
INPUT_PULLUP(no external resistors needed!) - Audio: A small buzzer for game alerts
💻 Make It Your Own (Completely Open Source!)
The software is written in the Arduino IDE (v2.3.10). I designed it with a highly modular layout split into specific files like character, input, display, and sprites so anyone can modify it. It’s fully open-source under the GPL-3 license.
If you want to immortalize your own pet into a handheld virtual pet, I made sure the sprite logic is straightforward to swap out. If you keep your custom animations at a 90x90 resolution, you can just convert your images to a hex matrix and paste them straight into the code!
🎥 Watch the Step-by-Step Guide & Full Demo:
https://www.youtube.com/watch?v=zm_Z1XUjkTI
💻 Grab the Schematic & Source Code on GitHub:
https://github.com/derdacavga/Esp32-Tamagotchi
(Quick tip for anyone trying to build this: If you run into flash memory limits adding tons of custom pet animations, try swapping the screen for a lower-resolution ST7735 display! It frees up massive memory for extra frame assets.)
Let me know what you think, or if you have any ideas for mini-games I should add to the next software update!