DIY Projects

Motion-Reactive LED Devil Horns Built on an RP2040 Prop Feather

Motion-Reactive LED Devil Horns Built on an RP2040 Prop Feather

Costume electronics stopped being about one blinking LED a long time ago. The builds worth copying now read what your body is doing and answer back, and Erin St Blaine’s motion-reactive devil horns sit squarely in that camp: paper-mache horns packed with NeoPixels that flare up when you shake your head.

What the build actually is

Two lightweight paper-mache horns, each lined with Adafruit’s ultra-skinny 1515 NeoPixel strip. That strip is 4 mm wide, which matters more than it sounds: anything chunkier fights the curve of the horn and reads as a lumpy ridge under the paint. Driving the lights is the RP2040 Prop-Maker Feather, which pairs the dual-core 133 MHz RP2040 with a NeoPixel driver, an I2S audio amp, and an onboard LIS3DH accelerometer. The accelerometer carries the whole project. The horns run CircuitPython, and head movement picks the animation: tilt for a slow lava creep down the strip, shake for a spark that races from base to tip.

The technical takeaway

Gesture detection here is not machine learning. It is three axes off an I2C accelerometer plus a threshold. A tilt is a sustained shift in the gravity vector on one axis; a shake is a fast spike in total acceleration. Both are a few lines of CircuitPython on top of the LIS3DH library. The Prop-Maker Feather also handles the 3.3 V to 5 V level shift on the NeoPixel data pin, which is the gotcha that ruins most first wearable builds: a bare 3.3 V data line into a 5 V strip looks fine on the bench, then glitches once the LiPo sags under load. Erin rates this intermediate, and the reason is the soldering. Pads on 1515 strip are tiny and you are working inside a hollow shell.

What to try next

The pattern generalizes well past Halloween. Swap the horns for a cosplay pauldron, a drumline shako, or a capstone demo that shows gesture input with no screen attached. To stay close to the original, the wiring and full code are on the Adafruit Learning System guide. Start on a breadboard with a short strip and a Feather, tune the shake threshold until it stops firing when you walk, then commit to the hot glue.

Frequently Asked Questions

How do the horns know when to change animation?

The RP2040 Prop-Maker Feather has an onboard LIS3DH accelerometer read over I2C. CircuitPython thresholds the three axes: a sustained shift in the gravity vector counts as a head tilt and starts the slow lava animation, while a fast spike in total acceleration counts as a shake and fires the spark that runs to the tips.

What parts and skills does this build need?

An RP2040 Prop-Maker Feather, Adafruit’s 4 mm-wide 1515 NeoPixel strip, a LiPo battery and paper-mache shells. Adafruit rates it intermediate. The hard part is soldering to the very small 1515 strip pads and routing wire inside a hollow horn, not the code, which stays short.

What will I learn if I build this?

You get hands-on practice with I2C sensor reads, turning raw accelerometer axes into usable gesture triggers, addressable LED animation timing, and the 3.3 V to 5 V level-shifting problem that shows up in almost every wearable. Those are the same skills a gesture-controlled thesis or robotics-club project needs.

This article was inspired by reporting from Adafruit. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.