A premium, round, open-source electronic die. Spin the ring, the circular screen charges up, rolls a number and lands on it. ESP32-S3 · custom PCB · weighted enclosure · USB-C.
- A round die that feels like a product, the screen sits inside a ring encoder and stays still while you spin the ring.
- Custom PCB (ESP32-S3, GC9A01 round TFT, USB-C, Li-ion charge), hand-soldered, powered up first try.
- 100% offline. Rolls use the ESP32 hardware RNG (
esp_random) with rejection sampling, so every face is exactly equally likely. - First real hardware project by a Swiss electronics student, built in the open as a learning log.
- Spin right → the ring charges, then rolls and reveals a number.
- Spin left → change the odds:
1 in 2 / 5 / 10 / 50 / 99, plus a Contact qr code of the repo. - Pause around ⅔ → a little easter egg ;)
Try it all in the live simulator, no hardware needed.
C++ / PlatformIO, target ESP32-S3-WROOM-1.
git clone https://github.com/merlin-rce/Dyce.git
cd Dyce/Firmware
pio run -t upload # build & flashWiring & schematic: PCB/ · code overview: Firmware/.
Everything you need to make your own DYCE is in the repo:
- 3D-printed enclosure →
3D Files/with all the STL parts (body, encoder ring, screen holder, PCB cover, button cap). - PCB →
PCB/with the schematic plus ready-to-order Gerber & drill files you can send to any board house (JLCPCB, PCBWay, etc.).
The full parametric CAD lives on Onshape:
Want to tweak a part or design your own variation? Ask me for access, then make your own copy (Onshape, Make a copy) so you can edit freely without touching the original.
DYCE is finished, but not closed. Everything here is open so you can build one, tweak it, and make it better. Flash a different animation, add new odds, rethink the attract loop, redesign the enclosure, or fork the whole thing into your own gadget. That's exactly what it's here for. If you make a variation, I'd love to see it.
A full step-by-step Instructables build guide is coming soon, every part, every solder joint, start to finish, so anyone can make their own. Watch this repo to catch it when it drops.
quick honest part: im 17 and still a student, and this started as a school project. im a beginner and i learn as i go, thats honestly the whole point of this for me. i put it open source because i genuinely want people to look at it, give me feedback and teach me things, im always down to learn and get better.
the hardware is fully me: the pcb, the schematic, picking the parts, the cad, the soldering and all the debugging that comes with it. pretty proud of that part. the web simulator was mostly built with claude (ai) since my react/html is still basic. for the firmware i use ai to help me too, but as a beginner i really try to understand what im doing and learn from it, not just blindly copy paste.
and if you notice theres barely any commits, its just cause im still new to github and kinda pushed everything at once. still learning that part too
This is a learning project and feedback / PRs are genuinely welcome: schematic nitpicks, firmware cleanups, enclosure ideas, anything. Start with CONTRIBUTING.md or open an issue.
Project finished, built, working, and documented in the open.
| Hardware | Firmware | Enclosure |
|---|---|---|
| Working | Done | Done (could be better) |
Firmware & code: MIT (see LICENSE).
Hardware and docs are intended as CERN-OHL-S v2 and CC BY-SA 4.0 respectively.
To be confirmed before final.
