ExpanderVerse: Processing, Output Expanders, Many, many LEDs

I’m helping out with a large, stationary mixed media project for a wifi-unfriendly environment, and wound up building this toolkit to help meet some of the technical challenges. It isn’t exactly a Pixelblaze project, but… think of it as the Output Expander board’s first solo album.

Anyway, it turned out useful and fun, so I’m putting it out there in hope that other people can use it too. Here it is:

ExpanderVerse lets you use Processing and (multiple) USB->Serial converters to drive (multiple) Pixelblaze Output expanders, which can, in turn, drive many, many LEDs.

Since it uses Processing, it supports Windows, Mac and Linux. It uses the same USB->Serial boards as PixelTeleporter, and can drive the full 8 Output Expanders per serial port, with as many serial ports as your computer can handle. Serial IO is threaded for speed and drawing is carefully synchronized across all ports.

You can draw to your LEDs with a simple setColor()/getColor() API in Processing, or use Processing’s graphics API, or go massively parallel and let an OpenGL shader render your pattern. A few thousand LEDs is light work for a GPU that’s made to crank out 4k video at 60 fps.

This is the first public beta release, so it’s a little light on documentation, and there are doubtless some lurking bugs. I’ll improve the docs swiftly, and answer questions to the best of my ability, and I look forward to hearing about and fixing the bugs.

Here’s the link to the github repo:

ExpanderVerse repository on Github

and here’s a feature overview video:


Looks awesome. You should post this video to the Processing subreddit, I suspect Ben would sell a bunch of output expander boards.

Nice “solo album”, indeed.

Added: Hmm, it looks like the Pi lacks the GPU, but the Jetson Nano definitely has it and can run Processing, so that might the cheapest entry level “full dedicated solution” ($59 2GB, plus power supply, case, call it $100, plus Expander and LEDs. Be interesting to see where the sweet spot for led controllers ends up, if only GPUs weren’t suffering from global economy woes.

Thanks, @scruffynerf! I’ll post this more broadly after it’s had a couple of days to shake out any showstoppers that I didn’t find while testing.

I really do hope it sells some Output Expanders. Those boards deserve a lot more attention IMO! They’re super solid, and pack a ton of useful hardware. It’s really easy to use them in big displays.

And GPUs, yeah… I ordered a new computer with a decent one back in early August. It arrived this week, and I consider myself lucky. I hope we get the chip situation under control soon.

If I had to power one of these setups on a budget today, I’d hit Craigslist and buy an older I5 or i7 computer. I’ve seen them for $150 or so. And even without an NVIDIA or AMD GPU, Intel’s legendarily awful integrated graphics can handle a few LEDs.

1 Like

Yeah, but those are big. A Jetson Nano or a Pi is tiny. Yes, old cheap computers can work, but bang for the buck, a Jetson would be more powerful I suspect.

That Nano really does look amazing and fun. You could probably replace most people’s desktop with one, not even mentioning the ML/graphics applications. Just waiting 'till they’re back in stock somewhere to grab one. (Holding out for the 4GB version.) Chip shortage… ugh!

Just checked in Beta v0.2.0. It has:

  • support for APA 102 extended color depth (which you can disable if you need to by calling setDrawMode(DrawMode.FAST) )
  • experimental color correction support for matching white tones between different LED types. See the ‘ColorCorrection’ example. For now, you’ll need to call setDrawMode(DrawMode.ENHANCED) in your sketch to use this (it’s the default on APA 102 channels.)
  • minor refactoring to make channel creation easier. See the examples for… examples. The old way still works though.
  • a festival of minor bug fixes!

… and, just tested: The Electromage Pixelblaze Arduino Programmer works with ExpanderVerse!

I’ve only tried on Windows thus far, and you may need the latest drivers. Here’s the manufacturer’s page : CH341SER.ZIP - Nanjing Qinheng Microelectronics Co., Ltd.
This driver uses just a hair (1-2%) more CPU than the FTDI driver but the device is more compact and costs less.


All of this looks amazing! can’t wait to work with it! Such powerful flexibility working with Processing and Output Expanders!