This project will help you create a halo of wild LED color whenever you go out I've been wearing one of these for two years at conferences, schools, burning man.. and Makerfaire and I always have happy people coming up to take a look. People will smile when you're wearing yours !   They smiled when I wore it here

The construction is simple providing you have the secret ingredient which is a length of RGB lighting strip based on the HL1606 LED controller from Wuxi Asic's Corp in China. I got mine while on a business trip in Shanghai. These light strips are becoming popular for signage and architectural lighting around the world. I have attached a picture of the 5 Meter strand I bought along with it's controller box. While they aren't common in this country (yet), there are several suppliers in the orient who will ship you some of this magic stuff. Check out these suppliers. Supplier 1 , supplier 2. There will be many more soon, no doubt ! (Note: watch this space.. I think I may be buying some of these stripes from China soon. I'd be happy to get some for folks if there's interest)

These light strips consist of a flexible copper tape with very (!) bright surface mount RGB LED's spaced at every inch. Each pair of LED's is controlled by an HL 1606. The strips are sold in many lengths each composed of shorter lengths which contain 20 LED's with 10 driver chips. My headband is made of one of those 20 LED segments.

The real trick to making this work was reverse engineering the HL 1606. This chip is a mystery.. with no English language documentation, and only very marginal documentation in Chinese.Using a scope, a demo driver I purchased, and rough translation of the documentation I was able to reverse engineer the signaling required to drive the strips.

The input signaling uses a Serial Peripheral Interface (SPI ) bus which uses one data pin (D_I) .. and a clock pin (C_I) to shift in the control bits to load the color info to the strip. A Latch signal (L_I) is used to latch the data for one HL 1606 and pass it's old data to the chip on it's right. There is also a pulse width modulation (PWM) control pin (S_I) which controls color brightness and fades. Note this project does not use these fade features due to code size restrictions.. but they are very cool to explore.

Once I figured it out, it was pretty straightforward to program a micro controller to drive the strips. I used a PICAXE 08-M . I chose the PICAXE because a) I had them laying around :-) and b) they require very few external components to use.
The PICAXE 08M is a Microchip PIC12F683 which comes preloaded with a simple tokenized basic interpreter The PICAXE family as a nice, easy to use integrated development environment which is available free of charge for download here.

All that was left was to write the code, download it to the PICAXE, and solder it together. Happy Building !!!

Step 1: Cut the light strip to length

The strips are sold in many lengths each composed of shorter lengths which contain 20 LED's with 10 driver chips. My headband is made of one of those 20 LED segments.

