Multivox: Volumetric Display

https://news.ycombinator.com/rss Hits: 23
Summary

Multivox This is the code I currently use to drive my volumetric displays. It supports two closely related devices which are configured in the src/driver/gadgets directory: Rotovox is a 400mm Orb featuring two 128x64 panels arranged vertically side by side. Vortex is a 300mm Orb featuring two 128x64 panels arranged horizontally, back to back. Rotovox has a higher vertical resolution and better horizontal density; Vortex is brighter and has a higher refresh rate. The 3D printable parts for Vortex are available here. Hardware This code was originally written for a single display, and the device specific code was later somewhat abstracted out to support a second similar gadget. There are assumptions about the hardware that are pretty well baked in: It consists of two HUB75 LED panels spinning around a vertical axis. The panels use either ABCDE addressing or ABC shift register addressing. It uses a single GPIO (a photodiode or similar) to sync to rotation - high for 180掳, low for 180掳. It's running on a Raspberry Pi 4. The GPIO mappings and panel layout are defined in src/driver/gadgets/gadget_<name>.h . GPIO is via memory mapped access - if you're using a different model of Pi you'll need to change BCM_BASE in the GPIO code. I haven't tested this, and you should probably assume it doesn't work. Input is via a bluetooth gamepad - I've been using an Xbox controller, and the input system is based on the default mapping for that. Audio out is also via bluetooth. I haven't had success with the higher quality codecs, but the headset protocol works. Layout There are two parts to this code - the driver, which creates a voxel buffer in shared memory and scans its contents out in sync with rotation, and the client code which generates content and writes it into the voxel buffer. Both driver and client code are designed to run on the same device, a Raspberry Pi embedded in the hardware and spinning at several hundred RPM. There is a demo included in the Python directory which str...

First seen: 2025-12-04 18:13

Last seen: 2025-12-05 16:16