Cracked the Code

After a couple hours work this afternoon, I can now communicate with the new discretely-controllable Asian RGB nodes (described below).

In a couple days the DMX and Art-Net interfaces should also be online.

Onward!

And Now For Something Different…

And now for something completely different…
About a month ago, I was contacted by an East Coast lighting designer who wanted to use 7,000 Tripix as part of an outdoor installation.  The show would run for about six weeks.  The nodes needed to be very bright, very durable, and also waterproof.
He’d checked with several commercial vendors and received quotes ranging from $45,000 – $110,000 for the nodes, controllers & cabling.
Too rich for his budget.
So, I mailed out a short string of Tripix for him to evaluate.  After much testing, he determined that 2 Tripix, mounted back to back (if you’re counting, that’s 6 SMD RGB LEDs) would be bright enough for his purposes.
However, the RJ45 connectors were very expensive.  After much discussion, we decided to totally re-work the design.  We settled on two variants: one based on a six wire, ‘shift register’ PWM processor and a second based on a three wire ‘power ground data’ (similar to DMX) controller.
We researched potting compounds, waterproof dips, UV-cured clear resins ($) and more.  I’d finished the circuit board layouts and was about to send off for prototype boards.
Then, late one night I was browsing the Internet and discovered a Source in Asia who specializes in this sort of thing.
Their net-to-me, out-the-door pricing for waterproof nodes – pre-wired to our specifications – was phenomenally good.
So I immediately ordered a whole box of goodies as samples.
They arrived this morning.
Let’s start with the ‘dumb’ bits:
These little bars measure about .75″ x 4″.  They come in strings of nearly any length and board spacing.  Each bar contains R, G & B emitters, evenly spaced in groups of three.  Each string of bars can be controlled together via PWM / constant current / whatever to generate any needed color.
These round assemblies are similar to the bars, but they only contain a single emitter of each color.  They too can be daisy chained together.  The entire chain can be controlled simultaneously.
These point source dots are even more fun.  They contain an 8mm RGB LED inside an injection molded, waterproof (!) plastic blob.  My sample string contained 50 emitters on 10 cm spacing.  Again, the entire chain can be set to any color.
Here’s where it gets more interesting…  This next handful of goodies can be controlled discretely.  So any node can be set to any color, regardless of what the neighboring node may be doing.
These bars are identical to the first ones, except that they have an in-built PWM controller.  They’re chained together on a four-wire bus (power, ground, clock and data).  I grabbed 10 with discrete LEDs and 10 with all-in-one SMD RGB emitters.
These point source dots are awesome.  Again, I got a string of 50 on 10 cm spacing.
Then, I grabbed a handful of ‘cubes.’  These are waterproof, discretely controlled and daisy-chainable.  Size is ~ 2″ per side. Nice.
The wrinkle…
The datasheet for the controller chip the factory used is written in Chinese.  There appears to be no English version anywhere on the entire Internet.  The factory won’t release any further details, so I’ve got to spend a few days reverse-engineering the control protocol.
But…
When the dust settles, we’ll have a nifty DMX bridge and a nifty Art-Net interface for driving the ‘smart’ nodes.
Plus I’ll probably throw together a quick driver – based on the classic RGB pixel design, probably – which can drive one or two strings of the ‘dumb’ nodes.
Exciting, no?
Here’s two quick video clips of an RGB string.  It’s grainy & overexposed, but works for previewing.  I also purchased a small stand-alone controller from the factory.  It reads show files stored on an SD card, then loops them indefinitely.  The factory sent me a demo file with a single demo show loaded.  It runs for about 30 seconds, it seems.
The effects are a bit frantic, but the overall look is nice.
Next week we’ll be able to speak with these over regular DMX.

About a month ago, I was contacted by a lighting designer who wanted to use 7,000 Tripix as part of an outdoor installation.  The show would run for about six weeks.  The nodes needed to be very bright, very durable, and also waterproof.

