The Color Mixing Christmas Light Project

Discretely Controllable DMX Driven RGB Pixels

  • Insider’s Club!

    To be notified when new content is added to this site, just enter your name and email address below:
  • Looking for nifty DMX gear?

    Protocol converters, data bridges and more from our main website.
  • Subscribe

Archive for the 'Classic Pixels' Category

Pixel Mapping a Jogging Jacket

Posted by JEC on 24th September 2012

Blue and White Stripes

Because why not?

A few weeks ago one of my wife’s friends invited her to run an In-the-Dark-5K race, the proceeds of which benefit the Olive Osmond Hearing Fund.  The late Olive was the mother of the famous singing Osmonds, and the grandmother of several of our friends in high school.

The race website said

We encourage everyone to wear their brightest colored running gear!  Don’t forget your glow sticks and body paint! We will have black lights on the course to be sure that everyone will GLOW for HEARING!

Plus, other friends from long ago live in the same city (Logan, Utah).  So we decided to take a road trip.

Back when she first heard about the race, I’d just taken delivery of 150 meters of white EL wire, which will be used in a Halloween project next month.  I was testing the EL inverter in the workshop when she walked in.  I suggested – half in jest – that we wrap her jacket in glowing wire for the run.

“But can it change color?”

“Well, not really,” I said sadly, recalling that that with a bit of electronic sorcery the phosphorescent hue can be shifted a bit to the left or right.  And with some even more clever math, it can be dimmed.   But that’s about it.

“No thanks then.  Maybe we could use some of your extra lights from the yard tree instead?”

This seemed like a lovely idea.  We sketched out some rough plans.  Later that afternoon, she took a trip to a nearby outdoor equipment retailer and returned with great handfuls of flat black webbing, plus an assortment of plastic clips, latches and turnarounds.

The drawings and loose parts sat neatly on the shelf until yesterday, the day before the race.

Construction

We designed a form fitting vest / jacket skeleton using the webbing, white marking pens and a stapler.  Once all the pieces were in the right place, the staples were replaced with machine stitching.

Color Changing LED Running Vest

LED Running Vest

She also fabricated a small pouch to hold the controller and battery pack, and attached it to the vest’s rear, just below the shoulder blades.

Pouch for Battery Pack

Close Up – LED Mounting with Zip Ties

The controller board was a a saved prototype from a different project.  It was originally designed to drive 6 sections of RGB LED tape (18 channels total, 2A peak per channel, that’s a lot of LED tape) using either live DMX or data stored on an SD card.  However, it was easy enough to repurpose a pair of pins to drive the LED node string.

Controller and DC-DC Power Supply

 

Controller and PSU Inside Protective Pouch

 

Battery Pack – LED Vest

Plus, it was free.  Because as any accountant will attest, massive sunk costs can be completely ignored a few months later.

The card contains a DMX input stage, plus a few pushbuttons and LEDs for user feedback.  I wrote a tiny program which captured incoming DMX at 44 frames per second,  then saved the data to an SD card.

An interesting quirk of memory cards is that although they can be read from very quickly and consistently, the write process is not always as smooth.  Even when writing entire sectors (512 bytes at a time) to the card, there can be random and variable delays incurred by the card’s internal electronics.  300 mS isn’t at all uncommon.

So the DMX capture code actually copies data to a very large circular buffer (at very precise intervals), and the SD write routine is triggered each time new data is ready.  Since the input buffer is big enough, the two routines never step on each other’s toes.  The result is perfectly stable recording and playback, even though both processes are running at different – and sometimes variable – speeds.

It’s an elegant bit of code, if only in a ‘you really had to be there’ sort of way.

Also extremely vital, because dropped frames are ugly and visually jarring.

An  8-AA, 2400 mA-H, NiMH battery pack supplies power.  Its output feeds a cute little 7-16v input, 5V/2A DC-DC converter, which then powers the controller and LED string.  Testing showed that the 42 LEDs pulled between 800 – 1500 mA depending on their state.  The battery pack was tested for an hour under load, with no problems.  The DC-DC converter didn’t become appreciably warm, which was nice.

Using a copy of Madrix Professional (again, sunk costs), I built a rough facsimile of the jacket’s LED layout.

Patch – 42 RGB Nodes on a Running Jacket

 

The rest was easy.  I arranged a cuelist of about 30 different looks, then let them cycle through over about 14 minutes total.  Madrix output DMX through an ENTTEC USB Pro interface, and the jacket controller, in DMX capture mode, recorded each and every packet.  In regular playback mode, the file is read and (if needed) looped.

Results

 

RGB Running Vest Plus Large Blacklight Fixtures


“Are you wearing a bomb?” asked a curious onlooker before the race started, and while the vest was turned off.

(How do you answer that question, anyway?)

This comment piqued the interest of a nearby campus police officer.  After we turned on the lights, he wasn’t as concerned.

2+ hour run time on a single battery pack

Not nearly as uncomfortable to wear as we expected it might be.

My wife, recovering from a shoulder injury, made good time through the run.

