Creative Hardware

This Wearable AMOLED Choker Runs 16 Hours on One 18650 and Renders Its Animations Live

Sophie D built OpenChoker for her first DEF CON — a 480×480 AMOLED and two LED strips on leather, driven by an RP2350 with a hand-written PIO display driver in embedded Rust.

Conference badges have been an arms race for years. OpenChoker — built by Sophie D for her first DEF CON, and written up on September 10 — sidesteps the badge entirely and puts the display around the neck. Enough people at DEF CON and HOPE assumed it was a retail product that the misidentification is arguably the review.

The build

The screen is a Hello Lighting HL020E21-02 AMOLED touchscreen: 480×480, 16-bit color, square with rounded corners and almost no bezel, at $12 a unit. It’s flanked by adhesive-backed addressable RGB LED strips. Behind it sits a custom PCB carrying an RP2350, a micro SD slot, a debug port, mini-USB charging, and a power switch. A single 18650 lithium cell mounts at the back of the choker.

Battery life turned out to be a non-issue in the most emphatic way available: one cell ran the whole thing for a 16-hour stretch of convention wear and still measured 3.7 V afterward.

Part of the reason Sophie published the board design at all is that no footprint or reference design for the HL020E21-02 existed anywhere she could find. That’s the quiet, genuinely useful contribution here — the next person who wants to use this display now has a starting point.

The interesting constraint

The firmware is embedded Rust on the Embassy framework, with a custom PIO driver written to push the display as fast as the RP2350 can manage. The RP2350’s PIO blocks are the reason the chip was chosen at all.

The numbers explain why: at 60 FPS, the design needs to move over 26 MiB/s to the panel. And a single 450 KiB framebuffer doesn’t fit in 16 KiB of RAM, so nothing about this can be done the obvious way. Rendering runs at 30 FPS during the busier scenes.

The original plan was to stream video off the SD card. SD bandwidth wouldn’t cover it, so the animations are generated in real time on the microcontroller instead — which Sophie notes makes the project’s name “a bit of a misnomer,” since changing what the choker displays means changing code, not swapping a file. It also makes it a more interesting object: a generative display worn as jewelry, not a video loop.

The bug worth knowing about

The capacitive touchscreen — used for a drawing interface and for LED/brightness menus — works noticeably worse on the finished, isolated device than it did on the bench. The panel wants to be coupled to its environment. Sophie found partial workarounds routing body capacitance through the 18650, but calls the result still suboptimal. Anyone designing a battery-powered capacitive touch wearable should read that section before laying out a board.

Hardware and firmware are both public on her GitLab.