Persistence-of-vision displays are fascinating. They can create text and images out of thin air, and the hardware can be quite small compared to the size of the display if user-generated motion is used to create the 'scan' dimension. I think POV displays never took off commercially (with a few notable but small exceptions) for a few main reasons: it's tough to make a rectilinear display; high-speed mechanical display scanning is loud, power-hungry, and somewhat dangerous; and blue LEDs weren't viable until well into the age of LCDs.
The first part of this log will cover a few POV projects and products that I feel are interesting; if you think of any others, feel free to add a comment below. The second part discusses two of my projects that evolved into the Rotovis-Mod1.
[Virtual Boy system. Photo by Evan-Amos, available here.]
The Virtual Boy is a game system developed by Nintendo in the early 90s. It's a fascinating system for many reasons, including the unique form factor (the device sits on a table during use) and the unique true-3D games. However, the display technology is the key for this project.
[Virtual Boy display diagram. The mirrors rapidly scan back and forth, turning the linear LED arrays into a full image. Photo from Micro-64, available here.]
As shown in the diagram above, the Virtual Boy used a pair of 224-pixel red LED arrays that were rapidly scanned using two oscillating mirrors to create two 384x224 images. The LED arrays, which are occasionally available on eBay as replacements for broken VB units, were designed by a company called Reflection Technology Inc.
[Virtual Boy display module, showing the tiny 224-element LED strip. Photo from iFixit's excellent and thoroughly documented teardown of the game system, available here.]
As far as I have been able to tell, the RTI display modules are by far the highest resolution POV-specific LED arrays ever created, and I don't believe they were ever used for any other products. I wish the modules were more readily available, as I would feel bad using eBay'd displays and potentially depriving a Virtual Boy fan of the parts need to fix their broken game system.
[SpokePOV installed on a bike, showing the biohazard symbol. Photo by Limor Fried, available here.]
The SpokePOV, from what I can tell, was one of Adafruit's first products. The kit used an array of 30 LEDs and a bundle of shift registers to create images, and is driven by an ATtiny2313 microcontroller. Combined with a Hall Effect sensor and a rare earth magnet mounted to a bike frame, the SpokePOV would display simple graphics on a user's bike wheel.
[SpokePOV kit, no longer for sale but info still available here.]
I became aware of the kit when I started buying USBtinyISP programmers; that product is also called the 'USB SpokePOV Dongle', as it was originally intended for use programming SpokePOV boards. The SpokePOV is quite low resolution, but for its use case (bike safety + teaching basic soldering) it was a great product; viewed from ten meters away, the images were crisp enough and quite bright.
[voLumen gallery image, available on the project page here.]
Currently, there are 28 projects on Hackaday.io that include the 'Persistence of Vision' tag. #voLumen isn't one of them (it's under 'POV' instead), but it was one of the first I saw when I joined the site and still stands out as one of the most polished examples around. As suggested by its name, voLumen uses a number of stacked POV display 'leaves' to create a 3D display, and @max.mali did a great job integrating the whole system into a nice case. The project page doesn't offer a ton of behind-the-scenes detail, but from what I can tell the system uses 1024 RGB LEDs on 34 spinning vanes to create the images.
[Astral Hoops POV hula-hoop in action. Image from the product site, available here.]
Astral Hoops builds and sells LED-based performance accessories -- wands, staves, and hoops -- that use RGB POV elements to display graphics. I haven't seen their products in real life, but my guess is they have put a great deal of thought into real-world durability since the products are designed to be swung around at late-night outdoor events. They also have a neat computer program that allows users to create their own custom graphics. As with the SpokePOV, these systems trade resolution for brightness and long-range visibility; one of the pages suggests LED spacing of 0.66", so I'm guessing they use DotStar pixel strips or something similar.
SC15 POV badge
[Hackaday Superconference 2015 Badge Hacking show-and-tell. Image from article.]
The first Superconference produced some excellent badge hacks; my personal favorite was the 10-LED + Teensy POV badge. It worked so well with the lanyard! Person who made this badge, please remind us all of your name so credit can be given!
blinktronicator: ~13 DPI
[#blinktronicator in Mode 3, getting swung around to display the HaD logo. The skull is roughly 0.8" tall.]
blinktronicator was a project designed to help me choose LED colors properly; the POV mode was more of an afterthought, but ended up getting me interested in the topic. Of note in the image above -- the skull distortion is due to the curvature of the display, not some funky camera issue.
[blinktronicator, sitting on its sketchy programmer with all LEDs illuminated.]
In terms of persistence-of-vision projects, blinktronicator taught me that (a) high data rates are important (the bit-banged control from its ATtiny45 couldn't do much), and (b) higher resolution and closer spaced LEDs look better.
twisty watch: 32 DPI
[Twisty Watch showing, as usual, the Hackaday logo. Image from project log. The skull is roughly 2" tall.]
Twisty Watch was a rapid-fire effort to build a high-res POV display and integrate it into a wearable device. The latter didn't work out very well; the controller PCB had some issues so I spun up a last-minute Teensy bodge so I could bring the project to OSHpark's open house at OHS16. But the display board itself worked well enough. It used sixty four 0402 LEDs with individual current limiting resistors and eight HC595 shift registers.
[Twisty Watch display PCB layout.]
In addition to some lessons learned about wearables -- comfort and sweat are things that must be dealt with -- the display itself carried its own learnings as well:
- I crammed as many PicoLEDs into the display as possible, pushing a tiny bit past Rohm's datasheet recommendation on minimum LED spacing. This made soldering a massive pain, as slight misalignment caused multiple LEDs to buckle during reflow resulting in hours of rework. Since each board contained the entire display, screwing up the rework process and scrapping the module (and a ton of LEDs) was a serious risk.
- Rotovis-Mod1 reduces the rework/scrap risk a bit by breaking the display into single-chip modules; while they are each substantially harder to solder or rework compared to the Twisty Watch display, individual screw-ups carry a smaller penalty. Switching to 0201 LEDs also allowed me to improve resolution by 25% while not pushing the spacing limit to an extreme; while the tiny elements are pretty dang close together, there is enough air space between them to avoid buckling or other inter-pixel interference during soldering.
- Using individual current limiting resistors wasted energy and took up a ton of space (relatively speaking). Ditching these for a current-limiting source would save real estate and make the whole design much cleaner.
- The TI chip using in Rotovis-Mod1 -- essentially a 16-bit shift register with constant current drivers on the back end -- solved this problem quite nicely.
- The Twisty Watch wasn't designed with expandability in mind; the four connectors meant multiple boards couldn't be daisy-chained into a single display.
- Yay modularity! This would have been easy enough on the Twisty Wrist board (simply lopping off the JST GH connectors on either side), but it was important to keep this goal in mind from the start when designing the new PCB.
- Still .. must .. improve .. resolution .. 32 DPI was impressive but I wanted to improve this number as much as practically possible.
- I know I'm doing a project right when today-soldering-me hates last-week-PCB-designing-me.
angstroleds: 64 DPI
UPDATE 11/9: I forgot about this one when I put the log up originally! So .. to be fair .. the 'lessons learned' above partially share history with angstroleds, since it definitely made some of the same mistakes as Twisty Watch:
... namely, trying to bunch the LEDs waaaaaaay too close together. While I imagine Rotovis-Mod1 could be _somewhat_ improved (maybe to 48 DPI?), the project really ends up being limited by the TI chip size; you can see in the images above that I ended up seriously bodging the footprint, even rotating some outward-facing legs so they were parallel to the LED display. I also included big plated through holes so I could hand-solder the whole thing.
Needless to say, the insane LED spacing (along with those two idiotic rotated pins) meant angstroleds never saw the light of day, even with a reflowed LED controller. To add insult to injury, I made the header holes too small. Gah!