Pixel Mapping a Jogging Jacket

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.


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.



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.

Point Source Pixel FAQ / Installation

This post attempts to gather all of the important Point Source Pixel information in one area.  Click on any picture below to enlarge.

For pictures, video clips and more, take a look in the ‘archives’ section and peruse older posts.


The point source pixel system was designed in 2008 to be bright, easily chained and easy to use.  To that end, we settled on a system comprised of driver boards, a ribbon cable wiring harness, and small circuit boards containing the RGB LED and appropriate DMX reception hardware.

Each pixel includes a standard RS-485 receiver and a small microcontroller.  The receiver chip converts a balanced differential signal into a standard logic level that the processor can understand.  Each pixel requires three consecutive DMX channels: one each for red, green and blue.  Red is always the first channel, green the second and blue the third.

Of course, the start address of each pixel can be set to any number between [1 510].  Thus, 170 pixels can be discretely controlled by a single DMX universe.

Point Source Pixel DMX Splitter / Driver
Pinout / Wiring Data for DMX Splitter / Driver
Ribbon Cable Adapter
Ribbon Cable Adapter

A driver board has headers for  power  and DMX in/through.  It contains an RS485 receiver chip and 2 RS485 transmitter chips.  Since RS485 is meant to be used in shielded, twisted pair cables (rather than ribbon cable) we decided it made most sense to drive moderately short (10′  – 20′ long) cables.  If the ribbon cable is much longer, signal integrity of the high-speed DMX data is compromised.

Thus, up to 32 driver boards may be daisy chained together.  Each driver board has two outputs.  Each output can drive between 1 and 32 RGB pixels.

The system’s backplane is based on regular 10-conductor ribbon cable.  Since these are very light cable gauges, we use 4 conductors each for power and ground.  The remaining pair transmits the DMX data.

To build the backplane, we installed 10 conductor IDC female connectors at regular points along the ribbon cable.  Spacing between 6″ and 8″ seems to work well.

Point Source Pixels have a 10-pin male header, which conveniently attaches to the ribbon cable backplane.  Naturally, the header pinout matches that of the splitter / driver boards.

Sample part numbers from www.jameco.com:

  • 10 pin male header #67821, $0.21 @ qty 10 (included on assembled circuit board)
  • 10 pin female IDC socket #32492, $0.25 @ qty 10
  • 10 conductor ribbon cable #643815, $15.18 / 100′

System Power

Each pixel has a built-in voltage regulator which converts Vin (usually 8-12V DC) to +5v required by the processor and LED.  Note that the RGB LED is driven from the processor’s pins.  This means that the board input voltage can vary somewhat, so long as it is high enough that the voltage regulator can function properly.  We’ve had spectacular success using switching power supplies designed for / removed from computers.  They output +12v DC at many, many amps, and for a very reasonable price.  Try www.weirdstuff.com if you don’t have anything lying around.  At full power, each pixel draws just over 60 mA at 5 volts.  A bit of Ohm’s law shows that

  • .06 A * 5V = .3W
  • 12V / .3W =  40 mA drawn from a +12v supply.

So choose a properly sized power supply for the job.

Wiring diagram / pinout for DMX Driven Point Source Pixel
Wiring Diagram for Point Source Pixel
10mm Point Source Pixel - Close View
10mm Point Source Pixel - Close View

DMX Addressing

Naturally, for most effective operation each pixel requires a unique DMX address.

Since each board is too small to contain a DIP switch or display + pushbuttons, there are two ways a pixels DMX start address can be set.

  1. In firmware at compile time.  Using a PIC programer and Microchip’s MPLAB, each pixel’s start address can be hard-coded into program memory.  This works well (we’ve done it thousands of times) but gets tedious after a while.  Also, a special programming harness is required to access the proper pins on the chip.
  2. With an external programmer.  We designed the firmware to listen for a specific sequence of data, beginning with a ‘non-zero’ start code.  This start code / data sequence would never occur in a regular lighting system.  Think of it as a secret knock on the pixel’s back door.  When the proper data and checksum is received, the start address is stored in the processor’s permanent memory.  Changing addresses is easy and takes only a few seconds and can be done without any special computer programs.  See this link for a description and video clip of the field programming system.

That’s a decent overview of the system.  Questions?  What have we missed?  Send an email to john AT response-box.com.

Field Programmable Source Code!


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


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:


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:


‘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?

Complete 2008 Point Source Pixel Rig For Sale

EDIT 3/9/09 —— The System Has Been Spoken For.  Thanks! ——–


So I’m working on some new ideas for the 2009 Christmas season.  To get everything R&D’d I need to free up some capital.  And though my wife thinks I’m crazy, I’ve decided to sell the entire rig used for the 2008 build.

