Giving My ESP32-S3 a Personality
- ceceliazhen
- 4 days ago
- 2 min read
After successfully compiling and uploading code to my ESP32-S3 development board, I wanted to take the next step: replacing the default image with something personal.
A blank screen is functional. A custom screen feels like a project.

My goal was simple: display my own Cecelia's Protolab logo on the TFT screen. It sounded straightforward, but I quickly discovered that microcontrollers don't work with images the same way our computers do.
The challenge wasn't creating the artwork: it was converting the image into a format the ESP32 could understand. That meant learning about image dimensions, RGB565 color encoding, header files, memory limitations, and how image data is stored in program memory.

Along the way, I ran into mismatched image formats, compilation errors, and upload issues. More than once, I thought I had successfully replaced the image, only to see the original demo graphic still appear on the screen. Each failed attempt became another opportunity to investigate what was actually happening behind the scenes.
Eventually, I transformed my custom logo into a format compatible with the display and began experimenting with colors and layouts. Seeing my own branding appear on the TFT screen was incredibly satisfying. It was a small change, but it made the project feel less like a development board and more like a product.
This exercise taught me that embedded graphics involve much more than simply loading a picture. Every image represents a balance between resolution, memory usage, color depth, and performance.
Most importantly, it reminded me that personalization is one of the most rewarding parts of making. The hardware may be the same as everyone else's, but the moment your own design appears on the screen, the project becomes uniquely yours.
Next up: adding audio and bringing the speaker module to life. 🎵🤖 Beep Beep!



Comments