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?

New DIY Boards in Stock

EDIT 6/5/09:  These boards are all gone and have been replaced.  Click Here for the New Version.

Just received 150 of the five channel ‘DIY’ through-hole pixel boards.  The design is basically the same as before, but I’ve added a programming jumper.  

Grab yours from the 

Online Store 

The simple shopping cart will add $5 for USPS Priority Mail (2-3 business day) delivery. International shipping is no problem, I’ll just need to send you a custom invoice.

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 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’

* 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 with ‘I want the Pixel String’ in the subject line.  All major credit cards are accepted, and international shipping is no problem.


How to (Nearly) Waterproof a Point Source Pixel

In the spring, we’re finalizing a design which has the LEDs / drive electronics safely encapsulated in an injection-molded enclosure which will look surprisingly similar to a C9 Christmas light.

However, tooling and setup fees for the machining will be very expensive.  Plus, it takes a long time.

Here’s how I impatiently but quickly weatherproofed the pixels installed on the house.  Click any picture to enlarge.

(Note that though this seems to work well, it took a long time and was fairly boring.  Won’t be doing it again.  Also, I wanted to use regular heat-shrink tubing to seal the parts.  Unfortunately, the header pins and LED are so bendy that nothing sufficiently wide would make a good seal.)

To start, take an assembled, tested and programmed pixel.

Then, buy a roll of Heat Shrink Film from your local professional print shop.  This is the same plastic that’s wrapped around CDs and DVDs from the store.  It came in a 500 foot roll 12″ wide.  If anyone needs about 485 feet of shrink film, let me know.

Buy a Foodsaver clone from Target for about $40.  Useful because it has a strip of heating element which we use to make custom shapes with the shrink film.

Make a bag, sealed on three sides, out of shrink film.  Mine was 12″ long by 3″ wide and open on the 3″ end.

Seal the fourth side.  The plastic ‘pillow’ is now air-tight.  Test the seal by mashing it with your finger.  At this stage it’s important that the circuit be isolated from the rest of the world.

Ever so gently, press the 10 pins of the ribbon cable through the film.  If you do it right, you’ll have 10 small punctures in the plastic.  Do it wrong and the film tears and you start over.

Use a heat gun to shrink the film.  It’s soft and supple when warm – almost like cellophane wrap.  When it sets, it’s crinkly and stiff.  Funny looking up close, totally unnoticeable from a more than a few feet away.


Attach the pixel to the ribbon cable harness previously constructed.  My lights are on 8″ centers.

For even more protection, use a 1″ piece of 3/4″ diameter heatshrink tubing to lock the female and male headers together.  Somewhat like a turtleneck shirt.

Et voila.  I wouldn’t immerse them in water, but it works well to keep off blowing snow and rain.

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.





Half a Pixel


[click to enlarge]

Half a Pixel

Half a pixel. Based on the original RGB design but with half the LEDs. 1.25″ square.

Bill of Materials:  

  • B1  5mm blue led               
  • B2  5mm blue led                        
  • B3  5mm blue led                          
  • C1  .1 uF 10v ceramic, 0805 package        
  • C4  1 uF 10v ceramic, 0805 package       
  • C5  10 uF 25v ceramic, 0805 package   
  • E1  5mm red led                            
  • E2  5mm red led                          
  • E3  5mm red led                             
  • G1  5mm green led                           
  • G2  5mm red led                             
  • G3  5mm red led                            
  • JP1  .1″ x 5 pinheader, optional    
  • JP2  .1″ x 5 pinheader, optional       
  • PGM  .1″ x 5 programming header, optional       
  • R1  1K 0805   
  • R2  1K 0805    
  • R3  1K 0805   
  • R4 1K 0805      
  • R5 300 0805       
  • R6 117 0805     
  • R7 100 0805     
  • T1  2N3904  SOT-23 
  • T2  2N3904  SOT-23   
  • T3  2N3904  SOT-23  
  • U$1 78L05 SOT-89       
  • U1  PIC 16F688 SOIC-14                        
  • U2  MAX485/SN75176 SOIC-8          
Buy bare boards for $3 in the online store.
PDF file of half pixel schematic is here.