BUILD A PALM-SIZED DESK PET WITH A FACE THAT BLINKS AND SMILES
A cartoon pet that lives on your desk: a thumb-sized ESP32 board and a tiny OLED playing a hand-drawn face animation, built from a handful of cheap parts.
by upir
DisplaysAutomation
- difficulty
- ●●○○○
- time
- an evening
- license
- MIT
- repo
- repo ACTIVE360 stars
●●○○○ · an evening · MIT · 360 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
Dasai Mochi is a finished desk toy that actually works: a Seeed Xiao ESP32-S3 and a small SSD1306 OLED playing a 90-frame cartoon face animation, recreated by upir from the commercial Dasai Mochi. The face artwork was drawn in Photopea, animated in Rive and converted to bitmaps with image2cpp, all of which the video walks through. The parts list is short and cheap: the board, the display and a few wires; the creator links the parts but gives no prices. The sketch uses the U8g2 library and is set up for a 128×64 display. The one thing most likely to go wrong is the display: the README title mentions a 128×32 OLED but the code is written for 128×64, so match the U8g2 constructor to the screen you buy. There is no enclosure in the repository — you mount it however you like. This is not a learning platform or an IoT device — it does not connect to anything and the animation is fixed in code. If you want a programmable pet or sensor integration, look elsewhere. But if you want a tiny animated face on your desk by tomorrow night, this is exactly that.
IN THE REPO
GOOD TO KNOW
- —The repository has no enclosure files — it holds the Arduino sketch, the face artwork and the Rive animation source.
- —Arduino sketch in the repo; it needs only the U8g2 library, and the README links every tool used in the video.
- —Full 27-minute YouTube tutorial walks through drawing the face, animating it in Rive, converting frames to code and running it on the Xiao ESP32-S3.
- —No PCB — you wire the OLED directly to the Xiao ESP32-S3 dev board.
- —MIT license — unrestricted use including commercial.
- —Repository is finished and stable (last commit March 2025, 360 stars).
Parts to buy
3 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
upir's full tutorial: drawing the face, animating it in Rive, converting frames to code and running it on the Xiao ESP32-S3.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Watch the 27-minute tutorial — it covers drawing the face, animating it, converting the frames to code and running it on the board.(upir's video on YouTube — the link is at the top of the README.)
- 2.Try the face in the free Wokwi simulator before your parts arrive.(The README links a ready Wokwi project, so you can see the animation running in the browser and tweak it without any hardware.)
- 3.Install the U8g2 library and ESP32 board support before uploading the sketch. (U8g2 by olikraus plus the ESP32 board support package — both free.)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- Cheap OLED modules ship with I2C address 0x3C or 0x3D — if the screen stays dark, run an I2C scanner sketch and update the address in the code.
- The Xiao ESP32-S3 comes with or without pre-soldered headers — order the soldered version unless you are confident with pin headers.
- The README title says 128×32 but the code drives a 128×64 display — buy a 128×64 SSD1306 or change the U8g2 constructor and redraw the frames.
- There is no enclosure in the repository — plan your own mount or case for the board and display.
- The animations are fixed in code — if you want custom faces or sensor triggers, you will need to edit the Arduino sketch yourself.
- Repository is finished (last commit March 2025) — do not expect feature updates, but the build is stable and complete.
Can I add sensors or connect it to Wi-Fi?
The ESP32-S3 has Wi-Fi and plenty of GPIO, but the current code does not use them — you would need to extend the sketch yourself.
What if I do not have a 3D printer?
You do not need one — the project has no printed enclosure; the board and display work as they are.
Does it need to stay plugged in?
Yes — it runs off USB-C power, there is no battery in the design.
Can I use a different OLED size?
The sketch is written for a 128×64 SSD1306 (the README title says 128×32, but the code and bitmaps are 128×64). The README also links 0.96, 1.54 and 2.42 inch 128×64 SSD1306 modules, which all use the same code.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
360 stars and a 27-minute tutorial, and the whole thing runs on a board smaller than a thumb. What would you name yours?
upir
upir makes Arduino and OLED display tutorials on YouTube. In this project he recreates the commercial Dasai Mochi desk companion with a Seeed Xiao ESP32-S3 and a small SSD1306 OLED, and shares the sketch, the artwork and the animation files on GitHub under the MIT licence.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.
CompareeTEAM2mo agoedited
Practical notes from our verification: the repository holds the Arduino sketch, the animation frames and the Rive source for the big-smile animation, and the README links the 27-minute tutorial video and a Wokwi simulation you can run in the browser before buying anything. There are no STL files and no enclosure in the repo, so the case is up to you. The hardware is a Seeed XIAO ESP32S3 and a small SSD1306 OLED driven through the U8g2 library; note that the README title mentions a 128x32 display while the sketch is written for 128x64, so check which panel you order. If the screen stays blank, a quick I2C scanner sketch will tell you whether the display answers at 0x3C or 0x3D. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.