At its most basic level, the system includes

  • 200 Point Source pixels, assembled and tested & guaranteed to run.

These little friends have been selling briskly in our online store at $7.50 each.  By my calculations, that prices the bare pixels – wiring, connectors and programming time excluded – at $1,500.

However, I’m reluctant to break up the system.  So to sweeten the deal, I’ve decided to add the following bits and pieces:

  • One Isolated DMX splitter with XLR-5 ‘in’ and ‘through’ jacks, plus 8 output drivers and custom wiring harness tails.  These have been selling well for about $80 each.
  • One Isolated DMX splitter with XLR-5 ‘in’ and ‘through’ jacks, plus 4 output drivers and custom wiring harness tails (my rig used two DMX universes, hence the double splitters).  Retail price is $60.
  • 6 Data /  Power cable harnesses, each measuring between 80′ and 160′ long.  I paid $0.60 per foot for the two types of wire, plus about $4 for the polarized, locking Molex connectors on either end.  Total wiring harness length is very close to 600′.
  • 6 DMX Splitter / Ribbon cable feed boards.  These convert connect the power cable harness to the ribbon cable runs and ensure that power and data are cleanly distributed.  They probably cost $15 each to build and test. 
  • 6 sets of ribbon cable with connectors mounted on 8″ centers.  Each cable contains between 10 and 42 point source pixels.
  • One +12v @ 12A switching power supply – more than beefy enough to run the entire system – with custom wiring harness pigtails.  Cost me $30 at www.weirdstuff.com a few years back.


  • I’ll re-flash each of the pixels with our brand-new firmware.  It will take about 3 hours, but I think it’s worth it.  The new firmware allows the a pixel to be re-addressed in the field – without using a computer.  It also boasts a 150 Hz refresh rate on the dimming routine.  This is 50% faster than the current firmware allows, and it makes fades and chases even more smooth.


  • I’ll throw in a brand-new hand-held pixel Programmer / Tester module.  It contains a tiny LCD plus several pushbuttons for easy navigation.  Setting and confirming a pixel’s address takes only a few seconds.  Once I get these assembled in bulk, they’ll be priced at $48 in our online store.  

So when the dust settles, this is a complete, ready-to-install RGB lighting package.  Everything is included and easy to configure.  You just provide a stable source of DMX and some imagination.

The system is guaranteed to arrive in working condition.  Your purchase also includes unlimited tech support via email, plus 5 hours of live, on-the-phone troubleshooting if you get stuck for any reason at all.

If I add up the prices of everything listed above, the total very nearly reaches $2,150.

However, I’ve decided to let it go for $1,839.  

I have to move quickly because our accountant will be very, very irked if he finds out what I’m up to.  

You should move quickly because things for sale here often don’t last long.  In fact, I’ve already emailed everyone who is a member of our exclusive ‘Insider’s Club’ (you can join at the top right corner of this page) and fully expect that one of them will swoop in and grab the gear at an incredible discount. 

So if you’re interested or have more questions, send me an email and we’ll talk.  Address is ‘john AT response-box.com’

* Note that there’s still some snow on the roof here, and I’m not going up to retrieve the high bits until everything is bare and dry.  It shouldn’t take more than another week if the current weather trends hold.

Below are a couple photos which show the wiring harness and ribbon cable adapters in more detail.  Click a photo for more.



Point Source Pixels For Sale

UPDATE 2/2/09 – The string of pixels has been sold.  Thanks!

I’m selling one  ‘test’ string of point source pixels.  These are assembled and fully functional and have otherwise never been used.

The 25 pixels are mounted on 8″ centers on 10-position ribbon cable.  Since each pixel has a 10 pin male header, the cable can be easily and inexpensively replaced if desired.  Note that this is the same pixel spacing I used on the house this year.

Included in this package are the following:

  • 25 x 10mm Point Source Pixels
  • Ribbon cable with female headers on 8″ centers
  • Ultra-tiny DMX splitter and power combiner module
  • 5 pin male XLR connector for DMX input
  • 2 wire leads for power input.  Power supply is +12V, tightly regulated.  For full brightness, plan on ~ 70 mA per pixel total.  NO power supply is provided.
  • System guaranteed to arrive in working order.
  • BONUS: Unlimited tech support via email
  • BONUS: Up to 1 hour free tech support via telephone

Note that presently only 1 system is available for sale.

Pixels are programmed to DMX addresses [76,77,78], [79,80,81], … [145,146,147] respectively.  I’ll reprogram them to any other range for an additional $15.

Price is $179 + freight.  First come, first serve.  Send an email to john AT response-box.com with ‘I want the Pixel String’ in the subject line.  All major credit cards are accepted, and international shipping is no problem.


