Marc's Public Blog - Electronics Hacking


vvv Click on the categories below to see other topic specific pages vvv



>>> Back to post index <<<

π 2025-10-10 01:01 in Electronics

eyes are drawn with math, they aren't sprites or animated gifs
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
professional wiring work, haha

yeah, that's why I wanted to use a nice expander board this time around
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
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
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
    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
    my 300W 12V power supply was definitely overkill, note the small step down converter to power the 5V PB from 12V

    power was good
    power was good

    I tried to split the output in two by using a spare PB pico I had laying around
    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
    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
    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
    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
    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
    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
    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
    didn't take too long, time for install

    wee!
    wee!

    for a display that doesn't have a framebuffer and things are drawn with math, not bad
    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 :)
    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 :

  • _2D Bouncing Additive Primaries
  • _2D Clock
  • _Animated Asterisks 2D
  • _Blinky Eyes 2D
  • _Blue Holiday Candle 2D
  • _Blue Holiday Star 2D
  • _Coronal Mass Ejection 2D sliders
  • _distance function kaleidoscope 2
  • _Doom Fire (v2.0) 2D
  • _Eye of Sauron with movement
  • _fractal flower 2D
  • _Geometry Morphing Demo 2D
  • _Halloween Wavy Bands 2D
  • _Heart 2D
  • _honeycomb 3D
  • _Ice Floes 2D
  • _Infinity Flower 2D
  • _Line Dancer 2D
  • _Matrix Green Waterfall 2D
  • _perlin fire wind tunnel
  • _Perlin Kaleidoscope 2D
  • _Plasma 3D
  • _Scary Pumpkin
  • _Shimmer Crossfade 2D
  • _Sierpinski Rainbow 2D
  • _Spinwheel 2D
  • _Scrolling text marquee 2D
  • _Traffic 2D
  • _Tunnel of Squares 2D
  • _Wavy Bands 2D
  • blink fade
  • color bands
  • color twinkles
  • fireflies
  • firework dust
  • slow color shift
  • sparks
  • sparks center
  • spiral twirls 2D
  • xorcery 2D/3D

  • More pages: October 2025 July 2025 March 2025 January 2025 November 2024 September 2023 August 2023 June 2023 May 2023 April 2023 January 2023 November 2022 January 2022 May 2020 January 2020 December 2019 April 2019 January 2019 June 2018 May 2018 June 2017 April 2017 May 2016 February 2016 November 2015 October 2015 August 2011 July 2011 May 2011 June 2010

    >>> Back to post index <<<

    Contact Email