He’d checked with several commercial vendors and received quotes as high as $110,000 for the nodes, controllers & cabling.

Wowzers. Plus, he needed something viewable (and evenly lit) over 360 degrees, and there didn’t appear to be an existing product on the market with that feature.

So, I mailed out a short string of Tripix for him to evaluate.  After much testing, he determined that 2 Tripix, mounted back to back (if you’re counting, that’s 6 SMD RGB LEDs) would be bright enough for his purposes.

However, the RJ45 connectors were very expensive.  And we weren’t sure how reliable that junction would be if asked to bear weight.  The strings of 25-50 nodes were meant to hang vertically.

After much discussion, we decided to totally re-work the design.  We settled on two variants: one based on a six wire, ‘shift register’ PWM processor and a second based on a three wire ‘power ground data’ (similar to DMX) controller.

We researched potting compounds, waterproof dips, UV-cured clear resins (awesome, but $$) and more.  I’d finished the circuit board layouts and was about to send off for prototype boards.

Then, late one night I discovered a Source in Asia who specializes in this sort of thing.

Their net-to-me, out-the-door pricing for waterproof nodes – pre-wired and built to our specifications – was phenomenally good.

So I immediately ordered a whole box of goodies as samples.

They arrived this morning.

Let’s start with the ‘dumb’ bits:

Chain of Dumb RGB Strips

These little bars measure about .75″ x 4″.  They come in strings of nearly any length and board spacing.  Each bar contains R, G & B emitters, evenly spaced in groups of three.  Each string of bars can be controlled together via PWM / constant current / whatever to generate any needed color.

Dumb Circular RGB Node - 1"

These round assemblies are similar to the bars, but they only contain a single emitter of each color.  They too can be daisy chained together.  The entire chain can be controlled simultaneously.

Dumb Waterproof RGB Chain

These point source dots are even more fun.  They contain an 8mm RGB LED inside an injection molded, waterproof (!) plastic blob.  My sample string contained 50 emitters on 10 cm spacing.  Again, the entire chain can be set to any color.

Here’s where it gets more interesting…  This next handful of goodies have a built-in brain and can be controlled discretely.  Any node can be set to any color, regardless of what the neighboring node may be doing.

Smart SMD RGB NodeSmart Discrete 9 LED Node

These bars are identical to the first (dumb) ones, except that they have an in-built PWM controller.  They’re chained together on a four-wire bus (power, ground, clock and data).  I grabbed 10 with discrete LEDs and 10 with all-in-one SMD RGB emitters.

Rear View - Smart Waterproof 12mm RGB NodeSmart 12mm Waterproof RGB Chain

These point source dots are awesome.  Again, I got a string of 50 on 10 cm spacing.  They are very, very similar in intensity and function to my Point Source design from last year.  Except that all the environmental problems of wiring harnesses, waterproofing, etc, seem to have been completely solved.

Smart 2" RGB Cube

Then, I grabbed a handful of ‘cubes.’  These are waterproof, discretely controlled and daisy-chainable.  Size is ~ 2″ per side.  Mounting holes under the black bezel for making a wall-sized grid.  Nice.

The built-in driver chip has 5 bit resolution for each color.  32 levels * 32 levels * 32 levels = ~ 32K different shades of color available.  Maybe not enough for HD video, but certainly adequate for the task at hand.

Here’s the wrinkle…

The datasheet for the PWM controller is written in Chinese.  There appears to be no English version anywhere on the entire Internet.  The factory won’t release any further details, so I’ve got to spend a few days reverse-engineering the control protocol.

But…

When the dust settles, we’ll have a nifty DMX bridge and a nifty Art-Net interface for driving the ‘smart’ nodes.  Probably in about two weeks.

Plus I’ll probably throw together a quick driver – based on the classic RGB pixel design, probably – which can drive one or two strings of the ‘dumb’ nodes.

Exciting, no?

