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

FULL CAD BOM FIRMWARE DOCS

DisplaysAutomation

Built withESP32Arduino

difficulty
●●○○○
time
an evening
license
MIT
repo
repo ACTIVE360 stars
1
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.

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 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Seeed Xiao ESP32-S3Find
  • 128×64 I2C OLED (SSD1306)Find
  • Dupont wiresFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

Printnothing required — the repository has no enclosure files
BuySeeed Xiao ESP32-S3, 128×64 I2C OLED (SSD1306), dupont wires
Toolssoldering iron (or a board with pre-soldered headers), USB-C cable, Arduino IDE
Skillsbasic Arduino upload and I2C wiring — beginner-friendly if you follow the video
Time2–3 hours: wire the OLED to the board, install the library and upload the code
CostLow — just a Seeed Xiao ESP32-S3, a small 128×64 SSD1306 OLED and a few wires; the creator links parts but gives no prices.
SafetyNone beyond ordinary electronics care — low-voltage USB power, no batteries, no sharp edges.

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 projects

Gallery

opengraph.githubassets.com
radar.comparee.ai
img.youtube.com

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 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. 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. 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?

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.

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.

GitHub

Star the project on GitHub

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.