ESP32 Chaos Orb

by lennoxlow in Circuits > Arduino

169 Views, 6 Favorites, 0 Comments

ESP32 Chaos Orb

output.gif
Screenshot 2025-07-15 at 9.45.21 PM.png
output.gif

The Chaos Orb — a desktop toy that answers your questions with ominous answers and vague threats.

Inside the Orb:

  1. An ESP32-C3 Mini works as the brains, coordinating and generating the messages.
  2. A shock sensor detects when you shake it to wake from deep sleep.
  3. 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

1.3%22 OLED Screen.jpg
Shock Sensor.jpg
ESP32-C3 Super Mini.jpg
TP4056 BMS.jpg
DC-DC Boost mini.jpg

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

output.gif

When you shake the Orb, it speaks.

Here’s what happens behind the scenes:

  1. A shock sensor detects the movement.
  2. The ESP32-C3 Mini wakes up from deep sleep and selects a random cursed prophecy from a hardcoded list of chaotic responses.
  3. That message is displayed on the 128x64 OLED screen.
  4. You stare into the void, wondering what it means... or why you built this.
  5. 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:

  1. Handheld
  2. Rechargeable
  3. Shakable

Wiring

badwiringdiagram.png
Screenshot 2025-07-15 at 9.42.00 PM.png

Now let’s connect the electronic guts of the Chaos Orb. It's a small space, so wiring needs to be tight.

🧠 Basic Connections:

  1. Shock Sensor
  2. Connect to GPIO 3 and GND
  3. This detects when the orb is shaken and wakes up the ESP32-C3
  4. OLED Display (SH1106 128x64 via I2C)
  5. SDA → GPIO 5
  6. SCL → GPIO 4
  7. VCC and GND from the ESP32-C3
  8. Power Chain:
  9. 3.7V Li-ion batteryTP4056 charging module
  10. TP4056 OUT+ / OUT-Boost Converter input
  11. Boost Converter 5V output5V pin on ESP32-C3 Mini
  12. Make sure all components share a common ground

💡 Tips:

  1. The wiring is tight — I kept it just long enough to reach.
  2. The components are all friction-fit into the shell, so layout matters.
  3. Don’t be stingy with hot glue. It insulates and adds weight.
  4. 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:

  1. Initialize the OLED display (SH1106 128x64, using the U8G2 library)
  2. Wait for shake input from the shock sensor
  3. Randomly select a prophecy from a predefined const char* answers[] list
  4. Display it on screen for a few seconds
  5. 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:

  1. Open the Arduino IDE
  2. Install the required libraries:
  3. U8g2 (for the OLED display)
  4. Select the correct board:
  5. Board: ESP32C3 Dev Module
  6. Port: (select your ESP32-C3’s port)
  7. Plug in your ESP32-C3 Mini via USB-C
  8. 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

Screenshot 2025-07-15 at 9.39.49 PM.png
Screenshot 2025-07-15 at 9.34.33 PM.png
Screenshot 2025-07-15 at 9.35.10 PM.png
Screenshot 2025-07-15 at 9.32.12 PM.png
Screenshot 2025-07-15 at 9.31.30 PM.png

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:

  1. Make space inside the shell for:
  2. ESP32-C3 Mini
  3. 3.7V Li-ion vape battery
  4. SH1106 128x64 OLED display
  5. Add a cutout for the screen
  6. Ensure the shell has enough space to rattle when shaken (very important)
  7. Don't forget the charging port

Assembly With Mine:

  1. The front half of my shell holds most of the electronics, except the battery and TP4056 charging/BMS board.
  2. 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.
  3. Use plenty of hot glue to secure everything. It’s non-conductive and adds weight.

Sealing the Orb:

You can close the shell by:

  1. Using super glue around the edge, or
  2. Reflowing the seam with a soldering iron for a fused, seamless finish

You're Done

Screenshot 2025-07-15 at 9.27.41 PM.png

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”