2026/05/23
Party LED Outfit Version 8: New Self Refreshing PWM Panels, Proper Frame Using Magnets, and Independent Front/Back Control
π
2026-05-23 01:01
in Arduino, Clubbing, Electronics, Festivals
Over 10 years of this silly shirt with a few LEDs thing that got slighly out of hand :)
History of the LED outfit:
Version 3: LED Pants and Shirt Programmed With Arduino on ESP8266
Version 4: EDM Festival and Burning Man LED Pants and Shirt v4 on ESP32 with RGBPanels and SmartMatrix::GFX
Version 5: LED Pants and Shirt v5 on ESP32 and Raspberry Pi with P2 RGBPanels and Wifi
Version 5.5: Party LED Outfit Flexible P15 LED Strings, LED Fanny Pack, Rez Inspired LED Goggles, LED Laces and LED Shoes
Version 6: Party LED Outfit Self Contained Power System on LED Panels
Version 7: Party LED Outfit USB Powerbanks Powered Flexible LED Panels, LED Hat, and LED Shoelaces
And for shits and giggles, I wrote this full article on the why and evolution of my LED outfit
So, why a version 8? Well, the flexible panels in v7 were nice and light, but the flexible part made them break repeatedly. The chip solder points in the back would eventually fail, causing different kinds of failures on the panels, and I had to replace them in the field (even carry spares with me). This was not a long term solution, never mind that my spares were running out and it was probably impossible to buy matching panels today.
When I said things broke, I often had to repair the outfit while at festivals. Initially repairing panels was a lot of work, and required a soldering iron. Version 7 was designed to allow easier panel replacement with just a screwdriver, but I still needed to prepare the spare panels at home (soldering them before they were needed), and I broke almost 10 in 1.5 years. This was not sustainable:
Another issue was that I would lose pixels as they would eventually fall off on the other side, and the plastic cutting board I used as a diffuser and protection layeer, helped, but was not sufficient. My favorite vendor, Hongren Su from Azerone, had a new GOB coating to protect the pixels and and even make them water proof, but he didn't have anymore legacy style panels, just new PWM panels which were not supported by the rpi-rgbpanels library that I use. Those new panels are better in theory since they self refresh at 2khz or so, but they all need a separate incompatible driver, which is a huge pain in the ass. By sheer luck, Kingdoc9 on github had the same problem and somehow managed to use a coding AI to make a driver for a few chips. Total hero!
At the same time, adafruit made an active-3 low profile board which is not ideal since it covers the CPU, hinders cooling and points the connectors up, but it's better than the electrodragon low profile passive 3 board:
And still at the same time (talk about me being lucky), Hongren Su from Azerone, nicely offered to make a custom metal frame for me, with 5 degree bend, which solved both the problem of panels breaking due to repeated flexing, but also significantly simplified mounting of new panels as I only had to slap them on and the magnets did the rest (and boy those magnets are strong):
But, as there is always a but, wearing the panels, put stress on the ribbon cables and they would eventually break. I did put straps that would get the stress and in theory prevent those failures, but they still happened, worse by then it was the HUB75 plug on the panels that would fail. That was very annoying as it caused my rear panels to have display bugs after the plugs were losing pins and there was nothing I could do short of replacing the entire panel:
Same communcation panel to panel;
People sometimes ask me if I can "just add" a graphics on the fly. In real life I have to use gimp to shrink the graphic to 128x192 or close to it and convert to gif, it takes a little while:
The new driver is not as fast as the old driver in pushing data to the panels (yet), so I had issues with tearing in some animations as the panel refresh was happening half way through a slower frame push to the panels. I had to fix this by implementing double buffering, and you see the before vs after (left panel vs right panel):
Now, the only problem I have left is increasing the panel refresh from the Pi3as, so that they hopefully allow the panels to refresh faster and not show these half refresh screens. Never a dull moment :)
![]()
new versus old, piece of wood used to stir paint, and 3mm screws with limited reach
But, as there is always a but, wearing the panels, put stress on the ribbon cables and they would eventually break. I did put straps that would get the stress and in theory prevent those failures, but they still happened, worse by then it was the HUB75 plug on the panels that would fail. That was very annoying as it caused my rear panels to have display bugs after the plugs were losing pins and there was nothing I could do short of replacing the entire panel:
![]()
note the straps to protect the HUB75 cables
![]()
this was supposed remove stress from the HUB75 plugs, but didn't do well enough
![]()
there are the HUB75 plugs that would fail
![]()
with the new setup, 2 computers (really 4 with the ESP32s), no more ribbon cables front to back
![]()
while both sides are setup to display the same thing, they render independently. This is not a problem of course
This is how it works with remote control: