The brain: why ESP32-S3?

My first instinct was a Raspberry Pi. Familiar territory, runs Linux, tons of tutorials. But for a dedicated single-purpose device like a Tamagotchi, it's overkill. Slow boot times (10–30 seconds), power hungry, and way more complexity than needed.

The ESP32-S3 is purpose-built for this kind of thing. It boots instantly, sips power (great for battery life later), and has more than enough horsepower for driving a small display and running game logic. The dual-core 240MHz processor with 8MB PSRAM is honestly absurd for a virtual pet, but it means I won't hit any performance walls.

The screen: 1.9" IPS LCD

I went back and forth on screen size. Too small and the pixel art loses detail. Too big and it stops feeling like a handheld toy. The 1.9" IPS display (170Ɨ320 resolution) on the LILYGO T-Display-S3 hit the sweet spot.

Quick note for anyone confused by "IPS vs LCD": IPS is a type of LCD. It just has better viewing angles and color accuracy compared to cheaper TN panels. I also looked at AMOLED options (deeper blacks, gorgeous contrast), but at nearly double the price for a first project, it wasn't worth it.

The board: LILYGO T-Display-S3

LILYGO T-Display-S3 board
LILYGO T-Display-S3 — ESP32-S3 and 1.9" IPS display in one package

Instead of buying an ESP32 and a screen separately, I went with the LILYGO T-Display-S3. It's an all-in-one board with the ESP32-S3 and 1.9" IPS display already integrated: dual-core LX7 at 240MHz, 16MB Flash, 8MB PSRAM, USB-C for power and programming, a JST battery connector for a future LiPo, and a built-in programmable button on IO21.

That built-in button means I only need 2 external buttons instead of 3 for my Left / OK / Right control scheme. Strong community support with tons of Arduino and PlatformIO examples sealed the deal.

Additional components

Beyond the board, I need surprisingly little: two tactile push buttons for Left and Right, one passive buzzer (3V–6V, 16 ohm) for sound, a mini breadboard for prototyping, and short jumper wires. I'm skipping the LiPo battery and 3D printed case for now — USB-C power is fine during development.

Total cost

Living in Indonesia, components on Tokopedia run higher than international prices. The LILYGO T-Display-S3 was Rp 435,000, buttons and buzzer ~Rp 5,000, breadboard and wires ~Rp 31,000, soldering kit ~Rp 88,000. Total: roughly Rp 560,000 — about $35 USD.