Zach Jon Butler's 768-Pixel Volumetric Display Is Powered by Four Very Dizzy Raspberry Pi RP2040s

Compact volumetric display uses persistence of vision to turn a 2D LED matrix into an addressable 3D image.

Gareth Halfacree
11 days agoDisplays / HW101 / Lights

Maker Zach Jon Butler has released a design for a Raspberry Pi RP2040-powered volumetric display system, which works by spinning a 16×16 RGB LED matrix at high speed — along with all the electronics driving it.

"I was inspired by [a] video from a YouTuber called Mitxela," Butler writes of the project's origins, referring to a rotary persistence of vision display built and showcased by maker Tim Alex Jacobs back in December 2023. Like Jacobs' design, Butler's creation relies on the human eye's tendency to "smear" rapidly-moving bright lights to turn a 2D matrix of LEDs into a 3D image — creating a 3D volumetric display Butler colloquially refers to as an RGB "hologram."

Spin a 2D LED matrix quickly enough and, thanks to POV, you can create a 3D image. (📹: Zach Jon Butler)

Butler's take on the concept is split into two parts. The first is the LED matrix itself, a 16×16 array of tiny surface-mount RGB LEDs on a compact PCB with an edge connector designed to mechanically mate with a PCI Express socket — though carrying no PCI Express signals. This links it to a circular mainboard that hosts no fewer than four Raspberry Pi RP2040 dual-core microcontrollers: one to drive a P-channel high-side field-effect transistor (FET) to switch the columns and three as current sinks on the rows.

A motor underneath the board spins everything — RGB matrix and driver board — at high speed, causing a persistence of vision effect that turns the 2D matrix into a 3D image. With the right code, that 3D image can be treated as a true, though low-resolution, 3D volumetric display — as has been demonstrated to impressive effect with James Brown's ongoing work in the area.

Butler is currently working on the firmware to allow for any 3D image to be displayed. (📹: Zach Jon Butler)

"I think it will need really high frequency updates to update the pixels at the right spot during the spin," Butler explains of the reason for giving the system no fewer than eight Arm Cortex-M0+ microcontroller cores across four discrete chips. "There [are] 16×16×3 [768 total] LEDs to control and I want the spin to happen at at least 24 rotations per second."

Butler has released design files for the LED matrix board and the driver base board on OSHWLab under a public domain license, with code a work-in-progress at the time of writing; more information is available in his Reddit post.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles