Creative Hardware

A Raspberry Pi, an ESP32, and a Magnet Under the Board Are Running This Ouija Séance

OuijaCNC turns a self-built core XY machine into a planchette that answers typed questions by spelling out words on its own.

OuijaCNC, a Halloween project from Raspberry Pi Foundation writer Kat Shann, drives a planchette across a Ouija board using magnets controlled by a hidden CNC machine — no human hands required, and no supernatural ones either, just an ESP32 reading G-code. The idea started with videos of self-playing chessboards that move pieces using magnets beneath the board; Shann applied the same approach to a séance.

The hardware build: a lightweight core XY CNC mechanism, built from 3D-printed parts, fishing line, a handful of motors, and a spare ESP32, assembled over a couple of days. (The core XY design worked well enough that it got reused and beefed up afterward as the basis for a separate CNC plasma cutter — a reminder that a solid mechanical platform is reusable well past its original joke.) The whole mechanism sits inside a wooden enclosure — plywood and moulding — decorated with wood stain, gold spray paint, and painted flower and skull motifs to evoke the golden age of Spiritualism. The biggest mechanical challenge turned out to be grip: a heavy wooden planchette with a large surface area created enough friction that extra magnets, springs to keep the under-board magnets pressed flush, and free-spinning ball bearings embedded in the planchette’s base were all needed before it moved reliably.

The software side repurposes hardware that was already retired. A Raspberry Pi 3 Model B+ that had spent years as a print server got a second life controlling the Ouija board, running Raspberry Pi OS Trixie with Raspberry Pi Connect configured so Shann could find the device’s current IP address no matter which network it was moved to. A Flask web app takes typed questions, converts the intended response into G-code instructions mapped to letter positions on the board, and sends that G-code over USB serial to the ESP32, which drives the motors. The most time-consuming part of the whole build, by Shann’s own account, wasn’t the mechanism or the code — it was manually mapping out the G-code coordinates for every letter position on the board into a JSON file.

What’s next, per the project’s own writeup: the current version needs a human to listen to the question and type a response. The planned next step is adding a microphone and an AI model that parses the spoken question and generates a short in-character response on its own — plus, if Shann goes further, a crystal-ball-style display to round out the pseudo-séance aesthetic.

Why this is a good creative-hardware project to study, beyond the Halloween novelty: it’s a clean example of building a general-purpose mechanism first (the core XY platform) and only then deciding what to bolt it to — the same platform already spawned a second, unrelated tool. That sequencing — mechanism before application — is a pattern worth copying even for projects with none of the spooky theming.