u/YUMOBUILDS

▲ 15 r/esp32projects+2 crossposts

I Built a smart cube on ESP32-S3 — round touch display, 6-axis IMU auto-rotation, RGB LED filaments, 6 smart faces. Full source on GitHub.

What is it and why I'm sharing

This is the YUMO CUBE — my third build, designed and built entirely by me from scratch. I'm sharing it because I've made the full source code open source so anyone can build their own, and I'd love feedback from the community on what to improve or add next. It's a desk gadget built around the Waveshare ESP32-S3 Touch LCD 1.46B, housed in a hand-bent brass wire sculpture I made myself. The cube has 6 faces, each running a different "smart" app on a 412×412 round capacitive touch display.

What does it do?

The QMI8658 6-axis IMU detects orientation in real time, whichever face is up becomes the active app automatically.

The 6 faces are:

live clock (NTP + IP geolocation timezone), weather station (OpenWeatherMap, refreshes every 10 min), SD card photo gallery (JPEGDEC hardware-accelerated), joke fetcher (Official Joke API), tilt controlled mini game, and a personal workout timer. Four flexible RGB LED filaments run on the rear face, individually addressable and synced to the active app.

Hardware: No custom PCB , the Waveshare ESP32-S3 board is all-in-one with the display, touch, and IMU already on board. The only external wiring is the RGB LED filaments connected to pins 12 and 13, and a LiPo battery connected to the board's dedicated battery pins. That's it very approachable to replicate.

Stack: LVGL 9.2.2 on FreeRTOS, built with PlatformIO. All UI layouts and screens were designed by me in SquareLine Studio and exported directly into the project. Core 0 handles heavy tasks; Core 1 is dedicated to 60fps LVGL rendering. 16MB Flash with PSRAM support, custom DMA buffer padding. WiFiManager captive portal on first boot , no hardcoded credentials. Power latching cuts battery completely after 3-second button hold; IMU wake-on-motion brings it back.

The engineering challenge: Getting LVGL 9 to run stutter-free on a round display while simultaneously polling the IMU, fetching API data, and driving addressable LEDs across both cores was the core puzzle. Memory was tight — PSRAM fallbacks and careful DMA buffer alignment were essential. The round display boundary for the physics mini-game also needed a custom collision approach since LVGL doesn't handle circular constraints natively.

Source code: https://github.com/yumobuilds/yumo-smart-cube

Parts: Waveshare ESP32-S3 Touch LCD 1.46B/ 1.5mm brass rods/ flexible LED filament/ 3.7V 1200mAh LiPo/ MicroSD card.

Libraries: LVGL 9.2.2 · ArduinoJson 7/ WiFiManager/ JPEGDEC/ SensorLib.

Happy to answer questions. What would you add to the cube?

u/YUMOBUILDS — 6 days ago
▲ 15 r/esp32projects+2 crossposts

This is YUMO-CYBER — my first ever electronics build. using Arduino IDE. I designed the interface and firmware myself.

Touchscreen UI, live weather, NFC read/write, and WiFi scanning.

All running on ESP32 development board with a TFT touchscreen display.

Would love to hear what you think — still learning! 🙏

🚀 FEATURES

📶 Connect to WiFi Networks
Scans and connects to nearby WiFi networks.

🌐 Remote Control via Network
Send and receive commands over WiFi.

🌤️ Live Weather Data
Displays real-time weather information.

🔔 Smart Alerts & Notifications
Alarm alerts and system notifications.

📲 NFC Communication
Tap and interact with NFC tags or devices.

🪪 NFC Card Read / Write
Read and write NFC cards and tags.

🖥️ Touchscreen TFT Display
Interactive interface with touch navigation.

🎨 Custom UI Design
A custom designed cyber-style interface.

🧠 On-Device Processing
All logic runs locally on the ESP32.

⚡ Low Power Operation
Designed for portable battery use.

🔒 Secure WiFi Communication
Encrypted network communication.

u/YUMOBUILDS — 6 days ago