Uncanny Eyes Halloween Skull Animatronic

by flostern in Circuits > Arduino

3837 Views, 45 Favorites, 0 Comments

Uncanny Eyes Halloween Skull Animatronic

IMG_8323.jpeg

Happy Halloween! I turned a life-sized skull into a creepy Halloween decoration with living, uncanny eyes and a jaw that bites. The hardware costs between 25 and 30 bucks (on AliExpress) and is available on common platforms like Amazon, eBay or your local Arduino store.

You can build it with eyes only, with a moving jaw or modify as you want. Imagine a couple of them, attached to sticks in your garden, singing in sync. There is plenty of space for hardware in the skull.

Supplies

software prerequisits

hardware required

  • ESP32 (e.g. Expressif ESP32-WROOM-32D) (example)
  • two 1.28" TFT LCD Display Module Round RGB 240*240, GC9A01 driver (example)
  • realistic human skull (example)

you will also need

  • jumper wires to connect everything, optionally a breadboard to test
  • cables, female wire connector and crimping tool (to create Y-cables)
  • mini grinder, ideally with flex shaft, to open the skull and make space for the displays
  • a power supply and USB cable

for a moving jaw you need

  • small servo (9g)
  • soldering iron
  • to say goodbye to your USB cable mentioned above

Arduino and Eyes Test Setup

IMG_7201.jpeg
IMG_7200.jpeg
IMG_8283.jpeg
tft-wiring.png

Before starting the actual skull surgery, perform a test run of the ESP32 and two eyes.

Connect the ESP32 micro controller and displays using a breadboard.

| ESP32 pin | TFT 1 | TFT 2 |
|-----------|-------|-------|
| 23 | SDA | SDA |
| 18 | SCL | SCL |
| 2 | DC | DC |
| 4 | RST | RST |
| 22 | CS | |
| 21 | | CS |
| +3V | VCC | VCC |
| GND | GND | GND |

Compile and upload code to the ESP32 board.

  1. Checkout code from GitHub.
  2. Open Arduino IDE, select the board and port.
  3. Install TFT_eSPI and ESPServo libraries.
  4. Compile and upload to your board.

If everything works fine, continue with step 2. If the eyes do not show up, check the configured TFT chip selection and wiring in the code. It is very likely a wrong or missing TFT_eSPI configuration.

Skull Surgery and Eye Assembly

IMG_8325.jpeg
IMG_8314.jpeg
IMG_8315.jpeg

First you want to transform your temporary test wiring into permanent. Since you need to connect one ESP32 pin to two display pins at the same time, you need Y-cables and cannot just grab ready-to-use jumper cables.

I crimped the six cables for SDA, SCL, DC, RST, VCC and GND on my own. Alternatively you could solder existing jumper cables together. For chip select (CS), you can use single cables.

You want to have a running setup to test the eye positioning in the skull.

Skull surgery time!

Start with opening the skull. I cut along the borders of the parietal bone using my mini grinder with flex shaft and removed the right part. Put it aside and start removing the skull’s eye parts from the inside to make space for the displays.

Try to fit the displays with the connectors on top. You will need to remove less and it saves space for the servo if you want to add one. Repeat until the two displays fit.

Once done…

Fixate the displays in their final position, e.g. by using play dough, and check with power enabled. If the eyes are perfectly aligned, apply hot glue to fixate the displays permanently.

Drill a hole at the skull’s back to be able to connect the USB cable. You might also want to drill a hole from the bottom if it will be attached to a stick or skeleton later one.

Adding Movable Jaw (optional)

IMG_8318.jpeg
IMG_8319.jpeg
IMG_8320.jpeg
wiring.png

Adding a moveable jaw is surprisingly easy if you have plenty of hot glue.

Start with wiring up the servo.

| ESP32 pin | Servo  | USB cable |
|-----------|--------|-----------|
| 26 | signal | |
| GND | black | |
| | red | red* |

You could connect the servo’s red wire to the 5V pin, but…don’t. The displays will flicker during movement. Yes, you could add a capacitor to compensate this. It worked with 5000 μF to remove the flickering, but I decided to do it right.

The final solution will require you to cut open the USB cable near the end and connect the red wire, assuming it is +5V, with the servo directly before it gets into the ESP32. I used a jumper wire with one male side (to be plugged into the servo), ripped off the other side and soldered it to the USB cable.

If your skull has a detached jaw, use rubber band and bamboo chopstick parts to flexibly attach the jaw. Details in the pictures. You can use any other means to attach the jaw, as long as it stays movable.

Test the setup before glueing the servo into the skull and start the assembly…

  1. Drill a hole through the left mental foramen hole in the jaw.
  2. Imagine a line between the drilled hole and a servo arm inside the skull, cut it open.
  3. Glue the servo into the skull – plenty of hot glue will do!
  4. Connect a rigid wire
  5. to the servo and
  6. to the jaw.
  7. Move the servo to the closed position and connect both wires, e.g by bending them together.
  8. Check and adjust angles mechanically or in code.

Final Steps

IMG_8321.jpeg
IMG_8326.jpeg

Secure the cables with hot glue if needed, so that only USB power supply exits the skull. Tidy up the skull so that the wires do not interfere with the servo arm. Yes, hot glue might be your best friend by now.

Once you are done-done, glue the parietal bone back into its place and enjoy.

Happy Halloween!