Marc's Public Blog - Clubbing and Trance


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

Ok, so I like electronic dance music, more specifically Trance. When I started in the 1990's, the US was a bit behind in that department.
Still, with San Francisco and San Jose nearby, I've had some opportunities to see some great EDM/Trance DJs. Back in the early 2000's, they sadly played club music in the US that was nowhere close to the hits they had composed and were known for, but over the years, as Trance started becoming more popular, those DJs finally started playing their good tunes in the US too, and maybe from 2004 on, it's only been getting better.
Popsicle Halloween 2004 was really the beginning of great music parties in the San Francisco Area, and thankfully things have gotten even better since then

As a matter of fact, after another 10 years (2015 and beyond) the good news is that Trance has grown quite a following in the US, and places like the SF Bay Area, and while Trance has been declared dead a few times in the last 10 years, it's still going strong here.
Trance Family SF is definitely strong in the area, we've been getting more big trance parties every year, including many top DJs that come visit us what feels like every other week now (as of 2018-2019), and through those events, I made many friends in Trance Family SF. Thanks to you all.

Over those years, I got the chance to meet a few of my favourite DJs, including Armin more than once, and my last hobby has been to work on lights for my shirt and pants (version 3) and (version 4)



You can find all the pictures here

>>> Back to post index <<<


π 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):

    new versus old, piece of wood used to stir paint, and 3mm screws with limited reach
    new versus old, piece of wood used to stir paint, and 3mm screws with limited reach

    trying both boards
    trying both boards

    Now another vexing failure point I had, was the ribbon cables from front panels to rear ones. I used a trick to only drive the front panels with a Raspberry Pi and had ribbon cables to pick up the signal coming out of the front panels, and feeding it to the rear panels. This was a great idea, it ran the rear panels for free, I didn't have to have a 2nd rPi in the rear and saved on power.
    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
    note the straps to protect the HUB75 cables

    this was supposed remove stress from the HUB75 plugs, but didn't do well enough
    this was supposed remove stress from the HUB75 plugs, but didn't do well enough

    there are the HUB75 plugs that would fail
    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
    with the new setup, 2 computers (really 4 with the ESP32s), no more ribbon cables front to back

    One other build optimization is I did what I should have done a long time ago, which was to use the fat power cables to send power around. Those cables even have ends that plug directly into my 20V-5V DC-DC converter. Why did I not do that earlier and insisted on using JST 2 pin cables everywhere (which I had to solder on each new panel). As an added bonus, those big power cables are thick enough that a single one going across to the back (the only connection between the 2), is enough. In the process I also removed 2 straps between the mid and top panels, as they were unsightly and now unnecessary:


    So the new build runs both screens independently:


    while both sides are setup to display the same thing, they render independently. This is not a problem of course
    while both sides are setup to display the same thing, they render independently. This is not a problem of course

    Now, I had to write a fair amount of ESP32 code (I used gemini for help), so that the 2 chips would coordinate, the front one would be master (selected by switch) and the rear would listen for a broadcast, become slave, and send its IP to the master. The master would then send a UDP command to the slave to update the pattern every time the master changed. End result:

    This is how it works with remote control:

    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 :)

    0.004s
    0.004s

    0.002s
    0.002s

    0.001s
    0.001s

    0.001s
    0.001s

    If you'd like to follow future posts, you can subscribe to this blog with an RSS reader (atom.xml), or you can follow me on one of these: https://instagram.com/ledtranceguy/, https://facebook.com/ledtranceguy/, Discord, Mailing List, or Whatsapp Chat and you can also DM me for feedback if needed.

    Table of Content for clubbing:

    More pages: July 2026 June 2026 May 2026 April 2026 March 2026 February 2026 January 2026 December 2025 November 2025 October 2025 September 2025 August 2025 July 2025 June 2025 May 2025 April 2025 March 2025 February 2025 January 2025 December 2024 November 2024 October 2024 September 2024 August 2024 July 2024 June 2024 May 2024 April 2024 March 2024 February 2024 January 2024 December 2023 November 2023 October 2023 August 2023 July 2023 June 2023 May 2023 April 2023 March 2023 February 2023 January 2023 December 2022 November 2022 October 2022 September 2022 August 2022 July 2022 June 2022 May 2022 April 2022 March 2022 February 2022 January 2022 December 2021 November 2021 October 2021 September 2021 August 2021 July 2021 June 2021 May 2021 April 2021 March 2021 November 2020 September 2020 July 2020 February 2020 December 2019 November 2019 October 2019 August 2019 July 2019 June 2019 May 2019 April 2019 March 2019 February 2019 December 2018 November 2018 October 2018 August 2018 July 2018 June 2018 May 2018 April 2018 March 2018 February 2018 November 2017 August 2017 July 2017 June 2017 May 2017 April 2017 March 2017 February 2017 December 2016 November 2016 September 2016 August 2016 June 2016 May 2016 January 2016 September 2015 August 2015 June 2015 September 2014 August 2014 May 2014 September 2013 May 2012 May 2011 December 2009 November 2009 April 2009 March 2009 October 2008 June 2008 October 2007 September 2007 July 2007 May 2007 April 2007 November 2006 October 2006 September 2006 June 2006 May 2006 January 2006 December 2005 October 2005 September 2005 August 2005 June 2005 May 2005 February 2005 December 2004 November 2004 October 2004 September 2004 June 2004 August 2003 July 2003 February 2002 November 2001 October 2001 September 2001 July 2001 June 2000

    >>> Back to post index <<<

    Contact Email