ESP32 Chaos Orb



The Chaos Orb — a desktop toy that answers your questions with ominous answers and vague threats.
Inside the Orb:
- An ESP32-C3 Mini works as the brains, coordinating and generating the messages.
- A shock sensor detects when you shake it to wake from deep sleep.
- A 1.3" 128x64 SH1106 OLED screen displays one of many unpredictable responses.
It’s powered by a 3.7V vape battery ( I went to a vape store and asked for their disposed of vapes), USB rechargeable, and designed to give you some obscurity on demand.
Shake it and get answers like:
“Consult your alternate self.”
“Join a pyramid scheme ironically”
“Trust no printers”
This is a project made purely for chaos, and comedy.
Think Magic 8 Ball if randomness was an option.
It still gives you classic responses like "Yes", "No","Maybe" and "Try Again"
...Just in a more vague way.
Heres a video I made on this — it’s more watch me struggle than tutorial, but still kinda educational if you squint.
Supplies





ESP32-C3 Mini (or any micro ESP32 dev board)
1.3” OLED display (SSH1106)
Shock sensor / spring sensor / SW-420 module for detecting shakes
(For a harder tap use a Knock sensor)
3.7V Li-ion battery (I used a vape battery)
TP4056 charging module with battery protection is preferred
Boost converter (3.7V → 5V) to power the ESP32
Optional: 3D printed shell (My design is provided)
Wires, solder, too much hot glue.
How It Works

When you shake the Orb, it speaks.
Here’s what happens behind the scenes:
- A shock sensor detects the movement.
- The ESP32-C3 Mini wakes up from deep sleep and selects a random cursed prophecy from a hardcoded list of chaotic responses.
- That message is displayed on the 128x64 OLED screen.
- You stare into the void, wondering what it means... or why you built this.
- Then it goes back to sleep and it waits for you to shake it again
That’s it. Just raw fortune-telling.
If you follow along, you’ll be building a device that’s:
- Handheld
- Rechargeable
- Shakable
Wiring


Now let’s connect the electronic guts of the Chaos Orb. It's a small space, so wiring needs to be tight.
🧠 Basic Connections:
- Shock Sensor
- Connect to GPIO 3 and GND
- This detects when the orb is shaken and wakes up the ESP32-C3
- OLED Display (SH1106 128x64 via I2C)
- SDA → GPIO 5
- SCL → GPIO 4
- VCC and GND from the ESP32-C3
- Power Chain:
- 3.7V Li-ion battery → TP4056 charging module
- TP4056 OUT+ / OUT- → Boost Converter input
- Boost Converter 5V output → 5V pin on ESP32-C3 Mini
- Make sure all components share a common ground
💡 Tips:
- The wiring is tight — I kept it just long enough to reach.
- The components are all friction-fit into the shell, so layout matters.
- Don’t be stingy with hot glue. It insulates and adds weight.
- Triple-check power and boost converter output before powering the board, I accidentally did this wrong.
I added a highly professional MS Paint wiring diagram to this step for reference.
The Code
The Arduino sketch handles all the logic. Once uploaded to the ESP32-C3 Mini, it’ll:
- Initialize the OLED display (SH1106 128x64, using the U8G2 library)
- Wait for shake input from the shock sensor
- Randomly select a prophecy from a predefined const char* answers[] list
- Display it on screen for a few seconds
- Then it goes back into deep sleep until the next shake
The included answers are cryptic, but you can customize them to say anything you like.
How to Upload:
- Open the Arduino IDE
- Install the required libraries:
- U8g2 (for the OLED display)
- Select the correct board:
- Board: ESP32C3 Dev Module
- Port: (select your ESP32-C3’s port)
- Plug in your ESP32-C3 Mini via USB-C
- Hit Upload
Done!
If you are having any trouble, make sure to use the serial monitor - It is your friend
Link to this project on Github here
Downloads
The Enclosure





To give the Orb its physical form, I designed a custom shell in black PLA.
You don’t have to use my exact design — feel free to make your own orb, cube, cursed totem, or whatever chaotic shape you want.
Design Tips If You Make Your Own:
- Make space inside the shell for:
- ESP32-C3 Mini
- 3.7V Li-ion vape battery
- SH1106 128x64 OLED display
- Add a cutout for the screen
- Ensure the shell has enough space to rattle when shaken (very important)
- Don't forget the charging port
Assembly With Mine:
- The front half of my shell holds most of the electronics, except the battery and TP4056 charging/BMS board.
- I placed the battery and BMS in the back half, with the BMS supported on top of the battery so the USB-C port lines up with the charging hole.
- Use plenty of hot glue to secure everything. It’s non-conductive and adds weight.
Sealing the Orb:
You can close the shell by:
- Using super glue around the edge, or
- Reflowing the seam with a soldering iron for a fused, seamless finish
You're Done

This is probably the least helpful personal assistant ever built, but it works and it's fun!
Not every invention has to be useful — sometimes it just needs to tell you to “Eat a USB Stick”