Here’s two quick video clips of the RGB string.  They’re grainy & overexposed, but sufficient for previewing.  I also purchased a small stand-alone controller from the factory.  It reads show files stored on an SD card, then loops them indefinitely.  The factory sent me a demo file with a single demo show loaded.  It runs for about 30 seconds, it seems.

The effects are a bit frantic, but the overall look is nice.

Next week we’ll be able to speak with these over regular DMX.

Second Look – RGB String from Engineering Solutions Inc on Vimeo.

Test – RGB Waterproof LED Strings from Engineering Solutions Inc on Vimeo.

Driving Tripix

Co-developer has been working on the code needed for driving a string of TriPix.  Now that we’ve got Art-Net receive code and TriPix transmit code, all that’s left is to merge the two together.  Should have something stable by the end of the week.

The chip which handles the low-level ethernet routines is tiny.  It’s the size of a regular 44-TQFP package, but there’s 80 pins instead.  The pins sit on a fine, fine pitch – and I’m glad the robots at the assembly shop will be handling that part of the job.  Wouldn’t want to try soldering it by hand.  

On a side note, we currently use two shops for assembly.  One is in Asia.  They do fantastic work on high volume projects and the prices can’t be beat.  Usually takes 20-30 days to turn an assembly project around.  The other shop is here in town – about 15 minutes away.  Though their assembly costs are typically higher, it’s great to have partners who work in the same time zone, speak the same language, and can work really, really quickly.  They’ll regularly assembly our orders of 10-20 circuit boards – some fairly complex – in just 2 or 3 days.

It looks like the controller will be able to parse 2 consecutive universes of data (1024 channels), which roughly equates to 340 RGB nodes.

Demo video of  a handful of Tripix being driven:

Art-Net #3

Good news is that we’re now successfully receiving & parsing Art-Net packets.  Bad news is the code barfs with more than one universe at full speed (512 channels at 44 Hz) on the wire.

 Next task is to optimize some buffers and convert critical parts of the human-readable code into super-efficient machine language.  Hopefully this will dramatically increase the system throughput.

Estimates at this time is that our single controller will be able to support 5-6 universes of DMX over Art-Net at full speed.  Anyone need a crazy inexpensive Art-Net to DMX bridge?

Good times. More soon.

Art-Net!

The Future

A challenge with point source pixels, classic pixels, Tripix and RGB emitters in general is that they require stacks and stacks of data to run properly and smoothly.  Unfortunately, a regular DMX universe contains 512 channels, which is only enough to drive 170 3-color pixels at 8 bits per color.

Last year, my personal rig required the better part of two universes.

This year, folks are running displays based our pixels and sized between 1K and 7K discretely controlled RGB emitters.  On the high end, that’s nearly 20,000 bytes of data for each ‘frame’ of a display scene.  Step that up to video playback speed (30 fps) and the datarate approaches 6 megabits per second, sustained.

Driving a rig that size with regular DMX gear costs a small fortune in cable and connectors alone.  And one of the biggest, baddest $40K lighting consoles in town, the GrandMA, tops out at about 16,000 channels.   

Enter Art-Net.

For the uninitiated, Art-Net is a totally open, freely-published, ethernet-based transport protocol for lighting control data.  It’s based on UDP packets and traverses regular (inexpensive!) ethernet switches and hubs with ease.  It can zip through the air over a wireless internet connection. Even the iPhone / iPod Touch can generate Art-Net packets.  Best of all, the potential bandwidth is massive.  

From the official spec:

A theoretical limit of 255 universes of DMX512 exists in this specification. However a simplistic data rate comparison (DMX runs at 250KBaud, 10BaseT at 10MBaud) suggests a maximum of 40 universes of DMX is the limit. Art-Net uses a simple delta transmission compression technique that will provide about 40 universes. If an installation of more than say 30 universes is contemplated, then it is necessary to use the unicast features of Art-Net II and 100BaseT or better physical layer. If this is done the number of universes limit becomes purely related to the network bandwidth.

