Show Posts
Pages: 1 2 [3] 4 5 6
31  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: January 13, 2012, 01:53:36 pm
Thanks for the post and pictures of the strip.  Very informative.  It is interesting that they are using 12V rather than 5V that the 8806 needs.  Looking at the resistors and layout, it appears that this strip will have limitations.

You can use the arduino for the CLK and DA pins and then use your 12V power source to power it.  The LPD8806 library should work with this strip. 

I think with this configuration, you will only be able to control colors every 3rd LED rather than every LED as with the strips on Adafruit.  The LEDs on each side of the 8806 appear to be in series with an additional resistor for each to drop voltage further.  The max power dissipation of the 8806 is 600mW so with 6 RGB LEDs, it would be able to supply a maximum of only 6.7mA to each leg of each LED.  This coincides with the 180 ohm resistors for the green and blue legs in the pics.  These resistors would limit current to around 6mA for each color.  This would mean it would not be as bright as the strip on Adafruit that can supply the full rated 20mA to each leg of each LED. 

But this is all based on looking at the photos and my limited knowledge of these things.  You won't really know until you hook it up and find out.  smiley  Please post a follow up on this.
32  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: January 07, 2012, 04:55:57 pm
For those interested in the strips I found to be cheaper, it is here:
http://www.alibaba.com/product-gs/505148128/LPD8806_digital_RGB_colorful_led_strip.html

The description states 12v but after inquiring about this, I found out these are actually a 5v model.  The group several types together with different ICs (specifically 6803, 8806, & 2801).

The quote I was provided for 10 meters shipped was $145.  I did not buy from them because they wanted a wire transfer or western union.  I did not trust this.

If anyone does decide to go this route, please post pictures and user experience. smiley

I would be extremely interested in continuing to hear about your experience on this purchase.  If you do receive it, please post some pictures of the strip showing the IC's and LED configuation.  If it is using a 5V power supply the LPD8806 library should work well with it.

Funnily enough, this is the exact same thing that I found a few days ago and have ordered from this supplier, before seeing this thread (I am currently trying to work out how a different strip works in another thread, without much joy). I've already paid them via Western Union, total of $75 for 5 metres and DHL shipping. They claim to be having trouble with my address - which is entirely plausible given my location, but we shall see. I am expecting to hear back from them next week, should have the strip within two weeks. The 8 hour time difference is a bit of a problem when it comes to resolving issues.
33  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: December 30, 2011, 05:44:57 pm
Simon,

Great informative post.  I can tell you have had a lot of experience and frustration in this area.  That is unfortunate.  But I do like your idea of an LED sourcing site.  Perhaps now, in the advent of LED lights being more and more accepted in households and the efficiency of LED's starting to really make them worthwhile as replacements for traditional and CFL lights, it would be more successful.  And you could have a forum to share your thoughts and experiences to educate the rest of us. smiley

I currently have 200 of the 8806 and 1400 5050 RGB leds.   I haven't been able to start building with them yet but will very soon.  If the 8806s work out well, I'll buy more since they only cost about $0.50 ea.  If not, there are other alternatives to look at.  I just want something that will be much more cost effective and have more flexibility (figuratively) than the $35/m RGB LED flexible strips.  In materials (not including the PCB), it will cost me < $11/m for the same thing.  I just won't have the flexibility (literally).
34  Using Arduino / LEDs and Multiplexing / Re: LPD6803 LED Strip Help? on: December 19, 2011, 03:40:27 am
Wish I could help with that but I haven't used that library and am not familiar with it.  The library I used for my strip was here: https://github.com/adafruit/LPD8806

The strip I had on hand is now in production on a wheelchair so I can't test out that library with mine.
35  Using Arduino / LEDs and Multiplexing / Re: LPD6803 LED Strip Help? on: December 16, 2011, 03:34:19 am
The button is just a push switch that will bring pin 8 high in my case.  One side goes to +5, the other goes to pin 8 and also has a 10k resistor pulling it to ground.

The microphone is merely a sound sensor.  I picked up a couple off of eBay. 
http://www.ebay.com/itm/180625274609?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=160675056186

