header
 
 

FOR THA NERDS!

Hi Nerds.

The Nodeblinky runs on a Atmel ATMega168 AVR 8-bit microcontroller. It feeds data into two ST STP16C596 constant-current LED sink drivers. It uses two timer interrupts for 28 channels of software PWM and a FPS timer. It implements frame blending as well.

Reprogramming your blinky is pretty easy if you have a AVR programmer. There is a 6-pin header for programming at the bottom of the PCB. The positive side is marked with a plus. Programming should be done from the back of the board.

The Eagle files are here: Schematic and Board.

The AVR-GCC code is here and a compiled hex file is here.. It is released under the GPL.

Here is the BOM:

AVR Mega168 ATMEGA168-20PU-ND
on/off switch 401-1138-nd
ST Driver Chip 497-3874-ND
10k resistor 10KQBK-ND
7805 5V reg 296-13996-5-ND
cap for 7805 493-1491-nd
20 mhz crystal X036-ND
caps for crystal BC1055CT-ND
.1uf cap for PIC BC1160CT-ND
9V batt holder BH9V-PC-ND
LED resistor 100KQBK-ND
switch SW411-ND

All part numbers are Digikey. We get our LEDs from HB LED.

If you are running Windows, you can create pattern data in Image Node Blinky Studio Pro 2008 (Enterprise Edition) -- this is the internal tool we used to make our patterns. You will want to make patterns, export the C code, drop it into Node08_final.c, and then change some of the if/else if statements in playpatterns() to make your patterns go.

ERRATA:

Yes, I forgot a decoupling cap on IC1. Sorry. It still works.

Sometimes if you hit the buttons too quickly the blinky freezes up between flashlight mode and normal mode. I mostly got that to go away but it still occasionally happens.

HACKS:

Increase R1 and R2 to 2.1K (FIXED, sorry) to decrease maximum LED output to 10mA -- this will half your brightness and get you more battery life. Also you can then reprogram the MAX_BRIGHTNESS levels in the code to give you more dynamic range.

You can run the blinky off of any 9-12V power supply by soldering the wires into the + and - terminals on the back of the board, located between the battery connector and the mounting hole. The 7805 might get a little hot if you are running at 12V but it's within its spec.

To get more battery life, you can replace the 7805 with a LDO regulator with the same pinout like the LM2940. You should tack-solder a .47uf ceramic cap between the input and ground if you do that, and replace the 100uf cap with a 22uf cap.

You can fill the LED slots with any LED you want, as long as it does not pull more than 20mA. Using high-wattage LEDs will thermally kick the ass of the ST chips. Replacing R1 and R2 with variable resistors (or using a stereo slide pot for both of them) will give you more linear fade control than the button on the front will. You'll probably have to hot glue the part onto the back of the board though.

Got a hack? Email me at twina at imagenode.org to let me know...