And if you are curious about my LED outfit, you can read more about it on my led peacock engineer medium post and if you'd like to read all my festivals or dreamstate, or clubbing posts, please click on the links higher on the page to get taken to those categories.
eyes are drawn with math, they aren't sprites or animated gifs
So, I already built a 64x64 Matrix the hard way in 2018, including early uses of the ESP32 FastLED parallel output code that was still being written in 2018 when I built it. Building the matrix from scratch with 64 strips laid out one by one, was a pain, it took close to a week just to build. Code-wise, it took a little while, but I had a sweet running 110fps 16 parallel channel output setup, it was lovely.
professional wiring work, haha
yeah, that's why I wanted to use a nice expander board this time around
not counting that I had to add level shifters to get full 110fps speed from 3.3V output to 5V pixels
but eh, it did work and it survived 2 burning mans until the playa ate the pixels from the inside
I was honestly quite sad about my 4096 pixel array that took so much effort having been eaten by the corrosive playa, so when I saw pieces of pre-made matrices at a more reasonable price, I I kind of impulse bought 6 bunches 10x60 pre-made strips of much better quality just before the Trump tariffs came in. It was still $500 just in LEDs tough, but that's actually a good price for that many high quality pixels. I however figured I'd try using pixxelblaze with it because progress and not writing my own code for everything (although it was already written, haha). I also hoped to use the PB expander board to help with wiring.
I also was curious to try out the library of 2D patterns available with pixelblaze. In the end I found around 40 2D patterns that looked decent enough. Is 40 a lot? It's not bad, but when using my own Framebuffer::GFX in C++, I've easily gathered over 200 demos that are overall better due to more speed and obviously a lot faster (almost unlimited speed limited by the LEDs themselves).
I figured I'd live with the limitations of Pixelblaze and the limited amount of demos compared to C++ framebuffers, But things didn't really work out as planned. Namely:
I found out the hard way how slow the interpreted code actually was when scaled to 3600 pixels (most demos ran at 2 to 10fps tops, the 2fps ones are painful to watch)
I thought the port expander would allow me to drive 3600 LEDs at high speed, but due to the 2Mbit/s bus limitation, it's actually only about 2x faster than asingle neopixel bus, or barely 20fps raw speed. I still thought about using it until realized that most demos didn't really go faster than 10fps anyway, so why bother (for comparison, my 4096 array did 110fps with 16 channel parallel output on the same ESP32 chip).
Wizard recommended I use multiple PBs to spread the compute load, sure I could use 2, or 3, or 6 to run the 6 strings of 600 pixels, but after many hours of even trying to figure out how to use master/slave output as it was not officially documented, and pulling my hair on how on earth the coordinate mapping works across devices, I did eventually got it working just to realize that the devices weren't time synced, so the demos ran at slightly different speeds and the display was now out of sync, so it wasted a day of my time trying just to give up in the end.
Here are pictures of the build
all 6 sub matrices connected, turns out single power was good enough even if the matrix power wire was a bit thin and ran a bit hot
my 300W 12V power supply was definitely overkill, note the small step down converter to power the 5V PB from 12V
power was good
I tried to split the output in two by using a spare PB pico I had laying around
coordinate mapping was a huge pain due to lack of docs
with 2 devices, without magic in the code, a single PB would not know to display the left or right half
sadly the lack of sync was a showstopper
more 'this is not working' :-/
In the end, I gave up and went with a single 3600 pixel output, and make peace with patterns that ran as slow as 3 to 5fps:
I used a 110V power cord to re-inject 12V power in the middle, not fully required but nicer on wires
sadly my setup didn't come with the right plug to connect to the output and backfeed power from the other side, so I made my own from spare connectors
it worked without the power backfeed, but it was better with it
now came the job of connecting 60*5=300 knots between the sub-sections with twisty ties
didn't take too long, time for install
wee!
for a display that doesn't have a framebuffer and things are drawn with math, not bad
and it looks cool from inside the house too :)
Do you want the same demos without spending all the time it took me to download them one by one?
Marc's Favorite Pixelblaze 2D demos pbb config you can directly install
The magic file above will install everything you need all at once, you'll just have to re-set Wifi, change the name and resolution.
If anyone is interested, here are the demos I settled on, the ones prefixed with '_' were downloaded from https://electromage.com/patterns :