Marc's Public Blog - Clubbing and Trance

All | Aquariums | Arduino | Btrfs | Cars | Cats | Clubbing | Dining | Diving | Electronics | Exercising | Flying | Hiking | Linux | Linuxha | Public | Rc | Sciencemuseums | Snow | Solar | Trips

Ok, so I like electronic dance music, more specifically Trance. Unfortunately, the US, it's let's just say... a bit behind in that department. If you ever hear such music on the radio, or even in the street, let me know (for instance, in Australia, I heard great Trance in even a waterslide park of all places, and in Europe you can easily get EDM/Trance on broadcast radio).
Since 2004 (it's not 2016), 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, and we're lucky to have at least one or two big Trance parties per year, so yeah!
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.

Over time, I've seen many of my favorite DJs across the world, whether it was locally, in New York City, Canada, Australia, and of course Ibiza, and at Halloween 2004, I finally attended some great local parties that proved that you could get the good stuff locally too (even if all the artists came from other countries :-).

Over the years, I also got the chance to meet a few of my favourite DJs, including Armin more than once:

You can find all the pictures here

>>> Back to post index <<<

2017/06/02 LED Pants and Shirt Programmed With Arduino on ESP8266
π 2017-06-02 00:00 in Arduino, Clubbing, Electronics
So, this all started with some LED shoes I hacked to last 12H instead of 4, and it ended with me learning how to program arduino like microcontrollers to control neopixels (aka WS2811/WS2812/WS2812B) while being able to receive Infrared/IR commands. The latter is actually difficult but you go read that page to learn why

Since I've met plenty of people who complimented for my neopixel shirt and pants combo, and some who asked questions about them, I thought I'd write some quick page to explain how it all works and how you can do similar things, since it's more fun if I'm not the only one lit up at Dreamstate (which has been less of a problem at burning man).

Here is a video summary:

Show me the code!

Sure, it's here: (but go to the end of this page for more details).

So, I have 3 versions of the shirt, let's go through them depending on how complex you'd like to go:

Multi Color LED strip, non controllable

It used a 12V controllable dimmer: which can simply change the brightness of the LEDs, which are of a set color. I bought the LED strip in Akihabara Japan, but I'm guessing something similar can be found elsewhere.

Tri Color Controllable LED strip

This version is better in that the LED strip has 3 channels, one for reach of Red, Green, and Blue. I uses a tri color controller like this one: or remote controlled:
Those controllers can create any color and flash it at any interval, however:

  • they are a flat trip that doesn't really like being bent
  • all the LEDs are in series, so if the chain fails somewhere, nothing lights up beyond the point of failure (which is why I have extra wires soldered on to make redundant paths and get around breakage
  • I have had some sections of 3 LEDs where one color died
  • All of the controllers I tried have a dimming function, but it fails to work when I use the fade dimming patterns, which means they are full bright, suck battery and blind others. I've therefore had to add a 2nd voltage regulator where I can just dim the voltage sufficiently so that the current is then also capped by each color string and therefore the brightness is controlled (you cannot limit the global current fed to the LED controller because you don't know whether it's all fed into a single color, or shared amongst 3).
  • Of course the last thing is that all the LEDs for a color are in series in a single circuit, so you light up all the reds, or all the blues or greens, or none. You can't turn on one LED individuallly. This is where the next solution comes in.
  • ESP8266/Arduino Controlled Neopixels

    To fix the issue of not being able to have custom multi color LED patterns, where each LED/pixel can be controlled separately, the solution is neopixels (aka WS2811/WS2812/WS2812B). Each LED/pixel is controllable separately, which is done by a computer, in this case the ESP8266 can run my own programs to control all the LEDs.
    The ESP8266 is a 3.3V based microcontroller for low power use (good when battery powered) while the neopixels are 5V powered, but thankfully the neopixels can use 3.3V signalling from the ESP8266 while being 5V powered to light up properly. The one thing to keep in mind is that neopixels use some power even if they are not lit. In my case 200 neopixels, take about 120mA when they are off, and 4.5A when they are all lit in white on full brightness.

    Neopixels are almost infinitely versatile, instead of having them in single line strips like on my shirt and pants, you can also make display matrices out of them:

    I've then written code that receive the IR commands from the remote and execute different code that creates different light patterns, which is explained in more details and available on this page and you can get the code from github.

    Here is a video that shows all 3 modes, jump to 3:50 for the neopixel bit:

    More pages: 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 <<<