Point Source Pixels – Fully Installed!

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.

Point Source Pixels – Halfway Installed

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.

Point Source Pixel – First Run


[click to enlarge]


Point Source pixel. Based on the original RGB design but with a 10mm RGB LED.

I’m really happy with this design. Adding some 1″ clear heat shrink tubing will make the design waterproof and safe to use outside. Of course, it’s meant to be driven by a DMX Offset Machine, described elsewhere on this site.

The YouTube clip below is characteristsicly choppy, but in real life the colors are crisp and clear. The transitions are very smooth and the white light ‘strobe’ effect is very convincing.

To get a decent video exposure, I placed a 100W desk lamp directly above the pixel while shooting. This way, there was a reasonable balance between the LED light and the ambient light.

All current used by this device comes through the 78L05 regulator, making the system much less sensitive to voltage drops in the cable. Power supply of 7-12V DC, 70 mA per pixel, will work wonderfully.

The LED throws a neat shadow 10′ across the workshop onto the opposite wall.

Buy bare circuit boards for $3 each if you’re interested.
3/28/08 Further Experimentation 

I chained 8 of the pixels together, just to see what would happen.

Wiring is more arduous than soldering the components in place! Each pixel has two sets of terminals in parallel with each other. This makes daisy chaining relatively simple.

I used 22 gauge shielded cable with 5 conductors: DMX ground, D+, D-, Pixel Power, Pixel Ground. Wires connected to the top and bottom of the circuit board. Then, the board lays flat.

Finally, I put a piece of 3/4″ clear heat shrink tube over the entire assembly. A small hole was punched in the center to let the LED peek through.

The ends aren’t completely sealed, but adding a few small pieces of 3/8″ heat shrink would close them up nicely. Waterproofiness is very desirable.

Coming soon: Video clips & photos of the chain in action.


Bill of Materials:

  • C1   .1 uF 10v 0805 ceramic
  • C4   10 uF 25v 0805 ceramic
  • C5   1 uf 10v 0805 ceramic
  • JP1  5 pin .1″ header, or leave blank                
  • JP2  5 pin .1″ header, or leave blank                
  • LED  RGB LED, 4 pin, common cathode                   
  • PGM  5 pin .1″ programming header, optional          
  • R1   80 0805 package        
  • R2   80 0805 package    
  • R4   1000 0805 package    
  • U$1  78L05 SOT-89 package                               
  • U1   PIC 16F688 SOIC-14 package                          
  • U2   MAX485/SN75176 RS485 transceiver, SOIC-8 package
Buy bare boards for $3 in the online store.
Find a PDF copy of the schematic here.





Point Source Pixels Remixed



Pixel String T Driver
Pixel String T Driver
Point Source Pixel
Point Source Pixel
Point Source Pixel
Point Source Pixel

The point source pixel design I came up with last fall has a lot of advantages: Small size, low power & good color mixing in a 10mm package. The hardest part was finding a way to chain multiple boards together. I’d done lots of tests by hand and found that building the wiring harness often took much, much longer than the actual board assembly. 


Life’s too short to spend days and days building a wiring harness.

So I redid the design… It ended up costing a few pennies more in components, but the time saved making wiring harnesses more than compensates.

Since each pixel has an on-board voltage regulator – and since the LED is driven from the processor directly – voltage drop within the cable is less of an issue than otherwise expected.

It’s based on a ‘backplane’ of 10-conductor ribbon cable. 4 conductors each for power and ground, plus a pair for DMX data.

It’s easy to lay out the cable, mark it every 6″ or 12″ and install IDC female headers as needed.

Since I was concerned that the high-speed data would be corrupted over long lengths of flat cable, I also designed a tiny DMX repeater / splitter board. It has connections for DMX in & through, plus an RS-485 receiver. Then, two RS-485 transmitters feed data to two separate 10-pin headers.

Each header connects to a female ribbon cable jack. So in essence, a string of lights can be driven from the center.

I expect to drive 16-18 pixels on each side of the ‘T,’ with each arm being 8-10 feet long.

Each splitter board will be connected to the control equipment two cables: a shielded, twisted pair for data and a heavy gauge pair for power.

~600 of these are being assembled by a shop here in town… Will post some video clips when it’s all installed.

 After taking the picture of the board + heat shrink tubing, I used a razor blade to trim the tubing back to the junction between the LED’s wider ‘neck’ and main bulb. This way most of the 10mm bulb is visible but the water resistant seal remains reasonably sound.

These are being mounted in the eaves, under the raingutter and near the soffit. It’s not designed to be fully submersible, just resistant to the occasional sideways-blowing blizzard.