Overkill?  Certainly.  But it was fun to see people watch and smile.

Here’s some video from the race, then a few minutes inside which show some of the different patterns displayed.

Posted in 2012 Project, Classic Pixels, Drive Gear, Photo / Video Clips, Pixels, Point Source Pixels | 3 Comments »

Field Programmable Source Code!

Posted by JEC on 2nd April 2009

Finally!

It used to be that we’d write the pixel’s DMX address in firmware, then compile and program each PIC.  It worked well but got tedious.

Several thousand pixels later, we’ve got field-programmable source code up and running.

Short version: the PIC listens for an alternate (non-zero, dimmer data always is zero) start code in the DMX stream.  That start code is followed by a special packet of data which contains, among other things, the new start address plus a checksum.  The chances of this particular packet occurring naturally in your lighting rig are one the order of 1 in 2^80.  That’s a 1 followed by 24 zeros.  At the time of this writing, this number is slightly higher than the new US national debt.

‘Programming’ packets can be sent at any time.

The new address is, of course, stored in the processor’s permanent memory.

The address is also displayed by the pixel on power-up. The red LED flashes once (.2 S duration) for each ‘hundred’ in the pixel’s address or once (.6 S duration) if there are no hundreds.

Likewise for green / tens and blue / ones.

Channel 1 = long | long | short

Channel 12 = long | short | short short

Channel 304 = short short short | long | short short short short

etc.

So now, all pixels can be factory programmed with the same firmware.  This saves us a tremendous amount of time.

Firmware works for point source, ‘mini’ and ‘classic’ pixels and is totally backwards-compatible with anything we’ve ever shipped.  It will also work in 3-channel mode on the through-hole DIY pixels.  Haven’t had time to mess with the 5-channel version.

Contact us for a .hex file if you want to re-burn your own pixels.  Or send ‘em back and we’ll be happy to re-flash them with this new code.  Programmers are $46 and will be available soon in the online store.

Watch it work in the clip below. Click the arrows in the bottom right corner of the video frame for a full-screen version.


Setting Pixel Addresses in the Field from Engineering Solutions Inc on Vimeo.”>

Boring technical bits:

A normal DMX packet looks something like this on a ‘scope:

BREAK 0 X X X X X X X

Where 0 is the start code, which is then followed by between 1 and 512 8-bit channel values.

Our pixel programming packets have 11 bytes and look like this:

BREAK P I X E L S HH LL CHECK 0xFF

‘P’ is the upper-case ASCII character having a hex value of 0x50. ‘I’ is 0x49, etc. HH is the high byte of the new address. LL is the low byte of the new address. CHECK is the 8-bit sum of the high and low address bytes, overflow ignored.

Programming packets which don’t precisely match this format are rejected.

The pixel firmware doesn’t currently error-check the new address, so values between 513 and 65535 are technically valid. They’ll just never light up in any production lighting rig. However, the programmer firmware is range limited to [1 510]. What good would it do to park a 3-channel pixel at 512?

Posted in Classic Pixels, Drive Gear, Pixels, Point Source Pixels | 2 Comments »

2008 Video Clips

Posted by JEC on 8th January 2009

Peter Jones of Mountain View Staging was kind enough to bring a video camera over late last week.  Below are a couple video clips of the point source pixels in action.


Point Source Pixels from John Chapman on Vimeo.

Point Source Pixels – Zoomed In from John Chapman on Vimeo.

Posted in Classic Pixels, Installations, Photo / Video Clips, Point Source Pixels | Comments Off

Point Source Pixels – Fully Installed!

Posted by JEC on 15th December 2008

What a day!  This morning I drove downtown to get another 200′ of power and data cable.  I’d previously used 400′ of each for the two lower rooflines, the arch and the garden lanterns.

I finished and tested a second 8-way DMX splitter, because the upper and lower runs are assigned to separate universes.  Then, I weathersealed the remaining 100 or so pixels for the three upper runs.  

We started installing at 5:30 and were finished a few hours later.

The test pattern we ran during installation – and which is shown below – toggles between green with red sparkles, red with green sparkles and blue with white sparkles.

All told there are about 200 point source pixels and 19 ‘classic’ pixels mounted in the garden lanterns.

Click a photo once for medium size, then a second time to see in a larger size.

Will post video clips once I’ve found a 3-CCD camera that has decent dynamic range.

Posted in Classic Pixels, Installations, Photo / Video Clips, Pixels, Point Source Pixels | Comments Off

Point Source Pixels – Halfway Installed

Posted by JEC on 10th December 2008

Here are some pictures I grabbed halfway through the installation.  

The low parts of the house are done.  The high parts of the house are terrifyingly out of reach.  Will work on those later this week.

There are 100 point source and 19 standard pixels in the garden lanterns installed so far.  That makes 357 channels of DMX-512.

Click a photo one for medium size enlargement, then a second time to see it full size.

Posted in Classic Pixels, Installations, Photo / Video Clips, Pixels, Point Source Pixels | Comments Off