03 March 2014

LightWalker 2.0

My first shot at LightWalker was way more involved and elaborate than I originally planned and definitely more involved on the hardware side than I thought I could deal with. But, it did actually work. Mostly.

I don't know how most people face difficult problems they've never handled before, but whether it's rebuilding an engine, repairing a hole I put in the wall, or something like LightWalker, I usually do it once just to figure out what the hell is going on and then immediately do it again to do it correctly. Now, I'm definitely still a noob when it comes to hardware and embedded stuff, so I'm not going to claim that I'm doing everything correctly here, but I do think it's a step in the right direction.

Main complaints from LightWalker 1.0
  • Difficulty producing desired results in the RGB color space
  • Lack of memory available
  • Limited frame rates possible with the Arduino Mega (ATmega2560)
  • Overall bulkiness of the unit
  • My own half-baked software design

So, here's LightWalker 2.0 so far:
Initial  build of LightWalker 2.0
  • Hardware
    • Teensy 3.1 (32-bit ARM Cortex m4, 72Mhz, 256Kb Flash, 64Kb RAM)
    • Schmartboard SMT to DIP board sporting a TI PCA9546A I2C multiplixer allowing communication to four ADXL345 ±16 g accelerometers
    • Bluefruit EZ-Link bluetooth
    • Electret microphone
  • Software
    • Moved away from Cool Neon and Chris De Vrie's TCL Arduino library for controlling lights and to FastLED 2.1
    • I also removed my MSEQ7 shield and am doing audio processing in software now. This allows me to do a bit of max/min adjustment on the fly instead of having to cover the microphone in hot glue to deal with being within a half mile of an 85k watt stereo.
This is currently all on a blank perf board and wire wrapped together. Not sure if I'm going to just throw some solder on top of it and call it good or re-do on a better breadboard PCB or what. And, this is also still controlled/configured by a revamped android application running on Android KitKat.

As you can see, this is way more compact than an Arduino mega with two shields and a separate bluetooth breakout board. Hell, the whole thing is smaller than the mega alone! But, the main advantage to this new unit is speed and lighting effects.

Before I get into the speed portion, I've gotta say that using FastLED to work in the HSV color space is amazing. I've only touched the surface of what you can do, but it is extremely simple to create smooth and subtle LED effects when working with HSV. You can easily create transitions between colors instead of just doing a hard switch from one to the other. And making things smooth and subtle is the name of the game when it comes to LEDs. Otherwise they hurt your eyeballs. 

Now for the speed thing. This is kinda interesting to me...


configuration/modeequalizer (fps)gravity* (fps)sparkle* (fps)pulse (fps)bubble* (fps)rainbow* (fps)zebra* (fps)
LightWalker 1.0, arduino, TCL877189316n/an/a
LW 2.0, arduino, fastLED 236715135162532
LW 2.0, arduino, fastLED 2.135715135162533
LW 2.0, teensy 3.1, FastLED 2988681173908573
LW 2.0, teensy 3.1, FastLED 2.1250124130465134123100
[Update] Note that all of these tests are done against a strand of 352 P9813 driven RGB LEDs (AKA Total Control Lighting)

Couple things to keep in mind:
  • The equalizer mode on the arduino is using hardware to calculate "loudness". The teensy configurations are using software to calculate the same. Obviously something is off with the equalizer stuff in 2.0 as the frame rate was chopped in half when it should have stayed the same or gone up. It's on my to-do list to look into it.
  • FastLED 2.0 does *not* officially support the P9813 chip that I'm using in my Cool Neon TCL strands, but I was able to port the 2.1 code for that chipset to the 2.0 release. That's what my FastLED 2 testing was run against. That was not an official FastLED 2 release.
  • The different modes obviously do a bunch of different lighting effects and some are more complex and slower than others.
  • The modes marked with an asterisk read data from four different accelerometers and perform calculations  on the data *for each frame*. This is why the pulse mode is so much quicker than the others, it is not reading any sensor data for it's effects.
Some conclusions
  • The obvious result is that it pays to be on the new hardware and on FastLED 2.1. Now hopefully 2.1 is officially released soon...
  • I think it's fairly interesting that the arduino based platform didn't benefit from the move to FastLED 2.1 from a speed perspective. The no-sensor-reading pulse mode did see about a 40% increase on the TCL -> FastLED 2 move, so my guess is that the sensor reading and calculations I'm doing are so slow on the arduino that the LED writing speed is negligible.
  • The 100+ average frame-rate is really really nice for doing smooth LED transitions and effects. I'm really happy to see this kind of improvement and am already adding new effects based on the new abilities.
The code is up at https://github.com/gerstle/LightWalker if you want to check it out. Think that's all I've got for now, but now that I have two full LightWalker controllers...

02 March 2014

Winter media dump

1 Nov 2013

Well, it has obviously been a while since I've posted and a lot has happened! The decompression and halloween seasons gave LightWalker a lot of exposure. One of the highlights was landing on the front page of the Santa Cruz Sentinel after a fantastic halloween night. There were also some fellow stilt folk out that night that were amazeballs!
Halloween 2013 - stilts & more

The 2013 SF decompression party was a great time and LightWalker made enough of an appearance to catch the eye of Curious Josh for a great shot with a little girl who just couldn't quite deal with what she was looking at. Great work capturing the moment!

SF Decom Awe courtesy of Curious Josh
I also added some lit up horns that I think turned out pretty well. Fairly simple to add another couple LEDs to the strand and I think it really rounds out the costume. In fact, it looks so good that I'm thinking of adding a line of lights up my back too... We'll see.
LightWalker & Griffin @ the Santa Cruz Glow Festival
Halloween 2013 - Harlequin Mandy, Death, and LightWalker!

10 October 2013

Upcoming events

Got some fun stuff coming up in the next couple weeks that LightWalker will be making a showing at...

First off, it's San Francisco Decompression on Sunday the 13th. I'll be there post brunch to hang out, dance, and enjoy the sights. Come sunset, LightWalker will stroll about and help light up the streets.




Then on Friday the 18th, I'm back in downtown Santa Cruz with the Museum of Art & History's GLOW Festival. It's a two night affair involving mostly fire on Friday and LED electronics and LEDs on Saturday. I'm being a rebel and will be there Friday cause they have more space that night and I want to go surf in Big Sur on Saturday. So, LightWalker will be walking the streets of Santa Cruz and dancing with Samba Stilt Circus and the Dancetronauts within the GLOW Festival from 7PM - 10PM.

Come join me!

06 September 2013

birth of the playa creature

LightWalker's true birth happened this past week in Black Rock City, Nevada on the playa of Burning Man 2013. I won't bother you with words...









12 August 2013

I'm a dragonfly!

OK, you have to watch the second video to get the dragonfly reference, but I like this first video for showing off the lights a little bit more:


This shows it a little more in action and how I'm going to actually be moving in it...


Overall, I am absolutely thrilled for how it's performing. Course, to get it to that point, I've done a ridiculous amount of work, hacking, and polishing. Maybe it wouldn't have been as big a deal if I hadn't burned three hours on Saturday messing with electrical connections and trying to figure out why the lights didn't work only to realize that my Arduino's battery was dying and causing the SPI signals to get lost. Fail.

Next step is to tweak some wiring that didn't quite work once on my body and finish the arm coverings. Then it's off that thing in the desert!

Happy happy :D