It has a +5 wire, ground wire, and sound level wire that I put on one of the analog inputs.  I had also set up two pots on inputs to adjust a color shift and to adjust the baseline level of what was sensed.  One mode changes the colors on the strip based on sound level and the other mode is more like a sound level meter.
36  Using Arduino / LEDs and Multiplexing / Re: LPD6803 LED Strip Help? on: December 15, 2011, 06:06:07 am
Here are a few functions for ya that I wrote for a LPD8806 project....but you will need to remove references to digitalRead(button) and butPush as these are used to detect a button press and change modes.
Code:
void music(int all){
  micLevel = ((analogRead(A0)+analogRead(A2)))%1024; //read the pot value and add it to the microphone value to allow color shifting
  if (digitalRead(button)) butPush = 1;   //Was the button pushed to change modes?
  //colorLevel = (micLevel%768)/2;
  colorLevel = micLevel%384; //adjust colorLevel with the color wheel spectrum
  numLeds = map(micLevel,200,600,0,stripSize); //Adjust adjust the most use of LEDs
  
  if (all) numLeds = stripSize;
  for (int i = 0; i < numLeds; i++){
    strip.setPixelColor(i, Wheel((i+colorLevel)%384));
  }  
  delay(map(analogRead(A1),0,1024,0,250));
  strip.show();
    for (int i=0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, 0);  // turn all pixels off
    }
  if (digitalRead(button)) butPush = 1;   //Was the button pushed to change modes?

}
Code:
void xmas(int dly){
  int color=0;
  while (butPush==0){
    for (int i=0; i<stripSize; i++){
      if (digitalRead(button)==1) {butPush=1; i=stripSize;}
      if (color==4){
        strip.setPixelColor(i,127,127,127); //white
      }
      else if (color==3){
        strip.setPixelColor(i,127,90,0); //yellow
      }
      else if (color==2){
        strip.setPixelColor(i,0,0,127); //blue
      }
      else if (color==1){
        strip.setPixelColor(i,0,127,0); //green
      }
      else {
        strip.setPixelColor(i,127,0,0); //red
      }
      if (color++==4) color=0;
    }
    if (butPush==0){
      strip.show();
      delay(dly);
    }
  }
}
Code:
void rand2(int dly){
  //turn on lights one at a time with the same random color
  //ensure that a light is turned on each cycle
  //then turn off the lights 2 at a time
  int lights[stripSize];
  for (int i=0; i<stripSize; i++) lights[i]=0;
  while (digitalRead(button)==0){
    int red = random()%128;
    int green = random()%128;
    int blue = random()%128;
    for (int i = 0; i < stripSize; i++){
      int turnon=0;
      while (turnon==0){
        if (digitalRead(button)==1) {i=stripSize; butPush=1;}
        int x = random()%stripSize;
        if (lights[x]==0){
          turnon=1;
          lights[x]=1;
          strip.setPixelColor(x,red,green,blue);
          strip.show();
        }
      }
    if (butPush==0) delay(dly);
    }
  if (butPush==0)   delay(2000);
    for (int i = 0; i < stripSize; i++){
      int turnoff=1;
      while (turnoff==1){
        if (digitalRead(button)==1) {i=stripSize; butPush=1;}
        int x = random()%stripSize;
        if (lights[x]==1){
          turnoff=0;
          lights[x]=0;
          strip.setPixelColor(x,0,0,0);
          strip.show();
        }
      }
    if (butPush==0) delay(dly);
    }
  }
}
Code:
void circlinglights(int dly){
  int b=0;
  int r=63;
  while (digitalRead(button)==0){
    strip.setPixelColor(b,0,0,2);
    strip.setPixelColor((b+1)%stripSize,0,0,9);
    strip.setPixelColor((b+2)%stripSize,0,0,16);
    strip.setPixelColor((b+3)%stripSize,0,0,40);
    strip.setPixelColor((b+4)%stripSize,0,0,55);
    strip.setPixelColor((b+5)%stripSize,0,0,80);
    strip.setPixelColor((b+6)%stripSize,0,0,127);
    strip.setPixelColor(r,2,0,0);
    strip.setPixelColor((r+stripSize-1)%stripSize,9,0,0);
    strip.setPixelColor((r+stripSize-2)%stripSize,16,0,0);
    strip.setPixelColor((r+stripSize-3)%stripSize,40,0,0);
    strip.setPixelColor((r+stripSize-4)%stripSize,55,0,0);
    strip.setPixelColor((r+stripSize-5)%stripSize,80,0,0);
    strip.setPixelColor((r+stripSize-6)%stripSize,127,0,0);
    strip.show();
    delay(dly);
    strip.setPixelColor(b,0);
    strip.setPixelColor(r,0);
    strip.show();
    if (b++==stripSize) b=0;
    if (r--==0) r=stripSize-1;
  }
  butPush = 1;
}
37  Using Arduino / LEDs and Multiplexing / Re: Number of TLC's on: December 15, 2011, 06:00:01 am
I've been running 6 TLC5940's for a couple months now with no issues to control 30 RGB LEDs on my stairs.  As Grumpy Mike stated, decoupling capacitors are needed.  I had issues early on but once I put in a few caps on the power rails, it stabilized it.
38  Using Arduino / Project Guidance / Re: 40ft balcony with addressable LED's on: December 15, 2011, 05:24:32 am
The Digital Addressable RGB LED w/ PWM waterproof flexi strip from Adafruit works great.  I've bought a couple of meters of this for use in lighting a wheelchair. (http://forums.adafruit.com/viewtopic.php?f=47&t=24671).  These strips use the LPD8806 IC's and are PWM controlled for every LED and are waterproof.  The downside is that they are costly.  You are also limited to 5M per run so doing 40 feet will require 3 strips and multiple power supplies.  To power these strips properly, you will also need to tap in at several spots on each strip.  This will help achieve maximum brightness.  See this post for more information on this: http://forums.adafruit.com/viewtopic.php?f=47&t=24275&start=0

