All resources
Transcript & details below

Build an ESP32-S3 Desk Buddy With a Real Personality

Build Desk Pal Buddy, a 3D printed desk pet on a round Waveshare ESP32-S3 touch screen. Print a three-part case, flash it from your browser, and he giggles, gets grumpy, falls asleep and reminds you to drink water.

Tutorials Beginner 2:00 46 views Nov 12, 2026

Featured in this video

About this video

A desk pet with real moods

Desk Pal Buddy is a tiny round desk pet with big eyes. He reacts when you touch him, gets bored when you ignore him, falls asleep when he's tired and reminds you to drink water. It's a beginner project that teaches the basics of electronics, 3D printing and coding, with no soldering. The full guide, print files and code are free in the Desk Pal Buddy build guide.

There is no camera and no microphone. He feels your finger through the touch screen and feels movement through a tiny motion sensor. His moods, memory and habits are a few numbers changing over time.

What you need (about $32)

Part Notes
Waveshare ESP32-S3-Touch-LCD-1.28 Round 1.28-inch touch screen, motion sensor and USB-C on one board. Get this exact touch version: the touch layer and motion sensor are what let him react
3D printed case Three parts (main frame, inner ring and foot), about 14 g of PLA, one plate, no supports
USB-C data cable Powers him and loads the program. Charge-only cables won't work
Chrome or Edge For Espressif's web flasher. Nothing to install

How to build it

  1. Print the case. PLA, 0.2 mm layers, 2 walls, 15% infill, no supports. All three parts fit on one plate and take about 30 minutes on a Bambu Lab P1S.
  2. Press the board into the inner ring, screen first, with the USB-C port in the ring's notch. It's a press fit.
  3. Slide the ring into the main frame so the port lines up with the side window.
  4. Clip the foot on the back. It tilts him up toward you.
  5. Plug in the USB-C cable last. With the cable already in, the ring won't slide into the frame.
  6. Flash the firmware from your browser. Download the precompiled .bin from the guide, open Espressif's web flasher in Chrome or Edge and click Connect. Pick the board's port, set the flash address to 0x0, choose the file and click Program. It takes about 30 seconds. Then press RESET and he opens his eyes and says hi.

If the board doesn't show up in the port list, hold BOOT, tap RESET, let go of BOOT and click Connect again. The guide has more fixes in its troubleshooting section.

How to play with him

Do this He does this
Tap Giggles. Tap too much and he gets grumpy
Double tap Gets excited, with big eyes and sparkles
Stroke the screen Heart eyes
Long press Shows an info card with his mood and how much he likes you
Shake Dizzy spiral eyes, then a grumpy face
Tilt Looks downhill

A life of his own

Every minute or two he picks one of 10 activities on his own, including maracas, pixel sunglasses, juggling, reading a book and blowing bubblegum. Ignore him for too long and he gets bored, then lonely, then sleepy. When he runs out of energy, he falls asleep and the screen dims.

He also looks after you. Every hour he drinks a glass of water and tells you to do the same. Every 2 hours it's time to move, and every 4 hours he tells you to go touch grass.

What you'll learn

The guide walks through the code in five short lessons: how a game loop makes a character feel alive at about 33 frames a second, how a face can be just 12 numbers, how moods come from stats like energy and affection, how raw touch points become taps and pets, and how a motion sensor tells a tilt from a shake. That makes it a good STEM project for kids and a fun first ESP32 project for adults.

Make him yours

His name, eye color, personality and reminders are at the top of desk-buddy.ino. Make him more cuddly, more grumpy or more energetic, then upload it with the Arduino IDE or the ready-made PlatformIO project from the guide. To design a different body, try the Desk Pal Maker, which makes a custom 3D printed head for the same round screen.

More builds on the same screen

The same Waveshare ESP32-S3 round touch screen runs other free PrintPal projects:

Looking for a cheaper first build? Slab eyes is a desk buddy with animated eyes on an ESP32-C6 screen, for about $18.

FAQ

Do I need to solder anything?
No. The board presses into the printed case, and the firmware loads over USB-C from your browser.

Does he need Wi-Fi?
No. Wi-Fi is only needed if you add the optional clock to his info card.

Which board do I need?
The Waveshare ESP32-S3-Touch-LCD-1.28, the version with the touch screen. The case and firmware are made for that exact board.

How long does it take to build?
About 45 minutes, including a 30-minute print.

Full Transcript

Here is how you can make a little desk buddy that has real moods, reacts when you touch him and even reminds you to drink water, and it can teach you the basics of electronics, 3D printing and coding. First of all, you will need the screen, which is the ESP32-S3. It's really important to get this exact module with the touch screen, because that's what gives him his ability to interact using the sensors included on the screen. To get the exact link to this product and all of the other files, you will need to go to PrintPal, open the Projects menu and select Desk Pal Buddy. The whole guide with the files is there, and all of the basics are explained step by step. So you will print the case, which is just three parts: the main frame, the inner ring and the foot. The only other thing you will need is a USB-C cable to upload the code to the board. Now press the board into the inner ring, slide the ring into the main frame and clip the foot on the back so he stays on your desk. Only then plug in the USB-C cable, because with the cable in, the ring won't slide in. To upload the code, download the firmware from PrintPal and open Espressif's web flasher. In Chrome, click Connect, pick your board, set the address to zero and click Program. Once you do, you will see him open his eyes and say hi. Now he's alive. With a short tap, he giggles, but poke him too much and he gets grumpy. Double tap him and he gets excited. Stroke him and you get heart eyes, and if you shake him, he gets dizzy. And the best part is that when you leave him alone, he keeps himself busy. He shakes maracas, puts on his cool sunglasses, reads a book or blows bubblegum. Ignore him for too long and he gets bored, then lonely, and then he falls asleep. He also looks after you. Every hour, he drinks a glass of water and tells you to do the same. Every two hours it's time to move, and every four hours he tells you to go touch some grass. You can change his code as much as you want. Give him a new name, a different eye color, or make him more cuddly or more grumpy. With this exact same screen, you can build many other projects that are also on PrintPal, like this plane radar, which shows the real planes flying above you, or even your own fortune 8-ball. So if you would like to build any of these projects with a step-by-step guide, all of the links should be in the description.