Click here for a PDF copy of the Art-Net spec.

But how do you get data out of an ethernet cable and in to your lighting rig?  You need an ‘Art-Net to DMX Bridge.’  They typically contain an ethernet jack and between 1-8 XLR connectors (one per universe).  Lots of companies make them.  Though prices have come down a bit as the technology has matured, current pricing seems to be $200 – $250 per universe of DMX output.

For that reason, we’ve decided to design an Art-Net node that’s directly integrated with the existing Tripix controller.  We’ll bypass the discrete equipment (and cable, and connectors, and cost, and hassle) required for Art-Net–>DMX and DMX–>Tripix and drive the pixels directly.

It’s likely that the node will receive 2 universes (1024 channels) of data.  Thus, it will be trivially easy to drive ~ 340 RGB pixels from a single controller.

Even more attractive is that the network interface will only add about $16 to the parts list of the base controller.

Plus development time.

More soon!

Tripix – Controller Update

Tripix Controller

 Finally!  Some updates.

Above is the board layout for the Tripix controller.  Several copies of the design are being fabricated right now.  Included on the board are

  • High-voltage ‘buck’ type power supply (accepts AC or DC input, up to 15-50 V)
  • DIP switch for setting the system’s start address 
  • Terminals for DMX in & through, isolated DMX receive section
  • RJ45 jacks for driving strings and injecting power
  • USB jack for in-the-field firmware updates and (possible) string control 

Hope to have video clips of 16-20 pixels running various demo patterns later this weekend.

Micro Pixels – First Test

2009 RGB Micro Pixel
2009 RGB Micro Pixel

Two days ago the FedEx fairy delivered our first factory-assembled batch of Micro Pixels.

I unwrapped a handful, snapped a couple pictures, then plugged them in on the workbench.

Nothing happened.

Double checked the board layout against my schematic and the controller’s datasheet. The trusty ‘scope showed that all the signals were in their proper places.  And the control program was the same one I’d used when testing the rough system prototype a few weeks back.

Bizarre.  Potentially very expensive.

After another hour of testing, I discovered that the sample LEDs from the factory were different than the production LEDs.  Each had six pins and looked identical to the eyeball.  But a diode tester revealed that the polarity of all three LEDs was reversed 180 degrees.

+ + +
- - -

vs

- - -
+ + +

Turns out the LED factory had switched things around but not updated the datasheet on their website.

Oops.

Good that this was a test run of 100 pieces, instead of production assembly in multiples of 1500.

I used hot air to remove the three LEDs, then spun them around and re-attached.

At full power, these chips are exceptionally bright. They leave ghostly spots on my eyeballs.

Before running out of time that afternoon, I reworked three of the boards and chained them together.  Everything operated flawlessly.

I love the simplicity of this new design.

P.S.  We’ve had a suggestion for a new name for these guys:

Tripix

3 LEDs, 3 Colors, price approaches the $3 range in large quantities.

What do you think?

(Note: There’s some additional discussion on the controller design in the ‘comments’ section below.  So click there to learn more.)

“Micro Pixels” – Grainy Photos of the 2009 Project

Just before shipping the order to me, the factory took a couple of ugly pictures of the new circuit boards.

It looks like the shipment of 100 boards will arrive later this week, barring problems in customs or a volcano eruption in the parcel’s flight path.

Visible are 2 x RJ45 jacks for easy daisy chaining (I found a supplier who will sell 6″ cat5 jumper cables for $0.48 each in small quantities).  The rear of the board contains 3 x wide-angle RGB LEDs wired in series.

Note the the component count of this design is significantly lower than anything we’ve done in the past.

For lack of a better name, this design has been yclept “The Micro Pixel.”

If you missed the introduction to the 2009 project, you can find it here:

http://response-box.com/rgb/2009/06/2009-rgb-pixel-project/

More soon.

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.

Introduction

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.