The strips that use the HL1606 IC are much cheaper but are not able to display 7-bit color like the ones using the LPD8806 IC.  They only turn on and off for each color on each LED.  But if this is all you need, you'll save lots!

The strips that use the WS2801 IC are also able to provide PWM color control.  These are also expensive and there is one IC for each RGB LED.  The LPD8806 IC can control 2 RGB LEDs.

To make it wireless, you can either put it on a wireless 802.11b/g network using a shield like this (http://www.sparkfun.com/products/9954) or you can add an Xbee radio to it and your computer to control and program it.  Neither of these appear to support the Ethernet library though so control will be limited but you could have a computer act as a web server and send the limited commands to the arduino from the computer that is connected to it.  If you are able to wire it to your network using an Ethernet shield, you will then be able to have the arduino on the network and run as a mini web server.

I've been dabbling with home automation myself and have been using Insteon devices.  With the Insteon automation, I'm able to have track lights in various rooms come on at dusk and go off at midnight at a pre-determined brightness.  I can also control any device from my computer or iPhone using a web server module they have.  At some point I hope someone comes out with a way to interface an arduino appliance to the Insteon network but if not, I may have a go at hacking it. 
39  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: December 08, 2011, 02:04:29 pm
For those interested in the strips I found to be cheaper, it is here:
http://www.alibaba.com/product-gs/505148128/LPD8806_digital_RGB_colorful_led_strip.html

The description states 12v but after inquiring about this, I found out these are actually a 5v model.  The group several types together with different ICs (specifically 6803, 8806, & 2801).

The quote I was provided for 10 meters shipped was $145.  I did not buy from them because they wanted a wire transfer or western union.  I did not trust this.

If anyone does decide to go this route, please post pictures and user experience. smiley
40  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: December 07, 2011, 05:46:42 pm
I just looked at the spec sheet for the DM163 and am ruling them out.  There are 7 wires required to be run between each IC rather than just 2 (SIN, DCK, LAT_B, GCK, SELBK, EN_B, RST_B).  This would complicate things too much and then I'm in the territory of using TLC5940's like I did on my stairs project.
41  Using Arduino / LEDs and Multiplexing / Re: 12v LPD8806 Strip? on: December 07, 2011, 05:23:23 pm
I've seen the same thing advertised from a Chinese supplier.  I inquired on more details about this and from what I received, it appears that that particular LPD8806 strip would be provided with a 5V power supply rather than a 12V power supply.  Their documentation and advertised specs are for multiple types of strips that can do the same type of thing. 

The only reason I did not order from them though is trust.  They did not accept payment using a credit card or PayPal.  They wanted me to wire them the money.  And even though they are a gold supplier on Alibaba for 2 years, I don't have enough trust that the product would be delivered.  And by paying using a wire transfer, I would have no recourse.

If this is the same supplier I saw and you decide to try them out, let me know how the transaction goes.  I was going to purchase 10 meters at a cost of ~$140 including shipping.
42  Using Arduino / LEDs and Multiplexing / Re: LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: December 07, 2011, 05:10:15 pm
Thanks for the insight with your knowledge of the subject.  You are right, these strips are not readily available for purchase.  I did find a source that sells the strips for about half (including shipping) of the cost to be found here in the states.   I have found a source in China where I bought a couple hundred of the ICs for just under a quarter each though.  This will get me going into making my own.  Since there is already a library for the Arduino for controlling the strip, the timing is not an issue. 

I agree that the quality is not top notch and certainly not what one should expect for the current pricing of around $35/meter but making my own PCBs for this lighting will allow me to better balance quality with cost.  The downside is that it will not be a flexible strip. 

Another LED driver IC I've looked at and purchased a few of is the DMX163.  It is the IC used for the colorduino and is more flexible than the LPD8806.  It will control up to 8 LEDs with constant current set with 3 resistors (one for each color) and can sink 60mA for each.  It has PWM control, 2 banks for grayscale data (6 bit and 8 bit) and can run at a frequency of up to 20MHz.  The downsides are, like the LPD8806, it is not readily available.  It also costs about $4.50 ea in low quantity.

Overall, I'm not looking to do many thousands of these.  I have 1400 5050 RGB LEDs and intend to use them in some fashion for myself and some friends.  I also have 200 LPD8806's and 4 DMX163's.  I will now have to order a sample of WS2801 ICs to compare to as well, I guess.  smiley
43  Using Arduino / LEDs and Multiplexing / 2 meters of LPD8806 strip on a Wheelchair Project - VIDEO on: December 06, 2011, 05:10:00 pm
My friend, Corey, wanted to upgrade the 4 white leds he used to see tight corners at night navigating in the house and to illuminate his chair a little if he were wheeling down a street after dark for safety reasons.

I thought a couple meters of Digital Addressable RGB LED Strips around his chair would be a good solution. These gave me the ability to provide him some good safety lighting at night as well as some fun lights everywhere else.

This is an Arduino based controller running on an atMega328 microprocessor on a home etched PCB. Power is provided off one of his chair's batteries and regulated down to 5V through a beefy 50W 10A capable regulator. Under the right armrest, there is a small box that contains the On/Off switch as well as a button to change lighting modes of the strip. The strip is hot glued on some aluminum angle we mounted on the back an under the seat of the chair. The angle was anodized to make it more reflective and does very well.

I currently have 17 lighting sequences programmed with 15 being active. Initial prototypes utilized a sound level monitor but he decided he didn't want that so it was disabled. On the PCB, I added the possibility of a couple of future upgrades including a couple 1W leds, another button, and a potentiometer.

He can now see and be seen much better!


44  Using Arduino / LEDs and Multiplexing / LPD8806 RGB LED Strip - Reverse Engineer (with pics) questions/feedback on: November 22, 2011, 01:29:47 am
I bought 2m of the Digital Addressable RGB LED w/ PWM waterproof flexi strip from adafruit.  


I plan on building my own strips on PCB rather than being flexible.  There will be around 36 LED's or more on PCB arranged in a square grid.  These can be connected to other squares or can be cut into strips and connected that way.  Feedback on this idea would be appreciated.  I already have some LPD8806 IC's and 5050 RGB SMD LED's.  Now I need to order the resistors but am a bit stumped...

There is a description and schematic on this link: http://www.adafruit.com/products/306

The schematic looks like:


The problem I'm having is that the resistors on the strip are all 1.5ohm rather than what the schematic shows and what I expected to see.  This means that the LPD8806 is current limiting rather than dropping the voltage as with the older HL1606 strips, correct?  If this is the case, it makes the chips a bit better than I thought.

There is also a capacitor with each IC so I removed one to measure the capacitance of it.  Unfortunately, I broke it during removal.  I was still able to measure it at 100pF and luckily, had a larger 1206 100pF SMD on hand to replace the smaller 0805 100pF SMD.  Not that I think it would have mattered at the end of the strip whether it was there or not.

Now for some pics I took with my ViTiny USB microscope.....

Broken capacitor next to a 0805 sized resistor:


Resistors for the Red and Green on the 5050 RGB LED:


My replaced 1206 size capacitor (not the best solder job but it will do):


Closeup of the 5050 RGB LED:


Center gold wire on the 5050 RGB LED:


Side gold wires on the 5050 RGB LED (there is one on the left and right side like this):
45  Using Arduino / LEDs and Multiplexing / Re: TLC5940 Overheating (Daisy Chain) ( Electronic Beer Pong Table) on: November 05, 2011, 04:23:41 pm
Yes, Page 15 --
Setting Dot Correction:
I_out = I_maxA * (DCn / 63)
If DCn/63 = 0, then I_out = 0.

I stand corrected.  You are right on this point. smiley
Pages: 1 2 [3] 4 5 6