Archive for the 'LED Shield' Category


Schematic of the HP LED Shield

I had to almost re-draw the schematic. Now I looks prettier.

This one is slightly modified from the my first PCB to fix couple of mistake. I will publish the board design and eagle cad files later as well.



cyz_RGB firmware

cyz_RGB is a alternative open-source blinkm firmware. Convert attiny to 3 channel PWM i2c chip.  In case, anyone want to have most recent firmwares. Here you have.

Compile for atttiny 44 / 45 / 85.


High power LED arduino shield

I designed my first arduino shield. It took longer than I thought, but finally get it work.

I will put the schematic and board design once I clean up (the schematic is ugly right now)

  • Linear tech LT3496 – 3 Channels, 1 A, 40V LED driver

It is basically High power led driver based on LT3496 which can drive three independent channels up to 1A. Obviously having three channel is meant for RGB LED. LT3496 can drive about 10 LEDs for each channel (which is about 36V). It is designed for Buck mode, so it require higher input voltage than sum of LED forward voltage drop. Since most high power leds have 3.4-3.6V voltage drop,  it need 12V for 3 LEDs, 24V for 6 LEDs, and 36V for 10 LEDs. So theoretically it can drive 10 LEDs x 3 at 1 A.  But linear tech demo board specify total power should be lower than 45W, so 10 LEDs x 3 at 500mA or 3 LEDs x3 at 1A is more realistic figure.

  • LED Current adjustment – Analog Device AD5254 (I2C , 4 channel , 256 positions, non-volatile)

If I use one kind of LED, I can just use proper current sensing resistor for that. I rather use many different kind of LEDs that have different maximum current. It would be great to have dynamic current adjustment depending on LEDs. AD5254 enable to adjust maximum current for each channel from arduino. This can be used for bright adjustment along with PWM.

  • I2C – 3 channel PWM – attiny85

CyzRGB –  BlinkM alternative firmware :

Last feature of shield is i2c PWM instead of using arduino PWM pins. Since arduino has 6 PWM pins, I can stack the shield only two of them. By using i2c PWM, I can stack as many as I want. It is act as high power blinkM. Consequently the LED shield use only 2 i2c pin from arduino regardless of number of shield I use. There is open-source blinkM firmware that support most blinkM function and more. Also I can use all the resource that are created for blinkM.

  • Small high voltage input switching 5V power supply

Since arduino can take only up to 12V, it was necessary to separate 5V power supply. LM2841 can be used with 42V which is more than enough for LED driver. Also having separate power allow me to use shield separately from arduino.

A video showing blinkM sequencer with cyz_RGB firmware driving 10W RGB LED.

Just a few pictures.

Dealextreme 12V , 350ma RGB LED

Sparkfun RGB Lumiled ( 3.4V , 1A)

July 2017
« Feb