To cut your own headband, find one of the soldered connections attaching the fist set of 20 LEDS to the next section. Carefully cut at the soldered connection with sharp scisors. Use a fine tip, low heat soldering iron to clean off and re-tin the solder connections to the strip segment you just cut.
Hey! I just found them selling the strips at Adafruit, along with providing some shanzy &nbsp;example code and tutorials. Here's a <a href="http://www.adafruit.com/products/306" rel="nofollow">link</a>&nbsp;to the product page.
Has anyone been able to write another subroutine for this on Picaxe? Perhaps something that strobes in different colors or a 'Night Ryder' effect? <br> <br>MY finished project. THANKS AGAIN JOHN! <br> <br>https://www.youtube.com/watch?feature=player_embedded&amp;v=QoWAe6N0u54
Professor Futon.. nice work !.. I haven't written pattens on this for a while. .I'm now using an atmel chip and different code. I'd be happy to walk you through how to do a night rider thing, though. <br>-jc
That would be great! I dove through the coding trying to dissect everything, but I'm not too familiar with how the outputs of the Picaxe drive the LEDS especially when in sequence. I appreciate your willingness to help someone with your old project! Thanks again!
OK... can you send me your latest code ? <br>-jc<br>
FAR OUT!!!! <br> <br>And i want one!!!!
English language version of the HL 1606 documentation is available free from LED Lighting specialist at eyecatchu@yahoo.com.au
Hey THanks !.. I'm mostly using LPD8806 now !
You sooooooo look like David Lee Roth in this picture. <br>Very Cool!
I found a less expensive source: Blueview.cn Email dianawu@blueviewled.com Approx $17.50/meter for 32-LED version, $14.50 for 24-LED; minimum 10 meters, and these are silicone covered and a lot less fragile than other strips I've worked with. We could put together a group buy for those interested. I'm aware of the Arduino library; does anyone have a summary of the HL1606 command set so we can do SPI control with, say, a PIC? Also, I may be able to get a Chinese HL1606 datasheet translated better than Google does. Where can that be found?
32-LED /m dream color led strip, really excellent, we can provide this model also.<br>I have made a video on our led flexible strip light, you are welcome to check the bellow links:<br>http://www.youtube.com/watch?v=93yxkXm8sLs<br>If you want to get some further information, please contact me by trustrobin@gmail.com<br>I am Robin from Shenzhen China, we are ShenZhen HuiHongXing Optoelectronic CO.,LTD <br>
What is your price per meter ? <br>-jc
Is this the one you got? <a rel="nofollow" href="http://en.blueview.cn/product_show.asp?cid=207&id=225">http://en.blueview.cn/product_show.asp?cid=207&amp;id=225</a><br/><br/>On the EBay seller there are so many options. Is this same thing in a 1 meter version? <a rel="nofollow" href="http://cgi.ebay.com/5050-RGB-FLASH-SMD-LED-Strip-Multicolor-Light-100CM-12V_W0QQitemZ250458781519QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item3a5081b74f&amp;_trksid=p4634.c0.m14.l1262&amp;_trkparms=%7C293%3A1%7C294%3A30">http://cgi.ebay.com/5050-RGB-FLASH-SMD-LED-Strip-Multicolor-Light-100CM-12V_W0QQitemZ250458781519QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item3a5081b74f&amp;_trksid=p4634.c0.m14.l1262&amp;_trkparms=%7C293%3A1%7C294%3A30</a><br/>
Your first link is what I bought. Diana at BlueView was a pleasure to work with and they ship to the US in 3-4 days. The shipping costs are a bit high if you're just going to order 1m. But let me know if you need a few meters and I can get you some.
The blueview link looks like the one I have. The eBay one is 12v, no serial control -- all LEDs in the strip will be the same color.
&nbsp;omg the coolest guy from the colony!
Sweet! He is!
Any new leads as to sources for the LED strips?<br>Thanks for this neat project...
Is that a ThinkPad X41 Tablet Pc?<br>I have the same..!!!
This is amazing and these LED strips are EXACTLY what I need for some projects I have been planning!<br><br>Please definitely keep us up to date on any new sources for these things - it looks like I'm going to have to try and buy some off some fellow instructablers who have imported more than they need..hopefully they'll still have some when I get my other components all in and am ready to really start!<br><br>Thank you so much for sharing!
Hi :)<br><br>I just bough two 50cm LED RGB (20 LEDs total) strips based on the HL1606 ASIC from the link below. They cost $21.63 + shipping from Australia. Shipping was fairly priced and it seemed to be a good chance to play with these and not spend a bazillion dollars.<br><br>http://www.bliptronics.com/item.aspx?ItemID=83.<br><br>
OOoh! Thank you very much for that link!!
To anyone chasing these, I sell the strips in 50cm lengths for hobbyists. <br> <br>www.microcontrollersandmore.com <br> <br>Shipping outside of australia can be quite pricey, sadly its the world we live in. :-)
How many bits do you get on each channel to control the RGB with?
John,<br><br>It was great meeting you today at Union. Your DIY instincts are inspiring to aspiring engineers like myself, and to the students who watched your talks. Thanks for spreading your love of innovation.<br><br>(By the way, I don't know how we missed featuring this Instructable!)
a bunch of these together would make the best technicolor dreamcoat ever.<br>
yeahhh it's cool dude ... keep going
Oh sh*t! Nice!
Thanx alot for this instructable John!!! &nbsp;This is an awesome project!<br /> <object height="385" width="480"> <param name="movie" value="http://www.youtube.com/v/WQGIN1W7k2s&amp;hl=en_US&amp;fs=1&amp;" /> <param name="allowFullScreen" value="true" /> <param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/WQGIN1W7k2s&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" width="480" /></object>&nbsp;
dude epic video!!!
Hi,<br /> <br /> used this code on my 40x1 picaxe, need a slight code mod though,<br /> <br /> just wonderd if you could send the code for the pwm on SI&nbsp;pin as have no idea how to do it <br /> <br /> thanks <br /> <br /> andy<br /> craskie06@hotmail.com<br />
&nbsp;I found a supplier for these things! &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$50 for 5 meters<br /> <br /> &nbsp;<a href="http://www.peaktopeakled.com/p-cl-dgtf51920-32t3.html" rel="nofollow">www.peaktopeakled.com/p-cl-dgtf51920-32t3.html</a>
THis is the right stuff.. Are you sure its $50/5 meters ? THe add looks like it's $50 for one meter !<br /> -jc<br /> <br />
&nbsp;eek! You're right. I didn't notice &quot;*price is per meter&quot; @ the bottom of the product&nbsp;description. I knew it was too good to be true.
Your code uses "01" for light and "10" for dark and "00" for off... What happens if you use "11" for a particular color channel? Can the dark and light colors be mixed (that is, does %10000110 produce orange, bright red plus dull green)? How fast can the data be pushed out to a single strip of 20 LEDs? to a longer strip?
Sparr...<br/> Let me check on the 11. setting. I believe it is used when ramping the brightness with he PWM. You might find the Arduino code that Xander H. wrote based on our quick collaboration. He's actually figured out the PWM <a rel="nofollow" href="http://code.google.com/p/ledstrip/">http://code.google.com/p/ledstrip/</a><br/><br/>As far as how fast you can load them.. not sure.. but I think it'll be faster than you need :-) What are you trying to do ? <br/>-jc<br/><br/>
I want to use these in a POV display, or maybe stack 6 of them for a 2D LED array with scrolling text.<br/><br/>A rotating POV display has to be able to fully update N times per revolution, N=256 being popular. 40 LEDs at 300RPM means I need to be able to push 40*256*5=51200 bytes per second (just over 400kHz on the SPI clock), minimum, ignoring overhead. Is the maximum SPI speed for the HL1606 known?<br/><br/>Scrolling text is similar, using longer LED strips but slower framerate.<br/><br/>Xander is delaying 2000us (2ms) as part of each write, so his maximum output speed is 500 LED updates per second, too slow by a factor of 20. I expect that most of this delay is not necessary, and I would be doing SPI at a lower level than the arduino's digitalwrite, so I could speed it up significantly, but enough?<br/><br/>Also, Xander's code doesn't quite agree with yours, you are using &quot;10&quot; for bright LEDs where he has &quot;10&quot; as &quot;fade up&quot;. Can you clarify that?<br/>
Hey there - I've been using the Arduino library and I found that pretty much none of the delays are necessary - I removed them all from ledstrip.cpp and my app continued working the same. That said, I haven't been able to find a mode in which I can push data down the strip faster than you can see. So let's say you have a cable with 100 LEDs, all off. Even with all the delays removed, if you push one white LED to the end of the cable (load RGB=on, push 99 times) you'll still see a quick flash across all of the LEDs followed by the sustained ON of the last LED.<br/><br/>It might just be my misunderstainding of Arduino delays, perhaps the built-in writes do take some time. Or maybe it's just not able to clock fast enough. I do have a &quot;real&quot; (official) controller for the LEDstrip that runs through some built-in patterns, including &quot;jumpy&quot; ones that seem to push the data 10 LEDs at at time, instantly. But it tends to do it only for different colors on a fully-lit rope, so I suspect that the faint remnants of the old color getting pushed is hidden by the new, full-bright colors getting pushed in.<br/><br/>Anyway, I bought 20m of this cable and don't need it all, so if anyone needs some I could sell off small pieces. At $40 shipping @ 10m minimum from China, you'll find that buying small lengths is difficult - but mine's already in the US so if you have a project you want to build, let me know here!<br/>
Also by "none are necessary" I just mean, it appears to work fine. For all I know I'm really screwing with the control sequences and am just getting lucky with timing. I'm probably pushing it past spec :) especially since there are comments on at least one of the delays saying "spec sheet says it needs 1ms"
Way cool John! Are you doing a group buy on led strips and controllers?
Dude that's awesome. $100 something dollars is friggin steep though. Hopefully they get cheaper.
I want one!!!
I'm trapped in the John C Vortex!! The headband is RADICAL MAN

About This Instructable


85 favorites


Bio: Challenged... but not scared See my blog at http://johncohn.org
More by johncohn: Too-cool Rainbow Headband
Tags: LED RGB headband
Add instructable to: