Hive unit - 25 individually dimmable LEDs, controlled with RS-485, using a custom high-speed data format or DMX

This web page documents a board with 25 LEDs, individually dimmable via RS-485
Board size: 3.00 x 3.00 two-layer

Project timeframe: Jan 2007
Client: Leo Villareal
Initial webpage creation: May 20 2007

Top view:

Bottom view:

(these pictures are of the prototype, production units have black soldermask for aesthetics)

The Hive installation is 192 of these individual units, controlled by four Leoplayers.  Each hive unit has 25 LEDs, dimming is done with two TI TLC5940 LED drivers, a PIC18F252 controls everything.  The dimming data input is 8-bit, which is transformed to 12-bit for the TI chip via a gamma-correction like lookup table.  Power input is 12V.  The DIP switches select the unit #, if it should run a built-in test pattern or not, and if the RS-485 should be terminated or not.

The hardware design, layout, and overseeing the manufacturing was done by Todd Polenberg with my consultation.  The overall installation design and firmware for this board (and updates to the Leoplayer) were done by myself.

The firmware is pretty simple, the usual pwm clock pulse counting and reload for the TI chip is required, but for simplicity and to support the high input data rate (625K baud, 900-byte frames) multiplexing was not used.  Instead of one TI chip + two pfets and driver logic (two nfets and 4 resistors) to mux we decided early on to just use two TI chips.  The additional cost was pennies and it significantly simplified both the software and hardware.  Note thru-hole LEDs and mostly SMT parts, all on the backside, hidden from the view of gallery visitors.

The data frame format is specific to this design.  Since the Leoplayer and Windows test software were created by me, it is easy to add new formats to suit specific designs and avoid the waste of time and money doing large-scale installations with off-the-shelf commercial products would require.

For testing, the firmware can be compiled to use DMX as the input format as well.  This allowed the client to get started with early prototypes as the firmware was finalized.