Meshed Network Light Suit Technical Details (part 1)

Lots of (non)moving parts

I’ve been putting off posting more details on the meshed-network-controlled light suits, as promised in my last blog entry, until I made enough progress on the whole project to be confident that it’s all going to work.  Although it has turned out to be pretty complicated (see illustration :- ) it hasn’t been that difficult – just time-consuming. In any case, it’s pretty much coming together and it looks like the whole setup will probably meet what I thought was an unlikely ‘stretch goal’: multiple, autonomous, light-festooned nodes (2 light suits, 2 autonomous light staffs and the autonomous light cape)  mesh-network to flash in sync with wireless sound.  I’ll now take a short break from assembling it all to post a couple of entries on how it’s all coming together. This first post will focus mainly on the sound.

So, frankly, I originally didn’t plan on doing that much this year.  I always like to kick it up a notch, no matter how slightly, so I had planned on adding a couple of illuminated Plexiglas staff’s for me and LakewayLightGuy to carry around, and maybe work on an under-illuminated dim string or two on the suit – but that was about it.  I’ve actually gone WAY beyond that.  I gotta give some credit here… I’ve recently been working on a contract at Balfour to implement an architecture based on an Enterprise Service Bus and workflow engine to consolidate the orders process across their multiple business units.  Balfour, which until recently, was Commemorative Brands Inc. (CBI), will be familiar to many of you especially if you bought a class ring in high school or college.  They also own ArtCarved, as well as a letter jacket company, a year book company, and one or two other commemorative-related endeavors. Anyway, one of my new workmates, and a fellow techno-enthusiast, Jay Graves, noticed AustinLightGuy.com on my resume, I think. After I came on board, he ended up getting me interested in Arduino micro-controllers and the vast community of add-ons and arguably geeky projects (examples here) surrounding them.  Before long, I had talked myself into quite a bit more.  Thanks, Jay – you’ve cost me about a hundred hours of my spare time this holiday season! You better hope AustinLightWife has had a glass of wine or two in her when and if she meets you! 😉

Instead, I decided on the stretch goal of not only synchronizing my suit lights to sound, but also using XBee mesh networking to synchronize the lights on LakewayLightGuy’s suit, the Autonomous Cape, and two new Light Staffs. XBee modules use the Zigbee 8.15.4 wireless protocol to establish mesh networks. This sounds really complicated, but I plan on trying to communicate how easy it actually is in a forthcoming post.

Light Staff Conceptual Schematic

Now, since I had made this decision to synchronize everything to music, I was thinking about what I would need to actually play the music. I thought about getting some fairly flat PC speakers that I could mount on the suit – maybe straddling my shoulders or something – but I sort of didn’t want a whole lot of stuff hanging off of me.  Just doing synchronized sound was already going to mean having a laptop (actually, I’ll probably use our Dell Mini) in a backpack under the jumpsuit. So, I thought “why not put the speakers in one of the staffs, and transmit the audio via wireless too?” (see conceptual schematic, left)  Rather than re-inventing the wheel, I figured I’d just get some cheap Bluetooth speakers, cannibalize them and mount them in the staff, then connect them to the Laptop via Bluetooth Audio, which is supposed to be part of the Bluetooth spec.

I ordered the cheapest pair of Bluetooth speakers I could find on DealExtreme.com (you must check out DealExtreme) that still seemed like they weren’t complete crap (warning: a lot of stuff on DealExtreme.com is complete crap – shop with care!) and would fit into a light staff when dismantled. I’m basically planning on using 1.75″ outer diameter Plexiglas tubes for the staffs.  I wound up ordering it from USPlastic.com, along with a slightly larger Plexiglas box that I’ll mount on top of the music-enable staff to hold the electronics I cannibalize out of the speakers. With a 1/8″ thick wall, that gives me an inner diameter of 1.5″, which should be adequate to contain the speakers from the Bluetooth enclosure, some batteries, some short LED strings, and the XBee receiver and a breakout board with some transistors to drive the LED strings.

Cheap Bluetooth Speakers

I ran into a problem right away with the Bluetooth speakers.  Although audio is a standard part of the Bluetooth spec, it seems the Microsoft Windoze drivers don’t support remote speakers over Bluetooth. What a surprise (not!). So, after a lot of googling, I found some drivers that do. Although they seem to be from some weird Chinese company (BlueSoleil), they are seem to be fairly standard in the world of Bluetooth, and even ship with more expensive dongles.  Even then, after installing the trial drivers I still had problems. Since none of my PC’s or laptops have integrated Bluetooth, I was using the tiny Bluetooth USB dongle, illustrated in the lower-right of the photo, that I had previously purchased for about $2.61 from, yes, DealExtreme.com.  The sound that was coming out of the speakers was horrible.  Very static-y and distorted. Also, the free trial version of the drivers only stream a few meg of audio before requiring you to upgrade to the full version.

So, at first I’m thinking “these must be crappy speakers”.  After all, the dongle is digital – it’s either going to work or not, right? It has been working fine with a Bluetooth mouse and keyboard. I experienced the same problem with two different brands of trial drivers, so I figured it’s probably not the drivers, leaving the speakers as the culprit, right?  WELL, the thing is, when I paired the speakers with my iPhone (which worked no problem, the first try, by the way), I could play music on them no problem and it sounded MUCH better. Not great but, hey, what do you want for $20? So, as unlikely as it seemed, I figured it must be the USB dongle.

I could by one for around $20 plus shipping from a reputable online source, but what fun

Bluetooth Dongles

would that be.  I went back to DealExtreme and bought two (this one and this one ..for as long as the links last) that were more than $2.50 – actually $6.36 and $8.36, respectively – that both came with driver CD’s. One was even pictured with a BlueSoleil CD.  My goal was to get at least one that worked well with audio and came with a full version of BlueSoleil.  Four weeks later (DealExtreme stuff ships from China…for free, by the way!) they arrived. One came with Toshiba drivers which didn’t seem to include audio support..or at least, not audio support that worked. The one on the left came with (yeah!) licensed BlueSoleil drivers.  After installing those, both new dongles play perfectly good audio on the speakers! Problem solved.

In my next post, I’ll go into some detail about the software I’m going to use to generate the light sequences and play the music they are synchronized to.

Advertisements
This entry was posted in Christmas, Technical and tagged , , , . Bookmark the permalink.

5 Responses to Meshed Network Light Suit Technical Details (part 1)

  1. Pingback: Meshed Light Suit Technical Details (part 2) | Austinlightguy's Blog

  2. Pingback: Meshed Network Light Suit Technical Details (part 4) | Austinlightguy's Blog

  3. Pingback: Light Dimming Using Ardiuno with Inverters | Austinlightguy's Blog

  4. Pingback: LightSuit V2 | Austinlightguy's Blog

  5. Pingback: Lightsuit V2.0 (part 2) | Austinlightguy's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s