HL1606 DLW

Pacman's Revenge!The Digital Light Wand
UPDATED May 1st, 2013

ATTENTION! I have now created a Blog Page specifically for the Digital Light Wand – LPD8806 version that is0-mick designed using an SD card reader and LCD Display Shield.

This new page has a video and detailed wiring diagram for the LPD8806 version of the Digital Light Wand and also some specific information regarding the formatting and use of BMP files.

The Page is located through the menu at the top of this page or via this link.

http://mrossphoto.com/wordpress32/lpd8806-dlw/

Please post questions and comments regarding that version of the light wand to that page.

Cheers!

———
I have gathered the links below to all of Mick’s fantastic work with incorporating an SD Card and LCD Display into the mix to make the wand independent of the Code Generation! Simply load BMP Images to the SD Card, select the image on the LCD display and GO!
Thanks Mick for your support of the Digital Light Wand AND this blog! See the updates below.

This blog page is dedicated to the Tutorial for the Digital Light Wand. Questions, problems, improvements, or anything else related to the Digital Light Wand should be posted on this blog page.

The DIGITAL LIGHT WAND is now available pre-assembled along with other great light painting tools on www.LightPaintingTools.com!!!!

What IS the Digital Light Wand? It is a programmable RGB LED Tool that is used in Light Painting Photography to create just about any object that you can think of for a light painting photo.
Here are links to some videos of the Digital Light wand in action!
Radio Shack Great Create Vid
A video showing the basics of how it works and in action as well
Here are the links to file downloads and know vendors for the HL1606 Light Strip and Arduino board.

1) The Detailed PDF Tutorial (WARNING! VERY LARGE! ~30MB!) DigitalLightWandTutorial.pdf
2) The Arduino Website to download the Arduino Software
3) For some computers, it has been necessary to instal the latest VCP (Virtual COM Port) drivers. Those can be found on the FTDI website HERE.
4) The Library files needed to communicate with the HL1606 RGB LED Strip (They are included in a folder in Phil’s Lightwand Code Generator below as well and it is best to use the ones he provides
5) Phil’s Digital Light Wand Code Generator: (located in the download area of his website at http://www.wright-online.com
6) The Spreadsheet to draw the image and generate the code for all lengths of the light strip (16 LED through 64 LED versions) for the Arduino (I recommend using Phil’s program instead!)
7) The 48 LED Spreadsheet to draw the image and generate the code for the Arduino (Old Version)

The NEW UPDATES are HERE!
HERE are the updates and links with all of Mick’s info for incorporating the SD Card Reader and LCD Display into the Digital Light Wand.

Note: This build totally takes the place of having to use a rotary Switch on the 16 LED Light Wand and gives the longer versions MUCH more flexibility. This is also using the LPD8806 Light Strip which has a MUCH larger color range than the HL1606 strip does! I have not personally done this yet but I will be trying to get one made and will take some pic and create wiring diagrams along the way. Stay tuned! :-)

1) Here is a YouTube video of the Digital Light Wand in action with the SD Card Reader and LCD Screen.
2) Here is an example photo
3) Here is the latest Arduino Code to make it do it’s magic!
4) Here is the Arduino Library files to drive the LPD8806 Light Strip
5) And here are some example LSB Files

*********************************************************************************************

The DIGITAL LIGHT WAND Tutorial is now complete!!!

HOW TO MAKE YOUR OWN DIGITAL LIGHT WAND!!

(aka The Programmable Light Strip)

Alright Everyone! After some long hard hours creating a VERY detailed document on how to do this (and creating a How To Video as well!), here it is, as promised! Many have asked me how this was done over the past few years and I quite honestly did not have the time to spend with many individuals in explaining how it was done or supporting any problems that might have come up with others trying to follow a quick how to lesson so I was hesitant about getting any information to anyone. Now… With the Help of Blacklodge and Garnatha as my test subjects and getting valuable questions and feedback from them during the process, I have now completed the tutorial to a point where it is ready to show everyone how it is done.

Here is a VERY LARGE (~30MB!) PDF document that details everything including High Res photos to show the details as well.
DigitalLightWandTutorial.pdf

Other Files and Reference Links:
1) The 48 LED Spreadsheet to draw the image and generate the code for the Arduino (See below for newest version)
2) The Arduino Website to download the Arduino Software
3) The Library files needed to communicate with the HL1606 RGB LED Strip

*** Here is a the Latest Excel Spreadsheet! It will work with any length of the HL1606 light strip between 16 and 64 LEDs! Please read the HELP section since this will differ a lot from how the use of the Excel Sheet is explained in the written tutorial

The DIGITAL LIGHT WAND is now available pre-assembled along with other great light painting tools on www.LightPaintingTools.com!!!!

And here are videos of showing the assembly of the 16 LED – 6 program version of the DLW!

Part 1

Part 2

Part 3

Part 4

ENJOY!!! And please let me know what you think about it all! :-)

————————————————————————————————————–

Post Comments below  (Comments are listed most recent first)

————————————————————————————————————–

370 Comments

  1. Posted March 8, 2014 at 2:13 pm by google api tutorial | Permalink

    Howdy! I know this is kinda off topic nevertheless I’d figured
    I’d ask. Would you be interested in exchanging links or
    maybe guest authoring a blog post or vice-versa?
    My blog addresses a lot of the same topics as yours and I believe we could
    greatly benefit from each other. If you are interested
    feel free to shoot me an email. I look forward to hearing from you!
    Awesome blog by the way!

  2. Posted February 27, 2014 at 3:19 pm by Vass | Permalink

    Actually Mick, I think I got it from your video comments thanks

  3. Posted February 27, 2014 at 3:13 pm by Vass | Permalink

    Can someone point me to the simple wiring diagram for the HL1606 with SD card wired to the Arduino please

    Mine has come apart and I have no idea how to plug it all back together (this time I will solder it)

    Not the schematic please I dont understand that. Just the Pin x to Pin Y etc

    thanks muchly :-)

  4. Posted February 11, 2014 at 3:25 pm by NedTaccse | Permalink

    The generated code, this sentence is wrong: int r = (((this_led_color >> 16) & ff) >> 1) | 0×80);
    Somebody help me! (error message: “ff” was not Declared In This Scope)

    • Posted February 14, 2014 at 1:08 pm by is0-mick | Permalink

      Where is this code from?
      I’d say 0xFF instead of the ff, as it looks wrong…

      What setup are you using?
      as I did a version with LCD sceen and SD card for the HL1606 too..
      see post further down @ January 22, 2013 at 4:54 am by is0-mick

      Mick

  5. Posted July 31, 2013 at 7:53 am by bad credit | Permalink

    It’s an amazing post for all the internet users; they will obtain advantage from it I am sure.

  6. Posted July 11, 2013 at 6:45 pm by offres d emploi | Permalink

    Hi there i am kavin, its my first occasion to commenting anyplace, when i read this post i thought
    i could also make comment due to this sensible article.

  7. Posted June 6, 2013 at 8:29 pm by pain management | Permalink

    Getting the right amount of exercise is helpful and can be done with something as simple as taking a walk.

    So rather than hoping that you will find a single exercise that
    will fix all your problems, you must understand that to remove these issues you must use a combination of
    back pain exercises. Sportsmen and women are known to have
    great peripheral vision so try being aware of
    what’s to the sides of you.

  8. Posted June 4, 2013 at 12:31 pm by Marc | Permalink

    Hi,
    First of all, I want to thank you for your brilliant work!
    I’ve bought quite everything I need to. Can I use a arduino compatible board instead (for example the Funduino MEGA2560)?
    Is your (or phil’s) program compatible to a mac too (there is a arduino software for mac)?
    Which one of Phils program do I have to download (you recommend Phil’s)

    Thanks for your answer.
    Best wishes from Switzerland
    Marc

  9. Michael Ross
    Posted May 1, 2013 at 9:38 pm by Michael Ross | Permalink

    ATTENTION! I have now created a Blog Page specifically for the Digital Light Wand – LPD8806 version that is0-mick designed using an SD card reader and LCD Display Shield.

    This new page has a video and detailed wiring diagram for the LPD8806 version of the Digital Light Wand and also some specific information regarding the formatting and use of BMP files.

    The Page is located through the menu at the top of this page or via this link.

    http://mrossphoto.com/wordpress32/lpd8806-dlw/

    Please post questions and comments regarding that version of the light wand to that page.

    Cheers!

    • Posted May 2, 2013 at 2:05 am by Martin | Permalink

      Dear Michael! Thanks a lot for that great work! This makes it really easy to understand how to put together the stuff! I will order everything I need right now. Thanks you so much!

  10. Michael Ross
    Posted April 30, 2013 at 12:25 pm by Michael Ross | Permalink

    “This afternoon I am going to do a little Spring Cleaning” and attempt to split the information out for the HL1606 Strip DLW and the LPD8806 Strip into two pages. So basically I will be starting a new page for the LPD8806 DLW that Mick designed and leave this page for the original HL1606 Strip. That may help eliminate some confusion. I am not sure if I will be able to migrate the comments related to the LPD8806 strip to the new page but I will at least make sure the relevant information is on the new page.

  11. Michael Ross
    Posted April 30, 2013 at 11:21 am by Michael Ross | Permalink

    I am going to try to get one finished with Mick’s design and get some details posted in the next few days.

    There have been some questions about the number of LED’s that can be driven and the answer is different depending on the strip you are using. The real question is how many LED’s can the 5v power supply on the Arduino board handle before you either wipe it out or have to us an external power supply to supply more current.

    The HL1606 strip uses about 2 amps per meter and that is MUCH more than the Arduino boards are rated! Which, from what I understand, is 800mA (milliamps!) or .8 Amps! So then the question arises as to why all of these setups do not fry the Arduino boards? The answer is basically that first off, that 2 Amps comes from every LED being on at full brightness. And when I mean every LED, I mean each of the R, G, and B so that you are seeing bright white in the color mix. This is not going to happen much if at all. On top of that, it is also unlikely that you will have ALL the LED’s on at the same time. And then one more on top of that, the LED’s are only on for a fraction of a second for each time pulse so things really do not have much time to heat up in the electronics. If all of that makes sense!? I have driven 64 LED’s on an HL1606 strip using the power on the Arduino

    So then we move to the LP8806 Strip. It does things differently and MUCH more efficiently. I have seen others post results showing that a full 5 meter strip (32 LED per meter) of the LPD8806 strip only pulls 1.2 Amps! So… Even though that is still above what the rating is for the Arduino, you also have the time, number of LEDs and brightness that come into play. Technically, you are already over the limits of the Arduino when you get to .8 Amps. BUT, you can push it a bit. How far? There is really no way to tell or calculate it that I know of. I can tell you that I have tested 64 LEDs on the HL1606 strip, but if you go with more than that, you are on your own! :-)

  12. Posted April 30, 2013 at 7:17 am by andre | Permalink

    Hi Martin
    If I were you I would buy the 52 led strip. It has more leds and so will have better resolution.
    Also the code is ready to use (done by Mick).
    If you want I can send u a file stating how to wire and how to prepare the inages for the sd card.

  13. Posted April 29, 2013 at 4:34 pm by is0-mick | Permalink

    Hi Martin,
    SD reader (ebay ) item number 290621132853

    LCD Display / Keypad (ebay) item number 200720143717

    The strip wires up to GND / +5v and the two pins as defined in the code.

    The SD reader connects to the default arduino mega 2560 SPI pins.

    Hope that helps!

    Mick

    • Posted April 30, 2013 at 1:22 am by Martin | Permalink

      Thanks a lot Nick! Just some more question. Will it be possible to drive more than 48 LEDs? I am about to order everything, but I am not shure if I am right with the LED stripe itself, is this one okay: 150932028240? Thank you so much! Martin

      • Posted May 2, 2013 at 1:54 am by Martin | Permalink

        Hello Mick (not Nick, yes, a typo, sorry),

        Thanks for your reply! I am just about to order the stuff and thanks to the work of Michael I am hoping to solder it together the right way.

        Thanks a lot!

    • Posted April 30, 2013 at 5:34 am by is0-mick | Permalink

      Nick?
      may be a typo?
      Yes that stip 150932028240 is fine.
      And I’ve driven 104 LED’s (2m x LPD8806), so has Cazzo3,
      Here is a link to his pics of his wand.
      http://www.flickr.com/photos/40167398@N03/8190943021/in/photostream/

      Not sure where people get the 48? from, you can just change it in my code to whatever size you want, but you may also need to increase the power supply or make your own seperate 5v supply to power them depending on how many you want to run.

      More LED’s = More power required!

      I’ve powered 104 direct from the arduino, but do so at your own risk :)

      Mick

      • Michael Ross
        Posted April 30, 2013 at 2:30 pm by Michael Ross | Permalink

        I think the 48 came from the original HL1606 DLW Build. I am in the process of splitting these tutorials and creating a new one base on your (Mick’s) design to help eliminate some of this confusion. I will move some of these comments over there as well.

  14. Posted April 29, 2013 at 9:19 am by Martin | Permalink

    Hello, I would like to build a ldp8806-based strip too. Please could someone point me to a hardware-list of what to buy. I know how to program Arduinos and I know how to solder together the stuff.

    Thanks a lot! Martin…

    • Posted April 30, 2013 at 2:22 pm by is0-mick | Permalink

      Hi Jordan,
      The LCD / Keypad is fine, the SD reader is not compatible.
      You want to get one with the voltage converter etc built in, as SD cards are 3.3v and the Arduino is using 5v.

      You can pick them up on ebay for 99p from hong kong / china.
      Just search on ebay for arduino sd reader and you should find some.

      Nothing else is needed, unless you want to add a couple of external switches to trigger the “show” or move back / forward instead of searching for the buttons on the keypad in the dark, or triggering the show :)

      Mick

      • Michael Ross
        Posted April 30, 2013 at 2:28 pm by Michael Ross | Permalink

        Mick, there is a 3.3 volt pin on the Arduino that could be used for those SD card readers that don’t have the 5v to 3.3 regulator on them. Wouln’t you think that would work?

        Edit… Ahhh! Nevermind! The connections on that breakout board are more complicated to deal with. It would definitely be best to deal with an SD card board that is a little more friendly. :-)

        • Posted April 30, 2013 at 2:34 pm by is0-mick | Permalink

          Yes, that would work for the power, however I think the signals such as SDA, SCK, etc would still be at 5v . On the SD card they need to be 3.3v signals.

          The SD reader I used had resistors built on the board to drop all of the signals to the required level.

          http://www.ebay.com/itm/1pcs-ARM-MCU-NEW-SD-Card-Module-Slot-Socket-Reader-For-Arduino-/110950888643

          $1.48 in your money :)

          By the way, if you need any help with anything, just give me a shout.

          Mick

          • Michael Ross
            Posted April 30, 2013 at 2:37 pm by Michael Ross | Permalink

            After looking at that board more, I agree. It would be easier to use one that is ready for use. :-)

          • Michael Ross
            Posted April 30, 2013 at 2:40 pm by Michael Ross | Permalink

            And thank you! I have the supplies sitting in front of me to build one and I am taking pics as I go. I will get all of this information put in a PDF file hopefully tonight and have it all published. I have already started moving the information to a new page to break out the LPD8806 strip to a new blog. I will shout if I run into any snags. Thanks again for everything you do here! :-)

  15. Posted April 23, 2013 at 2:46 pm by Jordan | Permalink

    Couple questions for Mick,
    Thank you very much for working out the LCD screen and SD card reader! I am sourcing the components as we speak to build this tool. Could you tell me what components (model number and manufacturer) you used for your own digital light wand?
    I’m assuming this SD card reader will work:
    https://www.sparkfun.com/products/11403
    As for the LCD screen, do I search for a 3.3v or 5v 16×2?
    And, are you using a LCD keypad shield like this one?:
    http://www.amazon.com/SainSmart-Keypad-Shield-Arduino-Duemilanove/dp/B006OVYI1G
    I already have an Arduino Mega 2560. Do I need any other major component other than a 2 meter strip of LPD8806 LED’s)?
    Thanks for your assistance!
    Jordan

    • Posted April 30, 2013 at 2:24 pm by is0-mick | Permalink

      Oops, I think I replied to the message above, instead of this one. (please read reply above).

      Mick

  16. Posted April 23, 2013 at 6:04 am by Andre | Permalink

    Hi Mick (is0-mick)
    I finally got around to build the digital light wand with the lpd8806. Many thanks for the code you built. I still didn’t try the dual strip version…
    I was thinking of trying to built Michael’s Programmable RGB LED Orb.
    I would be happy to send you a string of the ws2801 LEDs.
    What do you say?

  17. Posted April 13, 2013 at 2:02 pm by is0-mick | Permalink

    Sorry,
    I dont have any WS2801 strip to test with, so I have not created a version for your strip :(

    The only versions I have made so far are for the LPD8806 and the HL1606 as I have these strips..

    Mick

  18. Posted April 13, 2013 at 1:00 pm by Alex | Permalink

    Hi all.
    Can someone please tell me what are the correct files to use WS2801 with LCD keypad and SD card reader?
    Thank you

  19. Posted March 16, 2013 at 3:51 pm by vinifr | Permalink

    hi is0mick, can you pass me your email?

  20. Posted February 14, 2013 at 3:43 am by Vass | Permalink

    I am (both LCD and SD)
    this goes back to my post
    September 28, 2012 at 4:43

    If there is a definative set of files to use now and to save me trawing through the blog, can you point me in the right direction to get 64LED’s to work Mick?
    many thanks
    Vass.

  21. Posted February 13, 2013 at 8:00 pm by is0-mick | Permalink

    Oh right,
    I thought you were using my code with the LCD and SD..

    Not sure about phils program, Maybe you should try adding the LCD and SD card to your wand? then you can just drop BMP’s directly onto the sd card, no more converting..
    And I’ve tried it with 108 led’s on the LPD8806 strip no problem..

    Mick

  22. Posted February 13, 2013 at 7:44 am by Vass | Permalink

    To be honest, I just tried setting the No of LED’s in the DLP program where you upload the image and it saves to the SD card

    but this was failing when set at 64, but works at 48.

    maybe there is a simple answer I missed
    thaks Mick.

  23. Posted February 13, 2013 at 6:31 am by is0-mick | Permalink

    Did you change the size here?
    #define STRIP_LENGTH 48

    to 64?

    Then reprogram the arduino?
    Mick

  24. Posted February 13, 2013 at 4:30 am by Vass | Permalink

    Hi Mick

    did anyone ever try to extend the 48 LED limit on the 1606 to 64 LED’s ?

    I’m getting a repeat of the image on the extra LED’s on my wand LOL

  25. Posted February 9, 2013 at 6:54 pm by Andre | Permalink

    Hi Everyone.
    Im selling my digital light wand on ebay in case someone is interested.
    cheers

  26. Posted January 22, 2013 at 4:54 am by is0-mick | Permalink

    Hi Michael,
    the LSB files are no longer needed, we can just drop normal images (BMP’s directly to the SD now).
    The link to the code actually takes you to the picture instead.

    Also I’ve done two versions of code for different strips..
    HL1606 + LCD + SD http://pastebin.com/sQ0VimzM
    LPD8806 + LCD + SD http://pastebin.com/NbgLWdNF

    Kind Regards
    Mick

  27. Michael Ross
    Posted January 21, 2013 at 11:23 pm by Michael Ross | Permalink

    Mick,

    I have made some updates in the text at the top of the blog with links to your code and examples. Please let me know if you see any errors or if I have missed something.

    Thanks!
    Mike

  28. Posted January 21, 2013 at 7:58 pm by is0-mick | Permalink

    Everything you’ll need is in the comments below, as well as links to the source code.

    Not sure what stips you are using, but I’ve made code for the LPD8806 and the HL1606.
    The LPD8806 is the better strip out of the two.
    The 2×16 display button shield is from ebay, and is very cheap, df robot i think was the one i used..

    Just put in ebay arduino lcd button keypad, and it should pop up.
    That just plugs in. Then the SD card just wires onto the SPI pins of the arduino, I’ve given them further down in the comments.

    If you get stuck give me a shout :)

    Mick

  29. Posted January 21, 2013 at 6:59 pm by Steve Blackbourn | Permalink

    Thanks for your help guys – the timeline is a bit disjointed (I am in Queensland Australia) but your assistance is timeless!

    I would like to see a schematic and further info on the SD card and 2 x 16 display? as well as some construction details, latest code etc. Is there a consolidated site or is it piecemeal in the blog below? I would love to see the combined efforts of your work resulting in the ‘Ultimate Digital Light Wand”…

  30. Posted January 21, 2013 at 5:17 pm by is0-mick | Permalink

    have a look at the posts below here..
    http://mrossphoto.com/wordpress32/dlwblog/#comment-6430

    has a video of it

    Mick

  31. Posted January 21, 2013 at 4:51 pm by Steve Blackbourn | Permalink

    Sounds interesting as well is0-mick – where is the info on your version?

    (I still can’t believe that a mac person has not built the digital light wand and solved the windows only problem! We are now a large proportion of the photographers/gadget people out there!)

  32. Posted January 21, 2013 at 3:37 pm by is0-mick | Permalink

    Not sure if there’s a windows emulator program for the mac? Like WinE for linux?

    Only other thing I can suggest is that you have a look at building my version of the light wand that uses the LCD display and an SD card, then you dont need any software as it reads bmp files directly from the sd, and you can choose the image on the LCD screen…

    Mick

  33. Posted January 21, 2013 at 2:37 pm by Steve Blackbourn | Permalink

    Really enjoying your journey with light and can appreciate how many hats you wear… Have followed this blog and bought your e-book – fantastic information. Have built several light tools but cannot finish the digital light wand without the excel spreadsheet and code generator for the Apple Mac. Have downloaded Phil Wright’s files etc and cannot get anything to run on a mac as they all seem to be for Windows only. Can anyone who has been down this path help someone from down under?

    • Michael Ross
      Posted January 21, 2013 at 5:39 pm by Michael Ross | Permalink

      Thanks Steve!
      Unfortunately, no one has ventured in the Mac arena to create a code generator that will work. I know there are ways to run dual Operating systems on a Mac (Mac and Windows) but I have never owned a Mac and wouldn’t know where to tell you to start on that one. Or like Mick said, there may be an emulator to run Windows programs in a Mac OS also.

      But to get you started and make sure your wand is operating properly, if you send me an image that you would like to generate the code for (or a few of them), I can generate the code for you, send it back in emails that you can then copy and paste into the Mac Arduino window to download it to the Arduino board. My email address is MichaelRRoss AT Verizon DOT net (replace the AT and DOT with the proper email syntax ;-) ).

      I have thought there might be a possibility down the road to maybe just create a web page to upload an image to and then generate the code for copy and pasting into the Arduino Window and that would cure the problem of it being a Windows only thing but I haven’t had time to look into it yet.

    • Posted January 21, 2013 at 6:34 pm by is0-mick | Permalink

      Hi Michael, hope you are well!

      Its an interesting idea, but there are still quite a few limitations with the above, and having to copy + paste code and reprogram the arduino every time was a little crazy I thought!
      Then you are also limited to only 6 or so small images with the above method.

      With the improvements I’ve made there is now virtually no limit on image size, ive tried one at 10,000 pixels long just to see if it worked, it did take quite a while to finish spitting out the pattern!

      Also you can store loads of images on the SD card, and it is not OS dependant, as linux, mac and windows all support BMP files..

      That’s my take on it anyways..

      Regards
      Mick

      • Michael Ross
        Posted January 21, 2013 at 6:39 pm by Michael Ross | Permalink

        Thanks Mick!
        Yes sir! I totally agree! Your method using the SD card and LCD display is definitely the best way to go! I think Phil was playing with a way to do it all via bluetooth as well and that was an intriguing option! I have just been thinking of other options for those that went the lower tech route. I would definitely recommend going the SD care/LCD route though!

        Thanks for your support on this blog! I greatly appreciate it! :-)

        Let the light shine!
        Mike :-)

  34. Posted January 4, 2013 at 11:52 am by Carlos Magno | Permalink

    Hello!

    I wish I knew how to do to buy your product.
    A friend of mine is in Boston .. I would buy it for me!
    Thank you!

  35. Posted December 28, 2012 at 2:26 am by Randy | Permalink

    I just like the valuable information you provide for your articles.
    I’ll bookmark your blog and check again right here frequently. I’m reasonably sure I will be told plenty of new stuff proper right here!

    Good luck for the next!

  36. Posted December 15, 2012 at 11:19 am by is0-mick | Permalink

    No,
    I think you are looking at a different schematic. No 74LS08 in my version.

    In my version just wire up the strip to the pins defined in the code, and the SD card goes also on the pins defined in the code.

    Here is the latest version of the code, which also supports dual strips.

    You will need to change the strip length to match your strip, and set dual strips to false, if you are only using one strip.

    http://pastebin.com/w1d483J2

    Mick

    • Posted December 15, 2012 at 9:04 pm by leo | Permalink

      hi is0-mick ,
      i’m so sorry ^^’,
      in your code i only see this 3 pin
      ” SDssPin53 <–SD card CS pin"
      "dataPin = 3;<–LPD8806 strip "
      "clockPin = 32<–LPD8806 strip"
      SD card MOSI pin,SD card sck pin,
      SD card Miso pin,i can't find
      ,could you mind tell me the Schematic of pin ?

    • Posted December 18, 2012 at 3:34 pm by is0-mick | Permalink

      Hi Leo,
      The SD card reader just goes to the standard SPI pins on the Arduino.
      http://arduino.cc/en/Hacking/PinMapping2560
      pins 50,51,52and 53..

      LPD strip goes to pins 31 data , 32 clock.
      Also GND and +5v (These are marked on the arduino).

      Thats pretty much it for the wiring!

      You can also add a switch betweens pins 44 and 45 to use as a “send button” instead of using the one on the LCD shield.

      Mick

  37. Posted December 15, 2012 at 11:12 am by leo | Permalink

    Dear is0-mick
    I have a new LEDSTRIP(LPD8806),
    i see the “LED Light Wand with SD Card Schematic . pdf”,i don’t understand the part of ” 74LS08N”,is it use in schematic or not?

  38. Posted November 29, 2012 at 4:12 am by is0-mick | Permalink

    @gareth
    I’ve just created some code with phi’s program to see what you have.

    So give this a try!
    Create some code, using phils program.
    Save it to the file.
    Open it in notepad or a text editor

    Find the line thats below “Void Post_Frame(Void)” in the code that phils program generated.
    Look the line:
    WriteRGB(r,g,b, clkPin1,spiPin1);
    it may be slightly different to that if you are not using hardware SPI.
    But change the first part so you are swapping the letters B and G over.
    Like so.
    WriteRGB(r,b,g, clkPin1,spiPin1);

    Then upload this code to your arduino.

    Mick

    • Posted December 1, 2012 at 5:04 pm by Gareth B | Permalink

      Hi Mick,

      Sorry for not getting back to you. I found this out the other night and strangely you’ve said virtually the same thing is I’ve found out! :)

      I tinkered with the code the other day after finding line where it’s writing the colour order.

      For those with the same problem, I have changed the code in the Arduino script to the following :)

      writeRGB(r,b,g,StripControl1);
      just swap the b and g around!

      Cheers Mick for helping as well:)

  39. Posted November 28, 2012 at 7:01 pm by is0-mick | Permalink

    @gareth
    I’m a littke bit lost now with all the replies / etc and little pieces of code here and there…

    If you can create some code for your stick that doesn’t show the colours right, and post it on pastebin for me, and post a link to it here.

    Then I’ll be to take a look at it properly.

    Cheers
    Mick

  40. Posted November 26, 2012 at 8:51 pm by is0-mick | Permalink

    What code / setup are you using gareth?
    Mick

    • Posted November 27, 2012 at 2:09 am by Gareth B | Permalink

      Hi Mick, i’m using the Light Wand Code Generator program and the Mega256 with a 2m long strip of the 8806 leds (104). I haven’t used the SD card option, just simply the 9v battery option. Everything uploads fine and seems to work, until I noticed the colours weren’t correct.
      It’s only when I tried setting R G and B to 255 for each colour in 3 blocks did I find that Green and Blue are mixed up. :)

      • Posted November 27, 2012 at 9:18 am by Andre | Permalink

        Yes. This strip has the order of the colours swapped. Why don’t you ad an sd card reader? You will have more flexibility + the code Mick built (read down on the forum) has already fixed that problem…

        • Posted November 28, 2012 at 6:30 am by Gareth B | Permalink

          Hi Mick, Thanks for getting back to me.
          Can you tell me where to find this code?

          I’ve looked in the LEDStrip files and the LPD8806 and I can’t see it?

          Thanks for taking the time to help

          • Posted November 28, 2012 at 6:31 am by Gareth B | Permalink

            I’ve found this
            setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b),

            • Posted November 28, 2012 at 6:56 pm by is0-mick | Permalink

              void writeRGB(uint8_t r,uint8_t g,uint8_t b,int nStrip)

              yep, just change that to
              writeRGB(uint8_t r,uint8_t b,uint8_t g,int nStrip)

              before you upload it to the arduino :)
              let’s know how u get on.

              Mick

      • Posted November 27, 2012 at 1:10 pm by is0-mick | Permalink

        I haven’t got the code your using in front of me, but you need to look for something like

        strip.setPixelColor(position, strip.Color(red, green, blue));

        in the code
        just swap the likes of that that to

        strip.setPixelColor(position, strip.Color(red, blue, green));

        Hope that helps!

        Mick

        • Posted November 28, 2012 at 6:40 am by Gareth B | Permalink

          One last thing, sorry to clog up these posts.

          Which file should I be changing. I’ve noticed that there is similar code once it’s been compiled;

          void writeRGB(uint8_t r,uint8_t g,uint8_t b,int nStrip)

          Will this change once I change the library files? (if that’s what needs changing :( )

          You can email on garethbrooks ( at ) rocketmail.com

    • Posted November 27, 2012 at 2:12 am by Gareth B | Permalink

      It’s using the most recent one from Phil Wright. Vers 1.0.0.76 and i’ve created a folder for the 8006 in the Arduino library for the latest files. Has to something in the script i’d say, somewhere :(

  41. Posted November 26, 2012 at 4:16 pm by Gareth B | Permalink

    I’ve just built a 2m 8806 strip (104 leds) and I’m getting my Blue and Green swapped!

    I’ve created an image literally with RGB (in that order and each colour set to 255).

    Any ideas where to look, or what to change?

    Very annoying

  42. Posted November 26, 2012 at 5:34 am by Iain | Permalink

    Hi Guys

    I’ve made a wiring diagram for the Arduino, card reader and LCD display if it helps at all.
    I’ll send it to anybody that needs it.

    Iain

  43. Posted November 25, 2012 at 9:30 am by is0-mick | Permalink

    Hi Leo,
    its because the library was made for Arduino 022 and you are compiling it on a later version.

    A quick google of “WConstants.h: No such file or directory”

    Returns:
    http://blog.lisp.tw/blog/2011/12/08/meetandroid-to-arduino-v10/

    You can either do what it says in the link or install Arduino v022 instead.

    Hope that helps

    Mick

    • Posted November 25, 2012 at 3:53 pm by Andre | Permalink

      yep, install v022 instead.
      If that doesn’t work and if you are building a ligtwand with SD and Keypad then Im writing a tutorial on how to set it up based on Mick’s Library. Its still very raw but Ill be happy to email it to you.

    • Posted November 26, 2012 at 3:21 am by leo | Permalink

      Thank you your help ,andre & Mick
      after use v022 error is fix,but the ledstrip also doesn’t work.>,<
      i think andre , could you mind send me the tutorial ?
      my email :leo_83311@yahoo.com.hk

  44. Posted November 25, 2012 at 7:37 am by leo | Permalink

    Hello,
    i have some error in LEDStrip.cpp, anyone can tell me how to fix it,thx^^.

    LEDStrip.cpp:30:24: error: WConstants.h: No such file or directory
    LEDStrip.cpp: In constructor ‘LEDStrip::LEDStrip(int, int, int, int)’:
    LEDStrip.cpp:40: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:40: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:41: error: ‘OUTPUT’ was not declared in this scope
    LEDStrip.cpp:41: error: ‘pinMode’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::sleep()’:
    LEDStrip.cpp:52: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:52: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:53: error: ‘INPUT’ was not declared in this scope
    LEDStrip.cpp:53: error: ‘pinMode’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::wakeup()’:
    LEDStrip.cpp:65: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:65: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:66: error: ‘OUTPUT’ was not declared in this scope
    LEDStrip.cpp:66: error: ‘pinMode’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::faderCrank()’:
    LEDStrip.cpp:81: error: ‘millis’ was not declared in this scope
    LEDStrip.cpp:85: error: ‘digitalRead’ was not declared in this scope
    LEDStrip.cpp:85: error: ‘HIGH’ was not declared in this scope
    LEDStrip.cpp:86: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:86: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:89: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::faderSpeedSet(unsigned int)’:
    LEDStrip.cpp:108: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:108: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:118: error: ‘HIGH’ was not declared in this scope
    LEDStrip.cpp:118: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:120: error: ‘millis’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::rgbPush(uint8_t, uint8_t, uint8_t)’:
    LEDStrip.cpp:157: error: ‘_BV’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::rgbPush2X(uint8_t, uint8_t, uint8_t)’:
    LEDStrip.cpp:172: error: ‘_BV’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::sPulse()’:
    LEDStrip.cpp:186: error: ‘digitalRead’ was not declared in this scope
    LEDStrip.cpp:186: error: ‘HIGH’ was not declared in this scope
    LEDStrip.cpp:188: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp:188: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:189: error: ‘delayMicroseconds’ was not declared in this scope
    LEDStrip.cpp:194: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:195: error: ‘delayMicroseconds’ was not declared in this scope
    LEDStrip.cpp:196: error: ‘LOW’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::pushCmd(uint8_t)’:
    LEDStrip.cpp:213: error: ‘B00000011′ was not declared in this scope
    LEDStrip.cpp:214: error: ‘B00110000′ was not declared in this scope
    LEDStrip.cpp:215: error: ‘B11001100′ was not declared in this scope
    LEDStrip.cpp:217: error: ‘MSBFIRST’ was not declared in this scope
    LEDStrip.cpp:217: error: ‘shiftOut’ was not declared in this scope
    LEDStrip.cpp: In member function ‘void LEDStrip::latch()’:
    LEDStrip.cpp:222: error: ‘HIGH’ was not declared in this scope
    LEDStrip.cpp:222: error: ‘digitalWrite’ was not declared in this scope
    LEDStrip.cpp:223: error: ‘delayMicroseconds’ was not declared in this scope
    LEDStrip.cpp:224: error: ‘LOW’ was not declared in this scope

  45. Posted November 20, 2012 at 6:09 pm by is0-mick | Permalink

    As promised (see post below this one) here is the new code for the HL1606 stip.

    http://pastebin.com/sQ0VimzM

    Regards

    Mick

    • Posted December 18, 2012 at 3:11 pm by Nigel | Permalink

      hi Is0-Mick,

      i am still using my lightwand withoud LCD and SD card. But would love to integrate these but i am unsure wich to order. Could you tell me what hardware you use? (it could be around here but i’ve seen that they are also using another led strip. :)

      thanks in advance

      Nigel

  46. Posted November 20, 2012 at 6:07 pm by is0-mick | Permalink

    Hi Guys,
    I’ve created a new version of code for the LCD + SD that now supports direct reading of BMP files from the card for the HL1606 strip.
    So no need to convert them anymore :)

    I tried with the same images I used on the LPD8806 version, here are the images it created.

    http://www.flickr.com/photos/68646769@N07/sets/72157632062971068/with/8203598261/

    The images used were 52 high, and the strip is only 48, so it clipped the top of one or two of them.

    I’ll post a link to the code very soon..

    Mick

  47. Posted November 16, 2012 at 12:59 am by Todd | Permalink

    Is there a listing of what each setting in the Code Generator is supposed to do written down somewhere. I was able to figure out the settings for a single strand by reading other posts here, but now trying dual strips and using the schematic Phil has and not sure I am getting the settings right in the software. Thanks

  48. Posted November 13, 2012 at 1:06 pm by Andre | Permalink

    uooou!!
    Thats an amazing work Mick!
    Thank you so much for sharing

  49. Posted November 13, 2012 at 5:30 am by is0-mick | Permalink

    Another Improvement!

    I’ve now added the Gamma Lookup Table that I came across in one of the LPD8806 examples, which seems to do a better job of converting 8bit RGB values to 7bit RGB due to the way our eyes work!

    Previously I was just bit shifting, but the Gamma lookup helps produce an image that looks more comparable to the input image.

    The image produced by bitshifting seemed to lack a little contrast and seemed too bright.

    I’ve uploaded a picture to flickr produced with the new code so you can compare.

    New code is now here:
    http://pastebin.com/NbgLWdNF

    Mick

  50. Posted November 12, 2012 at 10:30 am by is0-mick | Permalink

    Small video of the Completed wand:
    http://www.youtube.com/watch?v=Mh-LZx1As4E

    Some pictures created with it:
    http://www.flickr.com/photos/68646769@N07/8176967532/in/photostream/

    Mick

  51. Posted November 11, 2012 at 6:55 pm by is0-mick | Permalink

    Newest version 1.04 is now available here:
    http://pastebin.com/ueJhzQbK

    This version fixes the backlight problem and also
    a strange problem where the last LED in the strip remained green when clearing the strip, if the last line / pixel on the image shown, is not black which I noticed when displaying an image tonight.

    Apparently this issue is to do with the LPD8806 hardware or Library, and calling strip.show() twice when clearing the strip seems to fix it!
    So I added that :)

    Hopefully this should be the last update for a while!

    Mick

  52. Posted November 11, 2012 at 2:05 pm by is0-mick | Permalink

    Small slight bug..
    void BackLightOn()
    {
    analogWrite(BACKLIGHT,255);
    BackLightTimer = true;
    int BackLightTemp = BackLightTimeout;
    }

    should read
    void BackLightOn()
    {
    analogWrite(BACKLIGHT,255);
    BackLightTimer = true;
    BackLightTemp = BackLightTimeout;
    }
    (remove the int bit from the last line)

    This bug made the backlight still dim when you pressed a key. Removing the “int” makes it stay lit properly when you press any keys on the keypad (except send) because we dont want the lcd being picked up by the camera :D

    Mick

  53. Michael Ross
    Posted November 11, 2012 at 11:26 am by Michael Ross | Permalink

    Howdy Everyone! I have been crazy busy with a new job I started back in October and it doesn’t show any sign of letting up any time soon. I just wanted to thank you all for sharing your improvements and helping each other out with questions and ideas! I hope to get back into some Light Painting soon! Cheers! :-)

  54. Posted November 11, 2012 at 10:39 am by is0-mick | Permalink

    Hi All,
    Iain Kindly sent me some LPD8806 Strip, and I’ve created a version of my LCD + SD code for that strip.

    This version now uses plain 24bit BMP files, no need to convert them or anything :D but they do need to be rotated 90 degrees to the right. I did do this on the arduino board but it was way too slow.

    So, just create a bitmap of lets say 52 (your number of led’s) by whatever.. rotate it 90 degrees, and save it as 24bit colour… Drop it onto the SD card any you should be good to go!

    Code is here:
    http://pastebin.com/0fXXg4Ze

    Regards

    Mick

  55. Posted November 8, 2012 at 12:38 pm by Iain | Permalink

    Hi Mick
    I’ve been trying to email you for your address but it keeps on bouncing back!!
    Iain

  56. Posted November 5, 2012 at 9:54 am by Iain | Permalink

    Hi Mick sorry I missed you, no sign of those 8806 yet won’t know until Wednesday if I’ll get them or not.
    Iain

  57. Posted November 4, 2012 at 5:33 am by is0-mick | Permalink

    Still in the lakes, near ullswater, heading back tomorrow lunchtime..

    Mick

  58. Posted November 3, 2012 at 6:47 pm by Iain | Permalink

    Hi Mick
    You should have said you were in the lakes I would have put the kettle on!!!
    Iain

  59. Posted November 3, 2012 at 6:18 pm by is0-mick | Permalink

    Hi guys, away caravaning in the lakes for the weekend, will try to have a look when I get back. Internet on my phone ain’t great, and its also bloody cold!

    Mick

  60. Posted November 2, 2012 at 6:55 am by Iain | Permalink

    Hi Andre

    I think you’ve miss understood my post I haven’t got two one meter strips of 8806 but one two meter length that I have been able to get working using just the arduino + 8806 (see here for result)
    http://www.flickr.com/photos/40167398@N03/8136675674/in/photostream
    its getting it working with the LCD + card reader that I’m at a loss with but with the expert help from this blog I’m sure we’ll get it working.

    cheers Iain

  61. Posted November 1, 2012 at 3:47 pm by Phil Wright | Permalink

    Hi Guys, email me your phone number to philwright@live.com I can phone you tomorrow to give you advice

    But read through the threads on this website there are a number of tips re pinouts

    Cheers

    Phil

  62. Posted October 29, 2012 at 7:07 am by Iain | Permalink

    Hi all

    I to am in the same position as Andre,
    I’ve got all the bits but no idea!! sorry.
    I’m using 104 leds LPD8806 + Arduino mega + SD card + LCD Keypad
    and I to live 5 hrs from London!!!
    I understand how your very busy on another poject at the munite Mick
    but if you can find a little time just to answer these few questions and point me in the right direction it would be much appreciated
    I have tried changing the writeRGB(r,g,b);
    to strip.setPixelColor(LED_number, strip.Color(r, g, b)); as you sugested but got the following error
    when trying to load the code
    ‘strip’ was not declared in this scope

    I have downloaded the zip file of the 8806 library, uncompressed it then renamed it but now don’t know what to do with it
    I’ve also tried removing the
    #define CLKPIN 32
    #define LATCHPIN 33 as the 8806 only has 4 wires – + DI and CI but this just brings up more errors. Also do I need to remove/rename all the any lines that refer to HL1606 or will that be sorted out by using the 8806 library file
    I have been successful in connecting the LCD + card reader (thanks to Vass) and even managed to change the backlight time out and #define striplength but am desperate now to bring it all working together.
    Please help
    Many thanks
    Iain

    • Posted November 1, 2012 at 1:04 pm by Andre | Permalink

      Hi Iain
      From your post I understand that you are working with 2 strips of 1meter of LPD8806 52leds per meter.

      If thats the case, then my guess is that you should be working with Phil Right file for dual strips and not with Micks file for HL1606

      But I don’t really understand much about arduino programming so I may be wrong.

      If I manage to find the solution to ake this work I will inform you. Please do the same for me.
      Good luck

    • Posted November 19, 2012 at 9:53 am by John | Permalink
  63. Posted October 26, 2012 at 7:31 pm by is0-mick | Permalink

    Hi Andre,
    Im about 5 hours north of london..
    I can try to help over the internet etc, but I will be unable to do any testing as I dont have any 8806 strip, so you’ll have to do the testing, or if you have any spare strip?

    I’ve got another project I’m currently working on so time is a little short also :(

    Mick

    • Posted November 1, 2012 at 12:58 pm by Andre | Permalink

      Once more thank you for your kind reply.
      I sent you an email

  64. Posted October 26, 2012 at 3:33 pm by Andre | Permalink

    Hi Mick
    Thank you for your answer.
    I have all the libraries including Phil Wright’s .pde to upload and also the one you made for the Hl1606. I even tried to combine them. But I couldn’t get it to work
    I don’t think I have enough knowledge to do these changes by myself.
    Do you live in London?
    Would you be willing to meet up so we would work on this?

  65. Posted October 26, 2012 at 2:28 pm by is0-mick | Permalink

    Just done a quick search on google and the library is here:
    https://github.com/adafruit/LPD8806

    You can use any pins you like by calling the following routine:
    LPD8806(uint16_t n, uint8_t dpin, uint8_t cpin); // Configurable pins

    In my code it uses a writeRGB, in the LPD8806 library it uses.

    strip.setPixelColor(position, strip.Color(red, green, blue));

    In my code theres a section called Post Frame which has a line called

    writeRGB(r,g,b);
    You would probably need to replace that with
    strip.setPixelColor(LED_number, strip.Color(r, g, b));

    You’ll nee a few other changes, but it shouldn’t be too difficult with a little work to get it working

    Mick

  66. Posted October 26, 2012 at 2:13 pm by is0-mick | Permalink

    I’d guess you’ll have to change my code to use the the library for the lpd8806, most libraries let you define what pins you want to use, so that bit is really up to you I’d guess.

    Currently the LCD+SD code uses the HL1606 strip, as that’s the only one I have. Unfortunately I dont have any 8806 strip to test with.

    Mick

  67. Posted October 26, 2012 at 8:36 am by Andre | Permalink

    Hi all
    I have gathered all the materials to build my DLW. I have a 52 leds lpd8806 strip + Arduino mega + SD card + LCD keypad. Can someone please help me and tell me what libraries I should use + what connecting points at the arduino?
    Thank you

  68. Posted October 18, 2012 at 6:39 pm by is0-mick | Permalink

    You could try to convert my code to use your library, and use the SD card and LCD?

    I’d have a go myself but I dont have any 8806 strip

    Mick

  69. Posted October 18, 2012 at 6:41 am by G Brooks | Permalink

    All sorted on that front!

    Just one major thing that’s bugging me now lol!
    I’ve built the setup with a 6 position switch, now it looks like I can’t use this with my 8806 strip and the generator program! :(

    Is there a way of doing this? it’s a pain just having 1 image to use otherwise.

    Gaz

  70. Posted October 13, 2012 at 7:04 pm by is0-mick | Permalink

    Yep,
    had a similar problem with my HL1606 strip. I guess some are wired different at the LED end.

    I had to change the code to swap the B and G

    //
    //My strip seemed to have B + G swapped so I altered it here!
    //
    if (Blue > HL1606highblue) colorByte |= 16; //Bright Blue
    else if (Blue > HL1606lowblue) colorByte |= 32; //Dim Blue
    if (Red > HL1606highred) colorByte |= 4; //Bright Red
    else if (Red > HL1606lowred) colorByte |= 8; //Dim Red
    if (Green > HL1606highgreen) colorByte |= 1; //Bright Green
    else if (Green > HL1606lowgreen) colorByte |= 2; //Dim Green

    That was from my SD + LCD code, not sure what you are using, but thats how I swapped them around…

    Mick

  71. Posted October 13, 2012 at 6:17 pm by G Brooks | Permalink

    Right, I’ve got it working, but the colours don’t match!!! Hmmm Any ideas?

  72. Posted October 13, 2012 at 11:02 am by G Brooks | Permalink

    Hi everyone,

    I’ve got the the 8806 strip (1m with 32LED’s). I have a problem now as the strip only has 4 terminals, but the version in the tutorial has 6 terminals!

    I gathered the +5V and the GND are the same, but I only have 2 others; DI and CI.

    Any ideas as to where they need to be wired up to on the mega 256? I don’t know where to go from here :( Please help

  73. Posted September 30, 2012 at 5:10 pm by is0-mick | Permalink

    Glad you got it working Vass :) I look forward to seeing some of the photo’s of it in action!

    I really should use mine more..

    Mick

  74. Posted September 28, 2012 at 4:43 am by Vass | Permalink

    Congrats on finding the problem guys, the SD card and LCD work fine with Micks LSB files

    It still didnt work on my files, until I reduced the LED strip size to 48 in the code generator, that was the problem, it’s not liking 64 LED’s

  75. Posted September 27, 2012 at 4:10 am by vass | Permalink

    I will give them a go, thanks Mick

    (Hope all is well with you)

  76. Posted September 19, 2012 at 11:55 pm by unlimited site map | Permalink

    Thanks for sharing your thoughts on sitemaps.
    Regards

  77. Posted September 19, 2012 at 3:34 pm by is0-mick | Permalink

    Sounds more like incorrect / faulty LSB files..

    Here are 3 that I used (they are for a 48 led strip)
    http://ge.tt/1LT182O

    Mick

  78. Posted September 18, 2012 at 3:52 am by vass | Permalink

    maybe my LCD is faulty?

  79. Posted September 17, 2012 at 12:08 pm by Vass | Permalink

    Thanks Phil
    I have created a brand new folder and thrown all your files into there, running that Arduino 0022 and uploaded Micks latest .code

    The LCD shows the files selctable, but once you hit select on one of them, the screen freezes with “Sending File Filename.LSB”

    no activity on the Arduino, no flashing lights, nothing.
    Wired as per my last post. so I’m getting the same result.
    It’s so close ! what can it be? +5v and GND from the LED strip are going to the same digital pins as the SD card, it that right?
    anything else to consider?
    Ta again
    Vass

  80. Posted September 17, 2012 at 3:40 am by Phil | Permalink

    Sorry completely forgot abou this – it is uploading now so give it 5 mins and there will be an Arduino-022.zip in my downloads directory http://www.wright-online.com/downloads

    • Posted November 1, 2012 at 1:13 pm by Andre | Permalink

      Hi Phil
      I am trying to build a digital light Wand with arduino mega + lcd keypad + sd card + dual strip LPD8806.
      This strip has 52leds/meter and data is clocked in in blue, red, green order instead of RGB.
      I believe you have built one DLW with dual LPD8806.
      Can you please help us with what connections and libraries should be used + settings for the code generator?

  81. Posted September 17, 2012 at 3:29 am by is0-mick | Permalink

    I’ll copy my whole arduino dir + project folder, but it’s on another hard drive, that used to be inside my laptop, so I need to dig out a usb > sata adapter etc, power supply, and then copy it and upload it, so It’s a little bit more complicated than just uploading it somewhere.

    Will try to do it today..

    Mick

  82. Posted September 17, 2012 at 2:24 am by vass | Permalink

    any update chaps ?

  83. Posted September 14, 2012 at 12:42 pm by Vass | Permalink

    We are getting there! success, the Arduino0022 is taking the upload without error after I used the SD from Phil here
    http://www.wright-online.com/downloads/SD.zip

    Now, the images are listed on the LCD, so we are so close!
    but, the “Sending File” just sits there for ever, nothing changes.
    Looks like this…
    http://s12.postimage.org/ffek32lyl/sendingfilehangs.jpg

    So the bit you wanted to check and fix first, looks good Phil.

  84. Posted September 14, 2012 at 8:17 am by vass | Permalink

    how about putting all the correct files in once place?

    Aduino 0022
    SD
    LCD
    RGBStrip

    and a definative SD sheild to Arduino Pin to Pin detail

    the LCD can only fit one way (+5v to +5v)

    Just an idea so we know we are all on the same page?

    thanks again for all your input guys, its really apprecaited.

  85. Posted September 14, 2012 at 7:58 am by is0-mick | Permalink

    sorry that should have read

    portoutputregister not defined in this scope

  86. Posted September 14, 2012 at 7:57 am by is0-mick | Permalink

    Lots of people seem to have the same error as vass using other libraries also..
    a quick google of

    outputregister not defined in this scope

    or the other related errors, seem to suggest it’s to do with the arduino version…

    Mick

  87. Posted September 14, 2012 at 6:15 am by vass | Permalink

    will try your SD code tonight, thanks Phil

  88. Posted September 14, 2012 at 5:33 am by Phil | Permalink

    Vass, you haven’t got as far as compiling the code yet, let alone it reading the SD Card – so we need to get that bit fixed first. Have you tried my SD card library?

    Thanks Mick, as it works on mine I want Vass to get his compiled first before I get him to make any changes. I can’t find any of the routines in his error log in my SD2Card.cpp file so I don’t know what is happening.

  89. Posted September 14, 2012 at 5:12 am by Vass | Permalink

    I have a new 16Gb card formatted and has only 6 images created using the DLW code generator and saved to the card directly.

    Maybe I should format differently? could that be it? Doent explain why the LCD will not run the basic “hello world” examples.

  90. Posted September 14, 2012 at 4:42 am by is0-mick | Permalink

    Hi Phil,
    that SD library has a bug in it.
    You need to add the following line:
    if (root.isOpen()) root.close(); // allows repeated calls

    (see my post about 5 down)

    Otherwise if you remove the SD card, it wont initialise it again..

    Mick

  91. Posted September 14, 2012 at 3:18 am by Phil | Permalink

    Hi Vass,
    I have uploaded my SD library to my downloads area on my website http://www.wright-online.com/downloads/SD.zip

    try overwriting yours with this one (version 022) and see how you get on.

  92. Posted September 14, 2012 at 3:08 am by Vass | Permalink

    Version .22 gives me the result from before
    with the same setup

    http://s16.postimage.org/xlydngfzp/sd2_error.jpg

    Are my pin selections right?

  93. Posted September 13, 2012 at 4:56 pm by is0-mick | Permalink

    I’m using 1.0 or 022 I think is its other name..

    Mick

  94. Posted September 13, 2012 at 4:11 pm by Vass | Permalink

    I’m at a loss, have no idea why mine will not work
    Non of the Examples that come with Arduino software will run the LCD, but a self typed Sketchbook works fine.
    I have the LCD plugged in correctly I’m sure (just like in your video)
    the SD card (LC Studio verion) is attached as follows
    GND to GND next to digital pin 53
    +5v to 5V next to Digital pin 22
    CS to Pin 53
    MOSI to Pin 51
    SCK to Pin 52
    MISO to Pin 50

    DLW to pins 30,31,32,33

    Now trying Arduino v 1.1

    but this is the result of an upload attempt
    http://s11.postimage.org/xijmhexib/problem.jpg

    Hope you can help

  95. Posted September 12, 2012 at 5:19 pm by is0-mick | Permalink

    Well the main bit would be to replace the code in this function with whatever commands your strip uses to write colours.

    void writeRGB(uint8_t Red,uint8_t Green,uint8_t Blue)
    {
    insert code here to control your strip…
    }

    You’d also need to initialise your strip at the start of the code..
    which is currently done here:
    LEDStrip mystrip(DIPIN,SIPIN,LATCHPIN,CLKPIN);

    Hope that helps

    Mick

  96. Posted September 12, 2012 at 4:20 pm by julien beaumont | Permalink

    Hi, I used mick code to get my sd and lcd working but it’s not for the ws2801 leds… Any Idea on how I can make it work ? Thanks

  97. Posted September 12, 2012 at 4:16 am by is0-mick | Permalink

    Not sure on that error, but here is a zip of my SD library, and the code etc.

    http://ge.tt/8jmslZM/v/0?c

    Mick

  98. Posted September 12, 2012 at 1:44 am by Vass | Permalink

    Thanks Mick
    I have taken the SD from the link you gave
    (full zip file)
    and used your latest code from here.

    Modifying the SD.cpp I have no idea how, can you upload a final file with this done at all?

    I only have a small error now
    see here
    http://s16.postimage.org/xlydngfzp/sd2_error.jpg

    any ideas? sorry for being a pain!
    cheers

  99. Posted September 11, 2012 at 1:10 pm by is0-mick | Permalink

    You should also modify SD.cpp in the SD folder to the following..

    /* Implementation of class used to create `SDCard` object. */

    boolean SDClass::begin(uint8_t csPin) {
    /*

    Performs the initialisation required by the sdfatlib library.

    Return true if initialization succeeds, false otherwise.

    */

    if (root.isOpen()) root.close(); // allows repeated calls
    return card.init(SPI_HALF_SPEED, csPin) &&
    volume.init(card) &&
    root.openRoot(volume);
    }

    ^^^^– That allows the SD card to be removed and inserted again while the thing is powered on, otherwise it just gets stuck in a loop :)

    Mick

  100. Posted September 11, 2012 at 12:02 pm by Phil Wright | Permalink

    It looks like you might be missing the on of the header libraries Check that you have the following three in place in the arduino libraries directory.
    SD.h
    LEDStrip.h
    LiquidCrystal.h

    SD.h can be found here I think (is0-mick might be able to confirm) https://github.com/adafruit/SD

    the other two are in the zip file you downloaded from my site to get the lightwand generator.

  101. Posted September 11, 2012 at 3:37 am by Vass | Permalink

    OK digital pics from the youtube vid, thank you.

    Now it seems almost happy, I’m running Arduino v22

    upload of the code fails with the following
    ‘void GetFileNamesFromSD(File)’:
    ‘class File’ has no member named ‘openNextFile’
    : ‘class File’ has no member named ‘isDirectory’
    ‘class File’ has no member named ‘name’

    Any ideas folks?
    thanks again
    new_LCD_and_SD_code:368: error: ‘class File’ has no member named ‘name’

  102. Posted September 10, 2012 at 2:46 am by Vass | Permalink

    Thanks Phil, that was the missing part of the puzzle

    Just need the wiring to the Digital pins on the Mega from the SD sheild now.
    (sorry the schematic I can’t understand)

    Ta for all the help

  103. Posted September 9, 2012 at 1:39 pm by Vass | Permalink

    I’m being really dumb

    the DLW code generator, I import a BMP and try to save it, but the filename offered is a .lwp (Save project as)
    I cannot find an option to save as .lsb

    • Posted September 9, 2012 at 2:17 pm by Phil Wright | Permalink

      Hi Vass, make sure you have SDCard selected in file, settings. You may have to exit the program and restart and then you will get a button appear that say’s “Save 4 SDCard”
      Hope that helps
      Phil

  104. Posted September 8, 2012 at 5:17 pm by is0-mick | Permalink

    No, you use phils code to generate LSB files.
    These are like bitmap files, if you select one of the options (can’t remember off hand) it lets you load a bitmap file, then you can save it as an LSB file.

    Just drop these LSB files onto the SD card.

    My code will scan the SD card’s root directory, and show all the LSB files there in a list on the LCD screen.

    Hope that helps

    Mick

  105. Posted September 8, 2012 at 9:09 am by Vass | Permalink

    phils code, is that the excel design version, or the DLW code generator that takes already designed bmp’s?

    Still confused sorry, am I putting bmp’s on the SD card, or lists of code from the code generator?

    Thanks

  106. Posted September 5, 2012 at 12:32 pm by is0-mick | Permalink

    Here is what I posted with links removed

    Posted August 31, 2012 at 4:39 am by is0-mick | Permalink Your comment is awaiting moderation.

    No, the code is downloaded from paste pin. The arduino never needs reprogramming.

    I use phils code to generate image files. such as skull.LSB which is like a bitmap file. You just put the images you want onto the SD card, then select the one you want to display from the LCD menu on the arduino

    I just used the LCD / Keypad shield and the SD reader here:

    Xxx.ebay.co.uk/itm/290621132853

    Xxx.ebay.co.uk/itm/180861495275

    All of the pins should be defined in the code. The SD used the default SPI pins, and the HL1606 strip pins are the ones defined in the arduino code at the start.

    I did a couple more tweaks to the code, the latest version can be found here:

    pastebin.com/V1a9qdpS

    Hope that helps

    Mick

  107. Michael Ross
    Posted September 5, 2012 at 12:31 pm by Michael Ross | Permalink

    Howdy everyone. I apologize for the delays in responding. Have been very busy lately. I will try to catch up this afternoon. :-)

  108. Posted September 5, 2012 at 12:21 pm by is0-mick | Permalink

    Yes, I replied 2 hours after you asked, but it says my comment is “awaiting moderation”

    Mick

  109. Posted September 5, 2012 at 2:49 am by Vass | Permalink

    is0-mick,

    can you elaborate on the setup please as per my last post

    thanks muchly

  110. Posted September 2, 2012 at 3:38 pm by julien | Permalink

    Hi, I have some issues with a ws2801 strand (https://www.adafruit.com/products/322)
    First, if I load a jpeg in phil’s code generator, it displays only on the first 12 leds…
    And if i make an image inside the code generator, it displays on all the leds but black remains lit…

    • Michael Ross
      Posted September 6, 2012 at 11:51 am by Michael Ross | Permalink

      Hi Julien, From the short description you provided, it could be a hardware issue or software settings. What settings do you have selected in the Digital Light Wand Code Generator? (Both the settings in the File/Settings area and the settings on the main screen). As far as lights remaining lit for black, it could either be the drivers or version of the Arduino software that you are using. (See some of the others that experienced something similar to this below) Please provide more details on what your setup is and I might be able to be a bit more specific. :-)

    • Posted September 7, 2012 at 5:01 pm by julien beaumont | Permalink

      Hi and thanks for your reply, here is my settings from file settings:
      Hardware Ws2801
      led strip size 24 (I cutted the last one from the strip)
      hardware spi led strip checked
      sdi spi 51 52
      ledpin 1
      compiler directory: the forlder where arduino 1.0.1 is installed

      settings from main page:
      number of leds 24
      led strobe on time 0.15
      the rest remaine by default

    • Posted September 7, 2012 at 5:02 pm by julien beaumont | Permalink

      I tried with another strip and another arduino board (Mega 2560 also) same result

  111. Posted August 31, 2012 at 4:39 am by is0-mick | Permalink

    No, the code is downloaded from paste pin. The arduino never needs reprogramming.

    I use phils code to generate image files. such as skull.LSB which is like a bitmap file. You just put the images you want onto the SD card, then select the one you want to display from the LCD menu on the arduino :)

    I just used the LCD / Keypad shield and the SD reader here:

    http://www.ebay.co.uk/itm/290621132853

    http://www.ebay.co.uk/itm/180861495275

    All of the pins should be defined in the code. The SD used the default SPI pins, and the HL1606 strip pins are the ones defined in the arduino code at the start.

    I did a couple more tweaks to the code, the latest version can be found here:

    http://pastebin.com/V1a9qdpS

    Hope that helps

    Mick

  112. Posted August 31, 2012 at 1:04 am by Vass | Permalink

    Ok, so you use phils program to create the code, you then paste these all together in one text file and put it on the SD card? How do you name them and separate each design? Or did you mean you put the .bmp’s on the SD card? Also, what’s the wiring for the SD shield to the arduino? Which pins go where? Thanks in advance

  113. Posted August 30, 2012 at 5:24 pm by is0-mick | Permalink

    Ooops meant LSB files not pde.
    Also you can adjust the delay via the left an right keys.

    The source code is posted in comments further down, or here is the link.

    http://pastebin.com/qHdt30Rh

    Mick

  114. Posted August 30, 2012 at 5:18 pm by is0-mick | Permalink

    Yes, I used phils program (slightly modified as I removed some of the smoothing, and had to swap some colours / values if I remember) to create the pde’s. Then just drop them onto the sd card.

    My Arduino code then scans the sd card, and sorts the filenames into an alphabetical list, and displays them on the LCD screen.

    An early version (without the alphabetical sorting) can be seen on youtube here..
    http://www.youtube.com/watch?v=6s00ZIf0lrw

    Mick

  115. Posted August 30, 2012 at 6:30 am by Vass | Permalink

    is0-mick, awesome, just what I need.

    Are you still using the light wand code generator?

    Can you explain how your getting the designs onto the card?

    I presume just plug in the LCD and the SD card sheilds or is there more to this?

    photos, tutorial, etc ? much apprecited if possible

    thanks in advance
    Vass

  116. Posted August 30, 2012 at 5:31 am by is0-mick | Permalink

    I made a version a while back that uses the Arduino with a SD and LCD with a menu to select the images sorted in alphabetical order. (code is posted in the comments below).

    I think the rasberry pi would be a bit overkill myself..

    Mick

  117. Posted August 17, 2012 at 7:49 am by GBrooks | Permalink

    I’ve got myself a Raspberry Pi and i’ve noticed this has an SD slot on it! Possibility of storing so much more than an Arduino board!

    I’ve seen a couple of pics with the Raspberry Pi already and they’re amazing

  118. Posted July 17, 2012 at 4:41 pm by Julien | Permalink

    Hi and thank you for your great work, I already made a wand with the HL-1606 strip and it works fine, now I’m trying to make another one with a WS2801 12mm 25 led by strip: https://www.adafruit.com/products/322
    does anyone knows how to make it work with phil’s code generator ?

  119. Posted June 26, 2012 at 6:06 am by Phil | Permalink

    Wherever possible use .PNG files rather than .JPG as the JPG Codec in windows automatically tries to smooth out the image (causing grey or colour shaded pixels). When you have a large number of pixels (like on a monitor) it looks great but when you only have 16, 32 or 64 pixels/LEDs it causes problems. Using .PNG files will make sure the pixels are not blended, and give you more accurate results.

    • Posted June 28, 2012 at 1:18 pm by Seth | Permalink

      Phil, you s/w does not seem to let me import PNG. Do i rename to a bitmap and import?

      • Michael Ross
        Posted June 28, 2012 at 1:24 pm by Michael Ross | Permalink

        I think if you just type the file name into the dialog box, it will import it. (provided you are in the proper folder). The dialog box is limited to displaying JPG, BMP, and LPJ files but you can still type in the name of a PNG file if you want.

  120. Posted June 25, 2012 at 4:20 pm by Vass | Permalink

    We design in photoshop, the save as bmp and use the code generator. Just keep a few lines black and they don’t light for us.

    If too bright and losing colour in the photo, adjust apeture to cut the light getting through.

    • Michael Ross
      Posted June 25, 2012 at 5:29 pm by Michael Ross | Permalink

      Thanks VASS! Good Point!

      The HL1606 strips don’t give you much flexibility with brightness levels. The other two strips however, give you a LOT to play with on the color and brightness levels side of things. Seth sent his image to me so I could see what he was seeing and yes… the LEDs are super bright and the best way to deal with the brightness levels is to close down the aperture (I always use f16 to f22 range with them) and or lower the ISO if possible. There is also the option of playing the program faster and moving the lightwand faster as well.

      I usually use Photoshop to reduce the pixel size of the image and lower the brightness levels to help tone things down a bit also. :-)

      • Posted June 26, 2012 at 3:58 pm by eric | Permalink

        solvet that problem, it was my hl1606 but its kinda fixed now, now i only have the problem that red and blue is changed

        • Michael Ross
          Posted June 26, 2012 at 4:01 pm by Michael Ross | Permalink

          Read further down in the history of comments. Others have had this problem as well. I think you can fix it by making sure the library is up to date with the one supplied with Phil’s program. I also think others have fixed it by going back to version 22 or 23 of the Arduino software.

    • Posted June 26, 2012 at 3:15 pm by eric | Permalink

      Hi there Ross, i have gotten a hl1606 now and trying out your code, dosent seem to get the leds to light upp when i use the pins 30-33 as in the code, any ideas ?
      everytign seems to be right in the generator software aswell

      • Michael Ross
        Posted June 26, 2012 at 3:41 pm by Michael Ross | Permalink

        Hi Eric, Are you using the spreadsheet or the Lightwand Code Generator? The HL1606 strip has 6 connections. Power (+5v), Ground (GND), Serial (S-I), Data (D-I), Clock (CK-I), and Latch (L-I). In the tutorial I have them connected to the following Pins on the Arduino
        GND ‐> Connect to GND Pin on the Arduino Mega
        S-I ‐> Connect to PWM Pin 9 on the Arduino Mega
        D-I ‐> Connect to PWM Pin 10 on the Arduino Mega
        CK-I ‐> Connect to PWM Pin 4 on the Arduino Mega
        L-I ‐> Connect to PWM Pin 3 on the Arduino Mega
        +5V ‐> Connect to 5V Pin on the Arduino Mega

        Make sure you use the INPUT side of the HL1606 strip and NOT the OUTPUT side. Input is identified by the “I” in the S-I, D-I, CK-I, and L-I on the strip. Also, I am not sure why you went with pins 30-33 but those are Digital Pins on the Arduino Mega and the code might not work the same with those as they do with the PWM pins on the Arduino. So I would use the pins I specified in the tutorial. At the very least, just to make sure things are the same.

        Also, it would help if you would be as specific as possible in your setup if you continue to experience problems. The more information we have about the setup, the better off we all will be in troubleshooting it. :-)

  121. Posted June 23, 2012 at 10:17 pm by Seth | Permalink

    Is there a trick to getting black (led off)? I’m using Phil’s code generator and what I think is black is actually still lit?

    Hope that makes sense!

    • Michael Ross
      Posted June 23, 2012 at 10:24 pm by Michael Ross | Permalink

      I would guess that it would have to be black in the original image (RGB Value of 0,0,0 or 000000). Can you email the original image to me so I can take a look at what it is doing? MichaelRRoss@Verizon.net

    • Posted June 24, 2012 at 8:19 pm by Seth | Permalink

      Michael, how would I check the value?

      • Michael Ross
        Posted June 24, 2012 at 8:36 pm by Michael Ross | Permalink

        Well, if you didn’t create the image, I am not sure how to tell you to see what the value is for specific pixels in an image that already exists. I can only assume that if the lights are still on on the strip, then it must not be absolute “black”. To ensure that specific pixels are absolute black, you can open the image in MS Paint, select the black color and make sure each pixel that you want to be black is set to that color. I think Phil added a basic pixel editor in the DLW Code Generator program so you might be able to use it, but I haven’t used that part of the program so I do not know how it works.

      • Posted June 25, 2012 at 3:44 pm by Seth | Permalink

        OK, I think I see the issue. I am getting some true blacks. Where I have the issue is with importing Jpgs. It seems like the brightness is cranked way up so tyhe colors are washed out and bright. Is there a way to adjust this?

        • Michael Ross
          Posted June 25, 2012 at 3:59 pm by Michael Ross | Permalink

          Not in the Lightwand Code Generator. If the image is that bright where it is causing brightness issues in the code generator, then you will have to use another program to lower the brightness levels of the image before it is imported. I am throwing out some general suggestions. Without the specific image to troubleshoot and see what you are seeing, I can only guess.

  122. Posted June 20, 2012 at 9:38 am by Seth | Permalink

    Ahh, so even if I have 64 LED’s the S/W will drive only the led’s that its programed for?

    If so this is great. I am going to look for some way to snap extensions on!

  123. Posted June 20, 2012 at 9:24 am by Vass | Permalink

    Hi Seth
    There is no reason why not.
    You’d have to think about supporting the connections as you go longer.

    If you dont mind waving a 2mtr wand about, you can opt just to light the first 16, 24, 48, 64 LEDs of course. The rest just won’t show up unlit.
    Cheers :=-)

    • Posted June 20, 2012 at 12:50 pm by Jade | Permalink

      I don’t see why this wouldn’t be possible depends on the connection though as it will add a gap to the strip I personally use a nine pin connector only using four of the pins same style as a monitor cable I was thinking of just using a similar connector on different size wands good luck

  124. Posted June 20, 2012 at 8:27 am by Seth | Permalink

    Hi Guys, I am crazy excited to build a wand. My parts should arive today. I have a question. Can I, or has anyone made a scalable wand? I was thinking of making some sort of detachable stick with some sort of connection. So I can have a 16 led strip or put on an extension to 48 or 64.

    Would this work?

    • Michael Ross
      Posted June 20, 2012 at 1:01 pm by Michael Ross | Permalink

      Yep! As the others said, it will work just fine. About the only problem I see with it is that you are adding more connections, which will in turn add more opportunities for problems to come up. Also, when you cut the strip, make sure you are doing so on the cut lines. And try to be fairly precise with this as well. If you get it off a little bit, there is the possibility of cutting through another trace in the circuit and that will just cause you grief. ;-)

  125. Posted June 17, 2012 at 11:17 am by Vass | Permalink

    cheers Phil, probably going to raise more Q’s than it answers.

    I built the wands with the rotating 6 position switch, but obviously the Mega has memory limitations, plus the code generator doe not include this feature.
    Any plans to roll this out or will bluetooth be the way forward (is suspect the latter)
    Or, has this project ended? I see i’m a bit late coming to the game
    cheers

  126. Posted June 17, 2012 at 8:48 am by phil | Permalink

    The schematic is here for SDCard.

    http://www.wright-online.com/downloads/LED%20Light%20Wand%20with%20SD%20Card%20Schematic.pdf

    The bluetooth was just concept design i put together i can let you have the code if you wish but it is very basic

  127. Posted June 17, 2012 at 6:59 am by Vass | Permalink

    not wanting to thread nap

    but I have some 8806 strip too

    on eBay

    Item number: 120931700712

  128. Posted June 17, 2012 at 5:48 am by Vass | Permalink

    Hi Jade
    £ 60 inc postage to UK for 2 metres.

  129. Posted June 17, 2012 at 5:40 am by jade stewart | Permalink

    Hi Vass

    I was thinking of building a 2nd wand
    so would love some extra led strip

    how much would you want for around 2 meters.

    thanks jade

  130. Posted June 17, 2012 at 3:11 am by Vass | Permalink

    Hi folks, with gratefull help from Tx I got 2 wands working. Both using HL1606 64 leds and Arduino version 22,
    If anyone in the UK wants a length of LED strip, I have approx 3metres left over.

    I followed the PDF build instructions to the letter and apart from using an updated Arduino program then going down to 22 it all worked faultlessly.

    Now I want to add the SD card and bluetooth design change from my phone. Is this build change published anywhere?

    Thanks again.
    Vass

  131. Posted June 16, 2012 at 4:03 pm by Phil | Permalink

    make sure the sdcard is freshly formatted and only the lightwand bitmaps on it

  132. Posted June 15, 2012 at 4:32 pm by Phil | Permalink

    The lightwand generator code for windows converts the JPG, BMP or PNG bitmap to a format that the readbitmap.pde can read from the SDCard. So generate the bitmap first and save it to the SDCard and then compile and upload the readbitmap.pde through the Arduino Compiler and it should read in the file, display what it is doing on your LCD screen and drive the LEDs.

  133. Posted June 14, 2012 at 3:56 pm by marm | Permalink

    Hey miek do you have a ws2801 version of your awsome code

    • Michael Ross
      Posted June 15, 2012 at 12:59 am by Michael Ross | Permalink

      Hi marm! The Lightwand Code Generator that Phil created will generate code for eht ws2801 strips and led pixel chains. I don’t have a version of the spreadsheet for the WS2801 but I could probably come up with one if there was interest in it.

      • Posted June 15, 2012 at 2:47 am by marm | Permalink

        oh yes, but i was more thinking of the loader code for sd cards and lcd screen. was reading about mike´s code ^^

        • Posted June 15, 2012 at 5:08 am by Phil | Permalink

          Hi Marm, The readbitmap.pde in the main download zip is the code for the LPD8806 and the sdcard bitmap reading, but the LPD8806 and the WS2801 are very similar, so it should just need a change in the post_frame() subroutine. Basically remove the two writeRGB(0,0,0,StripControlx) lines and insert a delay(50) instead and it should work if I remember correctly – sorry not played with this for a few months now.

          Eric below in this blog is also trying to do the same thing – might be worth you working together on it :)

          • Posted June 15, 2012 at 3:43 pm by marm | Permalink

            So what does that bitmap do ? read bmp files to led information? or use generator files

  134. Posted June 14, 2012 at 7:40 am by jade | Permalink

    I’ve been using my light wand to recreate the light graffiti effect in video using kdenlive’s light grafite plugin.

    http://www.kdenlive.org/users/granjow/writing-light-graffiti-effect

    Heres a Video I created for a honours project at university

    http://www.youtube.com/watch?v=CRBi-_IuRFw

    any comments more than welcome

    I’m thinking of creating a tutorial detailing how it’s created would love to know what people think

  135. Posted June 14, 2012 at 7:26 am by Phil | Permalink

    Glad to hear you have it working :)

    .PNG files work best

    Just ignore the led pin it doesnt do anything

  136. Posted June 14, 2012 at 6:21 am by Dirk Wohlrabe | Permalink

    Yeapeee!!!! I installed it on my Laptop 8740w HP and it works. I have a last question, in the Generator you can set the LED pin, what must i set there? Sorry my english is bad.

  137. Posted June 14, 2012 at 5:20 am by Phil | Permalink

    That’s a problem with the compiler uploading to the board, I suggest a reboot of both the PC and the arduino controller.

    Have you managed to send anything to the Arduino yet?

    • Posted June 14, 2012 at 6:39 am by Dirk Wohlrabe | Permalink

      Sorry, another question: Which Picture have the best solution for the wall? Pixel?

  138. Posted June 14, 2012 at 4:43 am by Phil | Permalink

    Yes that’s right, but if you are still having problems then I would go to the Arduino-022 version, you won’t lose any functionality and the two versions can co-exist

    • Posted June 14, 2012 at 4:57 am by Dirk | Permalink

      Ok, i have do this , now i can compile, but upload says:

      Binary sketch size: 20224 bytes (of a 126976 byte maximum)
      avrdude: stk500_getsync(): not in sync: resp=0×00
      avrdude: stk500_disable(): protocol error, expect=0×14, resp=0×51

      • Michael Ross
        Posted June 14, 2012 at 11:15 am by Michael Ross | Permalink

        Hi Dirk, I apologize for the delay in getting back to you. I had just gone to bed it looks like when your first email came in and I had some errands to run this morning so I am just now getting back to respond. Thanks for helping him out so quickly Phil! :-)

        One note I want to add here, and it looks like you might be experiencing the problem with your first installation, I have had to load the latest Virtual Com Port Drivers to a few computers to get them to work with the Arduino software. I added a note to that effect in the header of this page. The drivers can be found on the FTDI website at http://www.ftdichip.com/Drivers/VCP.htm

        I have also run into a few installations where the drivers had not been loaded for the Arduino board itself and this showed similar errors. You need to make sure the drivers for the Arduino are loaded properly and make sure the VCP drivers are up to date as well.

        Glad you got it going either way! :-)

  139. Posted June 14, 2012 at 4:07 am by Phil | Permalink

    Did you copy the RGBStrip.cpp and RGSBStrip.h from the 1.076 download over the top of the default libraries?

    • Posted June 14, 2012 at 4:16 am by Dirk | Permalink

      Hello, the files are LEDStrip.cpp, LEDStrip.h and WConsants.h, i copied to libraries/RGBStrip/
      Is that correct?

  140. Posted June 14, 2012 at 3:43 am by Dirk | Permalink

    Hello, i use the 64 LED Stripe and the Lightwand Code Generator 1.0.0.76, the librarys are copied to the compiler, but i can´t compile this. Because the error is:

    C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp: In constructor ‘LEDStrip::LEDStrip(int, int, int, int)’:
    C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:41: error: ‘LOW’ was not declared in this scope
    C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:41: error: ‘digitalWrite’ was not declared in this scope
    C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:42: error: ‘OUTPUT’ was not declared in this scope

    What´s wrong?

  141. Posted June 13, 2012 at 3:38 pm by Phil | Permalink

    A number of the libraries seem to have problems with version 1.0 of the compiler, try version 022 for now (they can coexist), i did find out what needed to be done but don’t have it to hand at the moment (it was a change you have make in each header file)

    • Posted June 14, 2012 at 3:19 pm by eric | Permalink

      oh i see, how gotten the code to run on my screen but i changed to liquidcrystal and not that ic2 thing, now i have problem that it dosen seem to find the files, i only get end of bitmaps, that i dont understand what it really means.
      does the sd card have to have someting sepcial about it and what files can i upload to the sd

  142. Posted June 13, 2012 at 2:36 pm by Phil | Permalink

    the readbitmap.pde in the main download zip is the code for the LPD8806, but the LPD8806 and the WS2801 are very similar, it should just need a change in the post_frame() subroutine. Basically remove the two writeRGB(0,0,0,StripControlx) lines and insert a delay(50) instead and it should work if I remember correctly – sorry not played with this for a few months now.

  143. Posted June 13, 2012 at 2:18 pm by eric | Permalink

    anyone have code for Digital LightWand + SD + LCD but ws2801 compatible ?

  144. Michael Ross
    Posted June 11, 2012 at 6:54 pm by Michael Ross | Permalink

    I just released a tutorial to make a Programmable Orb Tool based on the same technology as the Digital Light Wand. http://www.flickr.com/photos/txross/7355905098
    It uses a WS2801 based LED chain and shows how it is connected to communicate using SPI on the the Arduino. There are some supporting photos that show the basics of how the Lightwand code generator uses an image to code the light sequences.
    Cheers! :-)

  145. Posted June 11, 2012 at 3:40 pm by jesse valaouro | Permalink

    oh i see, how does the software generator work with the program selector then ? :)

    • Michael Ross
      Posted June 11, 2012 at 6:51 pm by Michael Ross | Permalink

      Hmmm. Not sure I understand what you are asking. Do you mean with the Rotary Switch to be able to select different programs?

  146. Posted June 7, 2012 at 5:27 am by jesse | Permalink

    and i have another questing :D and sorry for being kinda dumb :P but is there any documentation about how to get the sd card installed and what i need to add to the code, for it to read the light data files :3

    • Michael Ross
      Posted June 7, 2012 at 6:31 pm by Michael Ross | Permalink

      Hello again Jesse. I personally have not tried to add a display or SD card into the mix so I really do not know where to tell you to start. I think a few others might have done this in the past, but I dont know if they have made any of their work with these public. Sorry I could not give you a better answer.

  147. Posted June 5, 2012 at 2:08 am by jesse | Permalink

    have gotten the code to compilate, it was a bugg in the libareries, but i am using the ws2801, and i have problems connecting it to the arduino mega, could sombody explain moar to what pins i shuld connect the four cables, 5+v and gnd is obvius but where shuld i put the 2 last ones

    • Michael Ross
      Posted June 5, 2012 at 9:34 am by Michael Ross | Permalink

      Hi Jesse,

      Okay… here are the connections that I use for SPI with the WS2801 devices. You should only have 4 connections, one of them is 5v power, one is Ground, the other two I have connected to pins 51 (Serial) and 52 (Clock). The settings in the Lightwand Code Generator are as follows. Select the WS22801 strip. Make sure the Hardware SPI LED Strip checkbox is checked. Under the Arduino Pins section of the settings, the Serial Pin pin needs to be set to 51 and the Clock Pin needs to be set to 52. That should be it for the settings.

      On the main screen of the Lightwand Code Generator, make sure you have the LED Strobe ON Time set to a number greater than zero or you will probably just see the strip flash repeatedly. I usually us a time of .15 seconds if I am going to be walking with the strip. That should get you going. Let me know if you have any further issues with it. :-)

    • Posted June 5, 2012 at 12:26 pm by jesse valaouro | Permalink

      Hi there ! i have gotten it to work now, i belive, but my colors seems wrong, dont know what can be the error but i tryed a rgbled test program, and it painted blue as orange. :) but iam working on it, thanks Michael :)

      • Michael Ross
        Posted June 5, 2012 at 2:12 pm by Michael Ross | Permalink

        Hi Jesse, This has come up before. try replacing your RGBStrip library files (LEDStrip.h and LEDStrip.cpp) with the version contained in the 3rd party libraries/rgbstrip directory that Phil placed in the Lightwand Code Generator zip file. See if that will fix the color issues.

        • Posted June 6, 2012 at 6:21 am by jesse valaouro | Permalink

          ah i see, i have fixed it in the arduino code thoe, changed
          SPI.transfer(b);
          SPI.transfer(g);
          SPI.transfer(r);
          digitalWrite(StripControl1, LOW);
          insteed of rgb :)

          • Michael Ross
            Posted June 7, 2012 at 6:33 pm by Michael Ross | Permalink

            Interesting. Thanks for posting what you did to fix the problem. :-)

  148. Posted June 4, 2012 at 12:38 pm by jesse valaouro | Permalink

    so this code the software generates, is is the only code i need in the arduino to get this to work ?
    and when i convert a jpg i get this error when i try to compile it in the ardunio software.

    bas.cpp: In function ‘void loop()’:
    bas.pde:-1: error: ‘pgm_read_byte_far’ was not declared in this scope

    • Michael Ross
      Posted June 4, 2012 at 4:42 pm by Michael Ross | Permalink

      Hi Jesse, Can you provide some more details about your setup? It would be helpful to know what versions of software you are using for the Arduino Software and also the Lightwand Code Generator. Also, please make sure that you have the Arduino software set up completely including loading the drivers for the Arduino board and the library files copied to the proper folder in the Arduino setup for the Light Strip. Which light strip are you using? What pins on the Arduino is the light strip connected to. Do you have the settings set up properly in the Lightwand Code Generator? There are a lot of variables that can cause issues if you do not set everything up correctly. So the more information we have on your setup, the easier it will be to troubleshoot the problem. :-)

    • Posted June 5, 2012 at 2:14 am by jesse | Permalink

      iam using this rgb strip
      http://www.ebay.com/itm/1m-RGB-LED-Light-Strip-5V-WS2801-Bonus-32-LEDs-Waterproof-Addressable-Color-/160810882132?pt=LH_DefaultDomain_0&hash=item2571135454#ht_3220wt_954

      And i am using the latest ardunio compiler and the latest light software aswell, and when i try to connect the rgb strip with the hardware spi enabled, i dont get it to flash, but when i remove it and use the pins 52 -50 i get the hole strip to blink but not to change color, so i would like some clerification about what pins ishuld use when using the ws2801, and settings for it

  149. Posted May 24, 2012 at 3:25 am by Miguel | Permalink

    we got it working :)
    the entire strip 64 RGB leds are all working.
    Many thanks for this guide!!

    When I have the results they will be on my blog and on Flickr with a reference to you!

    Cheers,
    Miguel

  150. Posted May 23, 2012 at 6:29 am by Scottish Dave | Permalink

    Hi Phil,
    Thanks for sharing your great software, I would be lost without it.
    I’ve finally finshed building my 2m stick with wireless programming and I’ve been running some test code. I have noticed that if you set the “End Delay” to 0, then the generated code lacks the final blank_strip() command, leaving some LED’s on at the end of the image.

    With End delay set to 0 the last lines are post_frame();
    delay(50);

    With End delay set to 1 the last lines are
    post_frame();
    delay(50);
    }
    blank_strip();post_frame();
    delay(1000);

    See what I mean ?

    PS I’m thinking of running dual strips – can you point me in the directions of any tips on how to use your software with 2 offset strips ?

  151. Posted May 7, 2012 at 5:11 pm by Jade | Permalink

    Hi there, wonderful tutorial it really helped me to build my light wand. However I am having some slight issues.

    I’m using Phil’s wonderful programme I’ve got my Arduino mega running. I’m using the ground and 5v pin slots to connect the power slot 51 & 52 for the clock and data yet it doesn’t seem to be outputting anything. (I’m using the LPD8806 strip with 66 LEDs’).

    Any advice would be very, very welcome…

    • Michael Ross
      Posted May 7, 2012 at 5:54 pm by Michael Ross | Permalink

      Hi Jade! Thanks for the comment! :-) I am on the road with limited access to the internet but I wanted to throw some things to check out there while I had a connection. First off, in the DLW Code Generator, go into the settings and make sure you have the right strip length, type, and Pin settings for your set up. I might have another connection again layer or tomorrow so I will check back when I can.

      • Posted May 8, 2012 at 7:57 pm by jade | Permalink

        Hi Michael again thanks for any help you can give.

        i seem to have fixed the connection issue but when im outputing a image im only getting what seems like one line of the image

        Thanks again

        Jade

      • Posted May 9, 2012 at 5:05 pm by jade | Permalink

        I have managed to figure out what the issue was. it appears I needed to set the strobe interval on Phil’s program now that thats done it works thanks for your help.
        If theres any tips you can give that would be great.

        Jade

        • Michael Ross
          Posted May 10, 2012 at 3:50 pm by Michael Ross | Permalink

          Very cool! Glad you got it going. I just got back in town from my trip yesterday so I am playing catch up! :-) Work on playing with the timing until you find a time (mainly the strobe on time) that you feel comfortable with. Other than that, it is only limited by your imagination really. Good luck with it and if you have any ideas, suggestions or problems, let me know. :-)

    • Posted May 8, 2012 at 2:25 pm by Jade | Permalink

      it actualy seems to be working after messing wit it most of last night thank god

    • Posted May 21, 2012 at 3:13 am by Phil | Permalink

      Hi Jade,

      In short, not from me as I don’t have a Mac!

      But the source code is available if anybody wants to give it a go!.

      Cheers

      Phil

  152. Posted April 26, 2012 at 5:05 pm by huck alexander | Permalink

    Your successes in creating such a great tool for light painting really made me think about how I could make the same idea work.

    I posted my achievements on the Instructables forums. My latest version uses 16 blue LED’s. Not able to post photos here at this time. I am having some issues in getting the two analog pins to work correctly using arduino.

    I have my eye out for an HL-1606 now, as your color range is very impressive.

    Thank you for sharing all of your work! Kudos!

  153. Posted April 20, 2012 at 10:45 am by Ben | Permalink

    love it. could it be possible to have a longer strip but have it in rows that were effectively connected in one long strip to make a screen. I presume each led can be programmed to come on separately and at what ever colour. sorry for repeat but forgot to click the notify me by email of replies

    • Michael Ross
      Posted April 20, 2012 at 11:30 am by Michael Ross | Permalink

      Hi Ben,
      Yes, it is possible. The strip itself is not that flexible so you would have to cut it and using wiring to make a “U-Turn” with it to mount it like that. Also, you would have to go with an external source of power if you plan on driving a really long strip or keep it running for long periods of time. :-)

  154. Posted April 12, 2012 at 9:26 pm by leur salaire minimale de l'è„¡tat | Permalink

    Youre so cool! I dont suppose Ive read anything like this before. So nice to seek out anyone with some authentic thoughts on this subject. realy thank you for starting this up. this website is one thing that is needed on the web, someone with a little originality. helpful job for bringing something new to the web!

  155. Michael Ross
    Posted April 5, 2012 at 4:42 pm by Michael Ross | Permalink

    Here is a general note on some of the HL1606 Strips being shipped out of China. Some of these are being made with 12 volt input as opposed to the 5 volt version used in the tutorial. There are also only 4 connections on the strip as opposed to the 6 connections shown in the tutorial. This strips can still be made to work but you will need to use 8 AA batteries to power both the strip and Arduino board directly instead of a 9 volt battery to power the Arduino and the the 5 volt supplied from the Arduino board to power the strip. The four connections on the strip are labeled D, C, S, and L, and the power is applied to the D, and L connections (D = Positive (+), L = Negative (-)) along with using them for the Digital and Latch functions they are labeled for as well. Hope this helps the next person that runs into this. The 5v version is still being sold as well, so just check the specs for the strip you are ordering before purchasing. :-)

  156. Posted April 4, 2012 at 3:58 pm by tom | Permalink

    I am having a hard time finding the right type of RGB strips. Do you by chance have the model number? Every time i search for hl1606 it cancels out and just searches for the rgb strip itself. Better yet would you tell me where you can purchase it from? And thank you so much for this tutorial and the inspiration!

    • Michael Ross
      Posted April 4, 2012 at 5:09 pm by Michael Ross | Permalink

      Hi Tom. The H1606 strip is still being made but I do not think Adafruit.com carries it any longer. They have started selling the more capable WS2801 and LPD8806 strips instead. I am still buying the HL1606 strip in 5 meter rolls but I am not sure were you might be able to find it in shorter lengths. I can sell you a length of it if you would like. Just email me and let me know how much you are looking for and what your shipping address is so I can let you know full cost with shipping. My email addy is MichaelRoss@REMOVETHISverizon.net (just take out the REMOVETHIS in that email address. ;-)

    • Posted April 5, 2012 at 10:42 am by tom | Permalink

      Michael, I tried to send an email but it was sent back to me saying it was unreachable. I did remove the remove this part from it. Any way to email you differently?

  157. Posted February 28, 2012 at 2:38 pm by is0-mick | Permalink

    I had a similar problem when I was creating the SD + LCD code for my wand.

    I just changed phil’s program by changing the lines that write the colours to the bitmap as it seems my HL1606 strips were wired different.

  158. Posted February 14, 2012 at 2:09 am by Evan | Permalink

    When importing this BMP into the Lightwand Code Generator, pasting the code it generates into the Arduino 0022 software, then uploading it to the Ardunio, the LEDs render the YELLOW pixels as PURPLE, and the orange ones as red:

    http://dl.dropbox.com/u/3893347/aaa/youtube%20banner.bmp

    Interestingly… When importing THIS RAINBOW BMP into the Lightwand Code Generator, pasting it into the Arduino 0022 software, and then uploading it to the Ardunio, The LEDs render the colors to be expected, only with slight misinterpretations as it gets darker.

    http://dl.dropbox.com/u/3893347/aaa/rbow.bmp

    You can see screenshots of both designs in the Light Wand Generator here:

    http://dl.dropbox.com/u/3893347/aaa/ytub2.JPG

    http://dl.dropbox.com/u/3893347/aaa/rbow2.JPG

    • Posted February 15, 2012 at 6:49 am by Phil | Permalink

      Hi Evan,

      Two things,

      1) It looks like you are using an old version of my program so probably best to download v76 from http://www.wright-online.com/downloads
      2) There appears to be at least two versions of the HL1606 strips out there that have the colours swapped, try replacing your RGBStrip library files (LEDStrip.h and LEDStrip.cpp) with the version contained in the 3rd party libraries/rgbstrip directory of the zip file you have downloaded in step 1 above.

      Cheers

      Phil

      • Posted February 16, 2012 at 6:07 pm by Evan | Permalink

        Hey Phil, it looks like I was already using V76, so I just replaced the library files and it works now! Thanks!

  159. Posted February 3, 2012 at 5:25 pm by Phil | Permalink

    Good point mike i have seen that as well

    • Posted May 20, 2012 at 8:08 pm by Jade | Permalink

      Hi phil quick question I mainly run a mac based system so I’ve had to install boot camp to a desktop mac we have here but I cant bootcamp my macbook for various reason so my question is is there likely to be a version of your wonderful program that can be used on os x

  160. Posted February 3, 2012 at 5:06 pm by Phil | Permalink

    Could be :)

  161. Posted February 3, 2012 at 12:57 pm by Dave | Permalink

    Hi,
    First of all thank you for creating this website – unfortunately I found it after I build my stick….
    I’ve been using an UNO, but have just bought a MEGA to use Phil’s program (with a LPD8806 strip)

    I cannot get the strip to light up when using Phils program – I have tried both SPI and clock/data pins. The strip is not broken – it works with code I wrote by hand but not the code generated by the software.

    My best guess is it have something to do with the LED pin variable you set in the preferences – can anyone tell me what it is for please ?

    Thank you.

    Dave

    • Michael Ross
      Posted February 3, 2012 at 1:00 pm by Michael Ross | Permalink

      Hi Dave,

      Can you tell us exactly which pins you have each of the 4 connections on the LPD8806 connected to on the Arduino? Also, which version of Phil’s program are you using?

      • Posted February 3, 2012 at 2:46 pm by Dave | Permalink

        Hi Michael,

        Thanks for replying so quickly – I have the data/clock set to pins 2 and 3 respectively, The ground goes through the arduino to the strip and the +5v goes straight to the strip. I used the diagram 2/3 the way down this page as an example – http://www.ladyada.net/products/digitalrgbledstrip/index.html.

        • Posted February 3, 2012 at 2:48 pm by Dave | Permalink

          PS – Sorry, am using the latest version of the software, downloaded it a couple of days ago (after spending 2 days writing my own, much inferior spreadsheet based tool)

    • Posted February 3, 2012 at 4:07 pm by Phil | Permalink

      Hi Dave,

      Can you confirm if you are using an UNO or MEGA with my software.

      I have only tried a mega with my program but reckon an UNO should work.

      Try a very small bitmap first (50 pixels wide), make sure the clock and data are pins 51 & 52 onn the mega and software is set to hardware spi.

      I fly off on holiday for a week on sunday so if you can reply tomorrowmi will try and help further

      Kind regards

      Phil

      • Posted February 3, 2012 at 4:29 pm by Dave | Permalink

        Hi Phil,

        Thank you for sharing your software. I am using a MEGA. I’ll try your suggestion now and let you know how I get on.

      • Posted February 3, 2012 at 4:35 pm by Phil | Permalink

        hi Dave,

        My last post may have been confusing

        Pin 51 shoulld be data and pin 52 should be clock

        The reasoni suggested less than 50 pixels is to make sure the code generated is less than 64kb in size – depending on the bitmap you can try much larger than 50 pixels wide but until itbiss compiled i have no way of checking in my program.

        Good luck

        Phil

        • Posted February 3, 2012 at 4:38 pm by Phil | Permalink

          Excuse my typing the ipad seems to add random characters in my messages!

          • Posted February 3, 2012 at 5:03 pm by Dave | Permalink

            Sure it’s not that beer you are holding ? ;-)

            • Michael Ross
              Posted February 3, 2012 at 5:19 pm by Michael Ross | Permalink

              It’s okay… Drinking and Driving LEDs is perfectly okay on this blog! ;-) Ha!

        • Posted February 3, 2012 at 5:15 pm by Dave | Permalink

          Thanks for that – have double checked connections. 51 is data, 52 clock (and validated using my some human generated code) The final size of the compilled program is 6256 bytes, using a 52×52 jpg for input. I have Hardware SPI checkbox enabled, and the “LED Pin” is set to 1.
          I generate the code, copy it into Arduino 1 and send to the mega. The result is the whole strip flashes white every half second ish.

          I tried 2 other images, similar result – whole strip flashes at same interval as before, but the colour of the LED’s varies dependant on the input image.

          The colours do not change between flashes.

          PS Thank for taking the time to help – just tell me to go away if you are busy.

          • Michael Ross
            Posted February 3, 2012 at 5:23 pm by Michael Ross | Permalink

            One note I want to throw in here… These strips can go absolutely crazy if you are using a 9 volt battery that has discharged a bit. They can really act erratic when that happens so if you are powering it off the USB and it works and switch to a 9v battery and it goes nuts, then that is probably the cause. I have seen this happen to several folks on more than one occasion.

          • Posted February 3, 2012 at 5:23 pm by Phil | Permalink

            Can you email meboth bits of code (your validation code and my program generated code)and i will take a look in the morning – email is philwright@live.com

            It does sound as if clock and data are wrong way round, so humour me and try swapping them please

            Thanks

            • Posted February 3, 2012 at 5:50 pm by Dave | Permalink

              Done and Done. Thanks again.

            • Posted June 21, 2012 at 12:18 pm by Seth | Permalink

              WOW, this thread saved me from pulling the bit of hair I have left out! Thanks so much!

    • Posted February 13, 2012 at 3:41 am by Phil | Permalink

      NOTE: This was resolved by increasing the StrobeOn setting – basically this was set to zero meaning the bitmap was displayed so fast you couldn’t see it. I recommend a setting of 50 millisends

  162. Posted February 2, 2012 at 10:34 am by tiago | Permalink

    hi , nice work with the hl1606, the tuturial and all these work that u have done, its amazing .
    im trynig to do something different with them . my ideia is to join the strips, 32 leds each, horizontally, and write letters with them. are u understanding ? xb
    can u tell me how do i conect differente strips of 32 leds and make them work with the same code ?

    • Posted February 3, 2012 at 6:30 am by Phil | Permalink

      Hi tiago,

      I am not really sure what you mean. You can write letters with just one strip.

      Are you thinking about have the two (2 x 1m 32 LED) strips connected horizontally to make a single 2m wide strip (64 LEDs) that you will move vertically to draw the letters?

      • Posted February 8, 2012 at 4:57 pm by tiago | Permalink

        im trying to do something like an announcement board , and i pretend to write letters with the strips as i show to phill.
        my problem is how can i adress the different strips on a single arduino MEGA 2560 and how can I through the arduino code,
        light only one specifc led on the strip and another one on different position .
        i have tried to light one led only, and i make it. but when i try to light another one on different position, in the same strip,
        the second led never stays on the place that should.
        thanks very much for the attention and i hope that you understand everything that i wrote.

        • Posted February 10, 2012 at 5:19 am by tiago | Permalink

          michael , can you give me your email ? its better for me to talk with you by that way.
          thaks

          • Michael Ross
            Posted February 10, 2012 at 7:38 am by Michael Ross | Permalink

            Hi Tiago,
            My email address is MichaelRRoss AT Verizon.net. I do think I understand what you are trying to do and I am thinking that what you want to do is doable BUT… you will probably run into memory issues on the Arduino trying to do much with 5 strips of 32 LEDs. Particularly if you want to display a longer message. Now I am certainly no expert at all of this but here are some thoughts off the top of my head.

            Now you can probably limit the colors to very basic ones to help with that but you will still have the problem. Now if you just want to scroll the message across, you may be able to get away with that even more so. But if you you want to change the entire display all at once all the time, you will be bumping into memory issues. You can connect multiple strips to the Arduino. and I am thinking that you can combine the Latch pins on each of them and the Clock pins as well. But each strip will need at least its own data pin.

            You need to think about each strip wotking in this manner. When you send a single command to a strip of two LEDs. the first one gets the command and displays the LED based on the command. The second LED does not have a command yet. When you send a second command, the command for the first LED moves to the second LED and the first one gets the new command. So it works linked together like a chain. To control each of the LEDs on a 32 LED strip, you have to send 32 commands for each change. Unless you scroll like I said above and then you can take advantage of the chain reaction and just send one command each time.

            So… if you have 5 strips, to scroll, you would send 5 commands (one to each strip) then latch them, then the second command to each strip and latch, and so forth. To change the entire display, you will need to send 32 commands to each strip, then latch.

            I hope I am explaining this right and in a way that is clear to understand. Please let me know if this makes any sense or not. And Phil, if you see this, please correct me if you see that I have misstated something. :-)

            Cheers!
            Mike

          • Posted February 13, 2012 at 4:03 am by Phil | Permalink

            Hi Tiago,

            First of all this is possible. So lets make it happen :)

            I’m short of time today as I have just returned from Holiday so I am going to be abrupt and precise in my comments – so please do not think I am being offensive in anyway.

            1) If you do this as bitmaps you may run into memory issues as mike suggested however I suggest you use a font and draw you text using the font, this way you can have huge text strings. – you can find existing fonts by looking at some of the code written for LCD matrix screens
            2) as mike stated you cannot directly address one single LED in a whole strip (apart from the very first one!), you must write the whole strip as they are programmed serially (one HL1606 chip passing the information onto the next one in the line)- So Create an array of 5 deep and 32 wide in memory – you can then address each LED individual in your code and when you want it displayed write the whole array out to the strips (this can be done very quickly – so don’t worry about performance).
            4) Mike is right about the latching above – Connect all the data signals together and plug into the H/W SPI data port (51 on the mega) and connect all the clock signals together on Pin 52. Use a separate pin for each latch connection.

            Hope that helps

            Phil

          • Posted February 16, 2012 at 1:30 pm by tiago | Permalink

            i understand everything ! im going to test all of these new information and i will keep you both up to date. thanks very much to both of you for the help and the availability, im starting to think that i can really do something about this carzy strips ! ahah

            • Michael Ross
              Posted February 16, 2012 at 5:25 pm by Michael Ross | Permalink

              Cheers tiago!
              Good luck with it! Come back and let us know how it goes or shout if run into any snags! :-)

            • Posted February 23, 2012 at 4:01 am by tiago | Permalink

              i have sent emails to you explaining the problems that i have. hope that u can help me ! cheers

    • Michael Ross
      Posted February 3, 2012 at 12:55 pm by Michael Ross | Permalink

      Hi Tiago,

      I am not sure if I understand exactly what you are trying to do as well. I am reading this as though you want to basically make a full LED array to act like a sign instead of a strip for use in light painting. Is that what you are looking to do?

      If you are trying to drive multiple HL1606 strips at once using a single Arduino board then you will be limited by the number of connections you have on the Arduino to address the strip. Also, depending on how many LEDs you are wanting to connect, the board itself will only handle so much in terms of current but you can add an external power supply to handle that. I have pushed it comfortable to 64 LEDs but I don’t feel very comfortable pushing past that without an external power supply with a higher rating. It can be done, to a limit anyway. But it will take different code to deal with addressing multiple strips. You will also be limited by memory on the Arduino unless you work around that through streaming the code to the Arduino or using an additional memory device hooked up to the Arduino.

    • Posted February 8, 2012 at 4:56 pm by tiago | Permalink

      first of all thank you very much for the help and the availability.

      im thinking about putting 5 strips together horizontally (32 leds each) to make different lines . like this:

      hl1606 —————-
      hl1606 —————-
      arduino mega ——->hl1606—————-
      hl1606 —————-
      hl1606 —————-

      and my idea is to individually light different leds on one strip to write letters.
      sorry about my english, i can’t express myself as i want but i hope you understand.

  163. Posted January 5, 2012 at 12:49 pm by Miguel De Langhe | Permalink

    Hi all,

    first of great tutorial!
    Also when using the WS2801 strips does this change a lot? I mean for instance the used software Digital Light Wand Code generater seems to be supporting this.

    Do I need to consider other changes? Or can I just follow the pdf?

    greetz,
    Miguel

    • Michael Ross
      Posted January 5, 2012 at 2:55 pm by Michael Ross | Permalink

      Hi Miguel, Yes, there are some difference between wiring up the WS2801 and the HL1606 strips. The HL1606 strip has 6 connections that you are dealing with and the WS2801 only has 4. This makes it easier. The Spreadsheet program that I created was only for the HL1606 strip but the program that Phil Wright created works with each of the strips. There is some flexibility in the what pins are used on the Arduino board and you would specify the pins used in Phil’s program. The DWL Code Generator that Phil created should work with the HL1606, WS2801, and the LPD8806 Strips. I will see about getting some photos posted as soon as I get some to show the differences in connecting the Arduino with different types of strips.

      Cheers!
      Mike

      • Posted January 6, 2012 at 10:59 am by Miguel De Langhe | Permalink

        Hi Mike,

        thanks for the explanation !
        This is going to be my next project when my ccfl’s are finished (this weekend). So its going to be ordering every part I need this weekend and then wait untill they arrive ^^
        I will make sure you get to see the finished pictures. (on flickr) And ofcours crediting you and everyone else that has made a contribution to the Digital Light Wand!

        Kind regards
        Miguel

      • Posted January 21, 2012 at 8:11 am by Phil | Permalink

        Hi Miguel,

        As Mike stated the WS2801 strip only has four connections,
        1) +5v
        2) GND
        3) Clock
        4) Data

        +5v and Ground should be obvious :)

        Data is best going to pin 51
        Clock is best going to Pin 52

        Then in my program just select Hardware SPI and it should all work.

        All the best

        Phil

  164. Posted December 25, 2011 at 3:38 pm by Phil Wright | Permalink

    Fantastic James, well done and thanks for putting me up in lights :) . Merry Christmas everyone and happy new year

  165. Michael Ross
    Posted December 23, 2011 at 1:32 pm by Michael Ross | Permalink

    Ha! That is fantastic James! I am glad to see that you got it going! And I love seeing my name in lights! LOL

    I wanted to take a moment to thank everyone for their contributions to this blog, particularly Phil and the things that Mick has done with it as well! You guys are awesome! I also wanted to wish you all a Merry Christmas, Happy Christmas, Happy Holidays or however it is that you prefer it! 2011 has been a great year and I am looking forward to 2012 and the awesome things that we will be able to do with the Light Wand and some other Light Painting tools as well! :-)

    Cheers!
    Mike

  166. Posted December 22, 2011 at 7:04 pm by James909f | Permalink

    Thanks Guys, still learning and exploring but made this on a beach in Devon, UK. Good work. :)

    http://imageshack.us/photo/my-images/856/img2123h.jpg/

  167. Posted December 16, 2011 at 10:39 am by Phil | Permalink

    Just a quick update to say version V1_0_0_75 now supports the Arduino 1.0 compiler libraries – feel free to download it from http://www.wright-online.com

    Thanks

    Phil

  168. Posted December 11, 2011 at 10:35 pm by Phil Wright | Permalink

    Hi everyone, i hope you are all getting on well with your lightwands!

    I have just been informed of problem with the latest version of the arduino compiler v1.0 which they have changed the name of one of their standard header files which is causing a number of problems with old sample code and the code the generated by my program, i will update my program soon to work around this, but in the meantime if you are having problems compiling try going back to version 0022 of the arduino compiler and it should all work :)

    Hope that helps

    Phil

  169. Posted December 5, 2011 at 11:47 pm by James909f | Permalink

    Thanks Guys, my led strip turned up today so hoping the dev board and other bits come soon. Excited to say the least. Many thanks again for sharing. I can’t wait to get it up and running :)

  170. Posted December 1, 2011 at 5:55 pm by is0-mick | Permalink

    Hi Guys,
    I’ve just done a few more “tweaks” to the code. If you removed the SD card and tried to send a file, the code would get stuck in a loop (there is a fix posted in the new code, but it’s a problem in the SD library that needs addressing).

    I’m also now fading out the backlight instead of just switching it off, so it looks a little more swish :)

    http://pastebin.com/qHdt30Rh

    Is the latest version (1.02 I’ve called it).

    Mick

  171. Michael Ross
    Posted November 30, 2011 at 6:09 pm by Michael Ross | Permalink

    Hi Matthew,
    I have a few videos of how the tool is used. They are located here:
    http://www.flickr.com/photos/txross/4276026790
    http://www.youtube.com/watch?v=SwwZjEgyiuk

    I will get back to you on making a completed wand. I am in the midst of working on starting up a new business (a Photo School) and that is demanding all of my time right now. But I will get back to you.

    @ Mick! Thanks a TON for posting that! I can’t wait to give it a try! :-)

    Cheers!
    Mike

  172. Posted November 28, 2011 at 1:54 pm by Matthew Malloy | Permalink

    Also do you have any video’s on you creating some of this art, would love to see a making of video of how you go about creating the shots and some effects with the wand

  173. Posted November 28, 2011 at 1:45 pm by Matthew Malloy | Permalink

    Hi Mike, thanks for the info as you have certainly in a way pioneered this for all of us( with some help from your new found friends of course). I wanted to get some info on how much you charge for a completed 16 wand or 32 . thanks in advance for your time

  174. Posted November 26, 2011 at 7:57 pm by Hob | Permalink

    Nice one Mick. I might have to try and suss that out at some point. It could make a big difference in the wheelchair DLW activities.

  175. Posted November 26, 2011 at 1:53 pm by is0-mick | Permalink

    Hi James,
    I’ve uploaded the code here:
    http://pastebin.com/ucnm31xj

    I’ve just added something to turn the LCD backlight off after about 1/2 a second if no keys are being pressed.

    Before this it was on all the time, so I thought it would be better to turn it off to save battery life, and also to stop it being caught by the camera :)

    Mick

  176. Posted November 26, 2011 at 1:21 pm by James909f | Permalink

    Hi Guys,

    I found your site the other week and have since been amazed by what you’ve done. I’ve placed an order today for the Development board, 2meters of HL1606 light strip and I know the code isn’t in the public domain yet but also ordered an LCD screen and SD reader. Hehe, I’m already counting down the two week delivery time from China to UK!

    Just wanted to say thank you for all the hard work you’ve put into the project and for sharing it on the web. The end results are amazing and the possibility’s endless. Can’t wait to get it all setup and share the results.

    Cheers,
    James909f

  177. Posted November 5, 2011 at 10:56 pm by is0-mick | Permalink

    Hi All,
    I’ve build a DLW with LCD + SD card reader, you can see a video of it in action here:

    http://www.flickr.com/photos/68646769@N07/6313347839/

    It reads the files from the SD card and lists them alphabetically, you can scroll through them using the UP and DOWN buttons on the LCD / Keypad shield, and set the frame delay with LEFT and RIGHT buttons.

    The select button, then sends the image to the LED array.

    The LCD / Keypad shield I got from ebay for around £6, and the SD card reader is around £3.

    If anyone wants to have the code to play with, let me know.

    Mick

  178. Michael Ross
    Posted October 10, 2011 at 7:33 pm by Michael Ross | Permalink

    Hi Max,

    I was just able to find some more of the light strip that I needed to make a few more of these. I will contact you via email.

  179. Posted October 10, 2011 at 7:20 pm by Max | Permalink

    Mike,

    Do you happen to have any of these for sale? I’m not sure I have the time and know how for the physical build… But would love to have one of these to play with :) If not, keep doing what your’e doing and hopefully I’ll find some time to make one of my own!

    Thanks!
    Max

  180. Michael Ross
    Posted September 18, 2011 at 11:51 pm by Michael Ross | Permalink

    Awesome Phil! I will be there as soon as I receive the parts! Hopefully this wee some time. :-)

  181. Posted September 18, 2011 at 8:01 pm by Phil | Permalink

    Good news the I2C display, and SPI based SD Card reader and LPD8806 strips are working fine together. I had worried about the SD Card and LPD8806 sharing the SPI bus (hen the LPD8806 don’t support slave select) but the AND gate did the trick brilliantly.

    Just put on a flickr 6200 column bitmap! along with a few pictures of the actual wand itself. http://www.flickr.com/philwright69

    I now need to change my program to work with all this, as it’s going to be quite different when reading in files as I want to be able to select the file and will also have to store the actions, delays etc. differently.

    If anybody else is building this with the sdcard etc. please let me know.

    Cheers

    Phil

  182. Posted September 15, 2011 at 11:27 pm by James | Permalink

    Awesome! And I may have found a way to make it all a little more portable. I’ll update when I’ve finished the mod

  183. Posted September 15, 2011 at 8:30 pm by Phil Wright | Permalink

    Hi everyone,

    I just thought I would give a quick update on the parts i ordered (in the links of one of my posts above) both the sdcard reader and 16×2 line display are working great individually i just need to pull together a menu layout that works well with the lightwand and change the code to read the bitmap from a file. I hope to get this done at the weekend

    Regards

    Phil

  184. Michael Ross
    Posted September 8, 2011 at 1:13 am by Michael Ross | Permalink

    Phil has a website up and running now and the DLW Code Generator is available in the downloads area of his site. Phil’s Digital Light Wand Code Generator: (located in the download area of his website at http://www.wright-online.com

    He will have the latest version available there. :-) Thanks Phil! :-)

  185. Posted September 6, 2011 at 9:40 am by james | Permalink

    Just spoke to the people at DycoLed…the less are fully addressable, have a built in microcontroller and the minimum space you need between the less is 10mm…just trying to get prices. An easier way to increase resolution maybe?

  186. Posted September 4, 2011 at 5:26 am by Phil Wright | Permalink

    Hi James

    Yes you can Dual strip the WS2801 strips

    Cheers

    Phil

  187. Posted September 3, 2011 at 11:32 pm by James | Permalink

    Sorry, another question….can you dual strip the ws2801 strips? Or would that be too much of a pain to do with phils program? I only ask because I can buy the ws2801 strips in the UK easy enough

  188. Posted September 2, 2011 at 10:07 pm by James | Permalink

    Phil…could you by any chance convince my wife? We should all rock up to burning man and do a giant ass led strip picture

  189. Posted September 2, 2011 at 9:49 pm by Phil Wright | Permalink

    I think youre right Mike but hey i think she might be up for burning man next year!
    i mentioned sun + sand and holiday and that was it – booked!

    Hardware SPI is looking good for a Speed increase which willl be needed if also reading from an SD card.

    Thanks very much Mike for the LPd8806 strip, testing is so much easier now and straight away realised the 10ms delay from the adafruit demo is not needed which will help loads

    I will also help mike with all his tutorial stuff around the latest developments as soon as i have it all nailed

  190. Michael Ross
    Posted September 2, 2011 at 5:32 am by Michael Ross | Permalink

    I have uploaded the newest version of the DLW Code Generator Program from Phil. The link at at the top will get you there. :-)

  191. Michael Ross
    Posted September 2, 2011 at 1:36 am by Michael Ross | Permalink

    And development times will probably be screaming now too. Phil has been making changes and I have been testing since he didn’t have his own LPD8806 strip to test with. But he has it now!! His wife is probably going to be a “computer widow” for a while! ;-)

  192. Michael Ross
    Posted September 2, 2011 at 1:29 am by Michael Ross | Permalink

    They are not chained together. They actually share the data pin on the Arduino board and use two different Clock pins so they can be triggered separately for the delay. The set up is really not much different than connecting one strip. Only one additional connection to the Arduino board. I will try to make an addendum to the tutorial this weekend to show the schematic. If you will send me an email to michaelrross AT Verizon.net, I will send the latest version of the software to you. I need to get it on this site anyway to make the latest version available.

  193. Posted September 2, 2011 at 1:21 am by james | Permalink

    Ooo and also…will the legend that is Phil be releasing a dual strip version of his amazing program? Or is the one I’m using now the latest one? Its got options for more than 64 leds

  194. Posted September 2, 2011 at 1:13 am by james | Permalink

    That’s ridiculously good! I’m guessing there’s no change to the physical side of things? Are you just chaining the 2nd strip to the end of the first? Or is it wired to the arduino differently? You guys are aweome and I’m so grateful for your help in setting my own up. I know wanna do a dual strip…any chance of an updated tutorial I. The future?

  195. Michael Ross
    Posted September 1, 2011 at 11:49 pm by Michael Ross | Permalink

    Ooops… except for the first one in the comments. That was the LP photo that I used to create the top one. :-)

  196. Michael Ross
    Posted September 1, 2011 at 11:48 pm by Michael Ross | Permalink

    Here you go James…. This photo and the three below it in the comments were created with the Dual LPD8806 strips. ;-) http://www.flickr.com/photos/txross/6098413825

  197. Posted September 1, 2011 at 11:15 pm by James | Permalink

    Woop, finally got mine working tonight…although now all this talk of dual strips has got me drooling….any pics of these yet?

  198. Michael Ross
    Posted August 31, 2011 at 10:38 pm by Michael Ross | Permalink

    LOL Chris, I like the way you think! Traits of a “Ground-Breaking Thinker” there for sure!! :-) It is funny how with all of this, Chris Renfro made a comment about all of this getting to the 1080p High Def one of these days and I had to laugh at just how playing with all of this is, even though ground-breaking in the LP world, somewhat archaic when you compare to technology used in High Def TVs! ;-) When Chris made that comment, I simply thought, well why don’t I just buy a TV and flash the image in front of a camera like a stencil and be done with it!! LOL ;-) Why!? Because THAT isn’t anywhere NEAR as much fun as doing it this way! ;-) That’s why! Ha! But… to address the thoughts… A frame with a sliding rail both vertically and horizontally would do it. Even a motorized one would be better. But they portability starts to be an issue too. But it would still be fun to play with! ;-) And don’t let anyone tell you that thinking outside the box is annoying. I will never think that! ;-) Keep thinkin’ outloud! :-)

  199. Posted August 31, 2011 at 2:24 pm by Plan - B (Chris) | Permalink

    I was just looking at your latest pics again Mike and they sure do look great. Looks like you have the dual strip alignment sorted. You guys should be pretty happy with yourselves. It’s amazing what you’ve accomplished.

    Anyway, looking at the photo’s I had (yet) another thought. It might be fun to save both a horizontal motion and vertical motion version of the same picture to your light wand. Then maybe using a wall or something to help line everything up, paint one over the top of the other. Alignment would be a bitch, but the cross hatch final image might be cool.

  200. Posted August 31, 2011 at 1:02 pm by Plan - B (Chris) | Permalink

    I haven’t seen the Dyco’s James, but I’ll definitely check them out. Keep us posted on any details you get back and a price please.

    Thanks for the reply Phil. I didn’t realize you could get the million color strips for as cheap as that. It’s been awhile since checked around and I just tonight realized Adafruit has the LPD8806 strips for cheap as well as a slightly cheaper version of the string lights I posted. (I think they are the same “Pixellights” Sawo has been on about over at LJ’s). The price of the strips definitely makes the strings less attractive, but I still see some advantages in regards to design. Namely, that the string LED’s can be installed anywhere in relation to each other.

    I envision, not just digital light wands, but a modular array of digital light tools. A 5×5 pixel grid orb tool that can flash out letters or shapes or whatever. Different sizes and shapes of programmable light brush arrays that can also be turned on and off by a momentary switch installed on the brush. A larger (expensive) pixel grid tool that could be used to produce 3D, light wand effects (like those cool iPad apps) or even just simple color washes. Basically, any LED tool you can think of could be built with quick connectors and extension wires or arduino/battery pack harnesses and controlled off a single controller. You could have a pocket full of SD cards, each with a slew of different patterns for each individual tool. This may or may not be a very practical setup but the idea does have me a bit excited.

    The strings I posted do indeed use SPI and I believe (not positive) the WS2801 chip. They have an arduino library and example code here: http://www.idolstarastronomer.com/Home/char-total_control_lighting
    Now I don’t have a latest, greatest copy of your program yet, but I thought it was rebuilt at one point to include the WS2801 chip? If so, it should work with these string lights already, correct? I’ll hit you up on Flickr for a copy of your program right now, if that’s ok with you.

    I’ve played around a bit with the software that comes with these strings. It is unable to break down a bitmap into lines and replay it as your software does for the light wand. What it can do, is let you design a custom wire routing layout for any sized LED grid array. It can then display imported video on your LED array. I don’t think video import is needed but, would it be possible to update your program so it can display imported bitmap images on a custom routed and sized, LED grid? Maybe be able to put those bitmaps in sequence, set a frame rate, and play them back? Similar to the way your software plays back the individual “lines” of a bitmap now.

    My main interest in the controller I posted above was the SD card feature and buttons. After seeing the new arduino parts you ordered Phil, I’m thinking that controller is still expensive and now unneeded. I can’t wait until you have those parts incorporated into your project. Please do make sure to bring it to show and tell.

    Anyway, big thanks to everyone for discussing my idea’s with me and sharing your own. If my thinking out loud gets annoying, please let me know. Lol.

    Cheers,
    Chris

  201. Posted August 31, 2011 at 9:47 am by James | Permalink

    Have you seen the DycoLed’s? They are addressable and have a controller built into them. Ive emailed them (they are in germany) to find out a bit more information and get a price per LED

  202. Posted August 30, 2011 at 4:09 pm by Phil | Permalink

    Hi Chris,

    Coming back to your links I’ve had a good look and I’m not sure if I could output code that these controllers use – without a lot more digging, also as they give you free software I’m not sure it is worth it anyway (I have looked at their software and it looks comprehensive but i’m not certain how to use it!).

    On the other hand connecting their LEDs to the Arduino and changing my code to drive them I reckon would be pretty simple but at $100 for 50 LEDs it would be expensive compared to lining up 64 LEDs side by side (LPD8806) for $60.

    To know for sure if we could drive them we would have to buy some and find out what chips are used on the LEDs, but I reckon it is just some form of SPI addressable chip (same as WS2801 and LPD8806).

    For those of you interested these are the components I am working on next:

    LCD Display
    http://www.ebay.co.uk/itm/180710433221?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2648#ht_5298wt_905

    SD Card reader
    http://www.ebay.co.uk/itm/170667768852?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2648#ht_4457wt_905

    Cheers

    Phil

  203. Posted August 29, 2011 at 10:50 pm by James | Permalink

    Well this is all getting rather exciting isnt it!….I was looking at sd shields for the arduino to see how easy it would be to increase memory on the board

  204. Posted August 29, 2011 at 9:36 pm by Phil Wright | Permalink

    Hi Chris

    I have just (in the last couple of days)ordered both an SD card reader for £4 and an lcd screen with keypad for £6 from ebay so hope to add an easy menu system on the arduino to select the bitmap you want to run from an SD card. If i get It all working it will also give the possibilty to change things in the field like delays and speed etc. I will let you know how i get on but it may be a week or so as they are comng from china. I will take a look at your links now.

    Thanks

    Phil

  205. Posted August 28, 2011 at 12:44 pm by Plan - B (Chris) | Permalink

    Well I’m glad to hear you enjoy my ramblings on your project even if I am a step or two behind where your at in development terms. I enjoy trying to contribute anyway I can. I got another one to throw at ya, if your interested.

    It’s funny you mentioned the Blink M’s again. I stumbled across these tonight while hunting for cheap for EL tape. They’re kinda like Blink M’s but prewired and at 2 bucks a piece instead of 12. You could line the bullet style packages in a row with with only millimeters between each LED.

    http://shopping.netsuite.com/s.nl/c.ACCT88394/it.A/id.992/.f?sc=2&category=1665

    Check out the video at the top of this page for a quick run down.

    http://www.coolneon.com/

    These strings can be controlled by arduino (they have code on the site) but it also looks like the mid range controller and software they sell might almost work for light painting right out of the box.

    http://shopping.netsuite.com/s.nl/c.ACCT88394/it.A/id.997/.f?sc=2&category=1665

    It’s more money then an arduino but it has a SD card slot for extended memory and buttons to select different programs and speeds. Perhaps Phil, would it be possible for you to modify your software to output code on a SD card that this controller can read?

  206. Michael Ross
    Posted August 27, 2011 at 3:34 pm by Michael Ross | Permalink

    Hi Chris! Thank you very much! :-) You know the old saying… “Great minds think alike!” ;-) I haven’t really had time to give the entire story with all of the photos that I have been posting, but you are correct, the delay has been the latest thing that we have been focused on. Those shots that I posted are really just showing the the progress that has been made in the color range and the offset delay so far. Phil and I have been working on different ways to deal with the delay for the dual (side by side and offset) light strip. I think we hit a point last night with a lot of testing that we are going to have to take a bit of different approach and try to delay based on a fraction or percentage of the time the LED’s are lit themselves.

    Phil and I have also tossed around some ideas in the extra memory area and there are a few different possible approaches. One is to have an SD card slot attached to the Arduino and either have a way to trigger a download of a new program from the memory card to the Arduino. The other is to possible extend the memory of the program area in the Arduino and actually make the programs selectable as you said.

    Phil’s program is definitely a masterpiece and he has put a lot of long hard hours into making it successful. On top of this, Phil has been having to do all of his testing through me so far so it has been a bit of long process in communicating changes and problems that have come in during the evolution of this. I have been trying to get some of the LPD8806 strip to him but the postal service is making me want to “go postal” on them right now! But that is another story altogether! ;-) Many kudos to Phil for his work and I definitely want to get to meet him in person some day and have the pleasure of doing some LP with him and buying him a few brewskies as well! :-)

    By the way… Even when I first put the original strip together and got it working a few years ago, the wheels were turning in my head about resolution and color range. In a box, under my desk at home, I have parts for two additional versions of light strips. One of them is based on the BlinkM module (which is a SUPER expensive way to go!), and I can’t even remember what the other one is! Ha! But these newer Light strips sort of let me shortcut the work on those anyway, so I will probably end up using those parts for other ideas I have brewing as well. ;-) I am off to shoot a wedding in a bit but keep throwing ideas out there man! All of this has totally taken off and evolved even more than I dreamed it would in a very short period of time! It has been a great thing to see! :-)

  207. Posted August 27, 2011 at 2:21 pm by Plan - B (Chris) | Permalink

    I just had another thought that might help smooth out the the image of the 2 strip method discussed above. Above you mention that the 2 strips can be controlled indecently of each other. In programming could you add a slight delay to the second strip so that when moving, it fires at the same location in space that the first strip fires? This might help clean up Trogdor’s legs.

  208. Posted August 27, 2011 at 6:52 am by Plan - B (Chris) | Permalink

    Things seem to be progressing nicely in light wand development world. Color range has been improved with the new strips that are available and programing has been made as simple as pie with Phil’s great software. Seems to me the only remaining issues are resolution and memory capacity.

    Mike, I see from your latest photos you are maybe trying a dual strip, side by side approach for better resolution. While it seems to work great, the staggering issue I stated above is apparent. (Trigor’s legs) What are your thoughts on the results? Do you hope to improve from here?

    I’m thinking maybe making your own strip might be the best option for best resolution. Use the same components and schismatic as the strips but assemble on custom printed circuit boards. Have the LED’s right together in a row and the resistors and chips off to the sides instead of in between the LED’s. If your custom building, you could also use smaller package LED’s to increase the resolution even further. The boards could be designed modular like the strips so you can just add more boards for a longer wand. I know there are quite a few companies that offer software and service for designing and producing printed circuit boards but they may not be cost effective for a one off project.

    As for memory capacity, I have no real ideas on how to expand it.
    I do think it would be cool if you could keep your whole library of patterns loaded on the device and scroll threw them with a couple buttons and an LCD screen.

    Anyways, those are just more of my rambling thoughts on this awesome project. Just wanted to add great work fellas and I’m looking forward to future developments.

  209. Posted August 26, 2011 at 11:45 pm by James | Permalink

    Phil, truly…if im ever up your way I owe you a few pints

  210. Posted August 26, 2011 at 8:30 pm by Phil Wright | Permalink

    Hi James, in short no, the LED strip has no control over individual leds from what i can tell they are all set to the same colour

    Cheers

    Phil

  211. Posted August 26, 2011 at 12:36 pm by James | Permalink

    Just found this

    http://arduino-related.livejournal.com/1414.html

    could it be a way to increase the memory on the arduino to 512….might enable longer runs on a 64 led strip

  212. Posted August 25, 2011 at 10:15 pm by James | Permalink
  213. Posted August 25, 2011 at 9:00 pm by Phil Wright | Permalink

    Hi James its very simple, all you do is click on the bitmap where you want it to pause and a dialog box pops up asking you for the pin that you have the switch connected to and two values to set a range you want the switch to be reading

    I’m not sure which version mike has available on here but if you send me a message on flickr i can email you one of the latest versions

    Cheers

    Phil

  214. Posted August 25, 2011 at 12:15 pm by james | Permalink

    Hey meant to ask…the pause in your program so that you have to turn the switch to get it to carry on….how easy is the coding for that? Should I wire in a 6 way switch to do this?

  215. Michael Ross
    Posted August 22, 2011 at 3:44 pm by Michael Ross | Permalink

    I am not so sure that the strip itself will go through too many times of being folded and unfolded. That thought crossed my mind but the strip is only “flexible” to a point. :-) BUT… if you CUT the strip at the fold and then used some stranded wire or ribbon cable to connect the two pieces back together, it would probably handle that for a while longer.

  216. Posted August 21, 2011 at 7:45 pm by James | Permalink

    Im wondering how much of a chore it would be to hinge the wood….to essentially fold it down. Obviously youd have to un-ziptie…and then reziptie….hmmmi shall think on this lol

  217. Michael Ross
    Posted August 21, 2011 at 2:24 pm by Michael Ross | Permalink

    No problem at all. Yes, portability is definitely a problem with the 64 LED version. The two that I originally created are the two I use the most and they are a 16 LED version for doing more Highlights and patterns in general LP shots, particularly quick portrait shots. That is why I added the 6 position switch to it so that I could take advantage of the memory in the Arduino and have 6 patterns to choose from on the fly. The other was a 48 light strip that is just long enough to get some good size out of it and resolution too, but not be so long that it was a pain to transport.

  218. Posted August 21, 2011 at 2:17 pm by James | Permalink

    Thats what i originally thought…but I think i then overthought it and confused myself! lol I love the idea of the 64 led one…with its clearer picture….but i also love the idea of a smaller one for portability….decisions decisions! Thanks for your help guys i really do appreciate it

  219. Michael Ross
    Posted August 21, 2011 at 2:06 pm by Michael Ross | Permalink

    Hi James, Maybe I can help answer this. The LEDs the HL1606 and PD8806 Strips are spaced at about 3.1cm apart. So a 64 LED strip would be 2 meters long. A 32 LED strip is 1 meter, etc. So when you are talking about “Resolution” here, the more LEDs you add to the mix, the better the image will be rendered because it has more “Pixels” to use in doing that. But the drawback is, the strip is REALLY long! :-) Does that makes sense?

  220. Posted August 21, 2011 at 12:05 pm by James | Permalink

    Sorry if im being stupid here…..So the strip your using essentially has the same resolution as a 64 led one? Because the leds are 3cm apart?

  221. Posted August 21, 2011 at 7:44 am by Phil Wright | Permalink

    Hi James, i have the ws2801 stick with 32 leds, i’m still learning on how to get the best out of it. A 64 led version will give you a two meter high lightwand so you can fit more pixels in however the resolution with LEDS approx 3cm apart will be the same. Mike has used a diffuser which makes quite a difference by increasing the spread of light from the LED reducing the appearance of stripes, i have one on order which should arrive this week and will post a with/ without diffuser picture for you to see the difference. Mike and I are also working the best way to increase resolution with 64leds per meter so watch this space!

  222. Posted August 20, 2011 at 11:14 pm by James | Permalink

    Ah ya know what….after having a look at your program…im going to have to go for a 64 led version arent i! It just looks alot clearer lol

  223. Posted August 20, 2011 at 11:03 pm by James | Permalink

    Ahhh, im with you! I think anyway lol. The simpsons one, is that with the new higher res led strip? Or the original one

  224. Posted August 20, 2011 at 11:16 am by Tyson F. Gautreaux | Permalink

    Thanks a bunch for sharing this with all people you really understand what you’re speaking approximately! Bookmarked. Please also discuss with my site =). We can have a hyperlink exchange contract between us!

  225. Posted August 20, 2011 at 9:15 am by Phil Wright | Permalink

    Hi James, yes 1 meter Is 32 leds

    you can only actually run one program at a time on arduino but what you can do is split that program up into sections. For instance with my software i have put a pause after each bitmap sequence that waits for me to turn the six pot switch. See here for what i am on about

    The program http://www.flickr.com/photos/philwright69/6050229735/
    The result http://www.flickr.com/photos/philwright69/6050776574/

  226. Posted August 19, 2011 at 10:45 pm by James | Permalink

    Thanks Phil….my plan is to build a 32 led one to start with ( I think thats how many is on 1 meter?) So with the upgraded memory on the mega board…what are the chances of being able to program a couple of patterns onto it….like with the 16 led version. Sorry if im sounding really stupid,

  227. Posted August 19, 2011 at 4:06 pm by Phil Wright | Permalink

    Hi James

    Yes i have the mega board with 256kb at the moment and with a 32 led strip you can fit in approx 500 to 1000 columns depending on the complexity on bitmap

    Hope that helps

    Phil

  228. Posted August 19, 2011 at 2:19 pm by James | Permalink

    Phil….you say the new strip takes up more memory….how about the new upgraded version of the mega board. Seems like it has 256kb of memory, so would that be able to cope with longer runs?

  229. Posted August 11, 2011 at 8:12 am by Phil | Permalink

    Don’t know if you have noticed but Adafruit have scrapped the HL1606 and now got a strip with an LPD8806 that can display 2m colours and is the same price as the HL1606 – I can feel more programming coming on!

    Just a bit of warning to everyone though,

    1) as the HL1606 only had 9 colours you easily do long runs with the memory on an Arduino. With the WS2801 and LPD8806 you are likely to use significantly higher amounts of memory if you want to display complex colourful displays (as much as 5 to 10 times as much in my testing).

    2) The new strips use more power than HL1606 and will need a separate power source to the 5v output of the Arduino. A 1m strip = 2Amps

    hope that helps

    Phil

  230. Michael Ross
    Posted August 7, 2011 at 11:59 pm by Michael Ross | Permalink

    Okay…. Here is the latest update. A few of us have been testing Phil’s Digital Light Wand Code Generator and I can’t say enough about how fantastic this tool is! So.. I am going to rearrange things at the top of this page and put all of the links and files in order. For those of you that have a Digital Light Wand and have NOT tried out this tool, I would recommend it highly over using the spreadsheet. Much Much easier! :-) Thanks again Phil!

  231. Posted August 3, 2011 at 7:04 pm by Phil | Permalink

    Hi Michael

    I have now added a bitmap editor to
    my program I just need to know if it works. I will happily share this with everyone if I can get some testing done first.

    Cheers

    Phil

  232. Michael Ross
    Posted August 3, 2011 at 6:39 am by Michael Ross | Permalink

    Oh!! and I am going to try to make a video of how the spreadsheet is used as well this weekend! I know that there some others that have been working on some additional software to make the graphics and text part of this much easier. So hopefully they will share the programs and this spreadsheet method will be obsolete soon! :-)

  233. Michael Ross
    Posted August 3, 2011 at 6:26 am by Michael Ross | Permalink

    Here is a the Latest Excel Spreadsheet! It will work with 16, 32, 48, and 64 LED versions of the HL1606 Strip. Please read the HELP text since the use of this spreadsheet differs in its use than how it is explained in the written tutorial. It also has error checking to find the most common problems. Please let me know if anyone has any problems with it.

  234. Posted August 2, 2011 at 9:38 am by batmkana | Permalink

    Hi Mike,

    Thank you for sharing your knowledge … this is enormous for LP community !

  235. Posted July 31, 2011 at 9:49 am by Phil | Permalink

    Any body around that can test a bitmap to lightwand code that I have written for Windows?

  236. Posted July 28, 2011 at 7:44 pm by Jake | Permalink

    Hello there Michael! This thing looks great. I have a few questions though. I am having trouble finding the 16 LED spreadsheet version and can’t edit the 48 LED version without a password, would you be willing to provide both? I’d also recommend adding these links to your tutorial.

  237. Michael Ross
    Posted July 25, 2011 at 2:42 am by Michael Ross | Permalink

    One more thing… I am working on creating Excel spreadsheets for all of these lengths and will be posting them with the rest of the links above as soon as I have them completed. jah~ has also created a version in Numbers on the MAC (and he has also come up with a MUCH more efficient way of doing it as well) and I will be posting his 32 LED version of that also! Thanks jah!

    And soon to follow will be a version of all of these for Open Office as well for those of you that do not have Excel or Numbers!

  238. Michael Ross
    Posted July 25, 2011 at 1:40 am by Michael Ross | Permalink

    Okay… Since I can’t really order a bunch of parts without some sort of commitment, I am going to keep this simple. I am not going to sell fully completed Light wands with the exception of the 16 LED version. I will sell the rest of them in 32, 48, or 64 length versions but they will be just the light strip with the wires soldered to them, the Arduino board and the power pigtail for connecting and plugging in the 9 volt battery. This is all that is needed to make them work and the only thing you will have to supply is a wood strip to mount everything to and some wire ties or tape to hold it all together. Simple enough. This will also keep shipping costs to a minimum since the light strip can be rolled up and it will not take a long thin box to ship which is extremely more expensive than a small regular size package.

    Without commitment for several of these, I will not get any price breaks on the parts so here is the cost breakdown if you want to purchase one from me partially assembled. I will sell the light strips in the following lengths and since there is not a lot work involved in putting together a basic one, I am not going to just make kits available. The 16 light version will include everything with the rotary switch to allow switching between 6 different programs (I am probably going to change this to 12 different programs now since there is more memory on the newest Arduino board) and also a push button switch and project box to house the Arduino board. This one takes a quite a bit more time to build but since it is shorter, shipping will not be as bad as shipping a longer one and it is a lot more flexible for adding highlights and short words or sayings to an image.

    Contact me for pricing

    As soon as I get enough commitments to order at least a 5 meter roll of the light strip, I will get them going.
    Email me at MichaelRRoss AT Verizon.net and let me know if you want one of them, which version you want and what the shipping address will be if you are interested.

    Thanks,
    Mike

  239. Michael Ross
    Posted July 23, 2011 at 5:01 pm by Michael Ross | Permalink

    Chris (Plan – B): Yes, There are a few ways the resolution can be handled. One is by putting strips side by side and the other is to bend the strip so that the LEDs end up side by side. (But then mounting becomes a little more of an issue. Two strips could actually be wired to the Arduino board as well and controlled independently of each other but the program would definitely have to be modified for that as well. :-) I did find out in the midst of all of this though that the Arduino Mega board has been replaced by the Arduino Mega 2650 which has TWICE the amount of memory that the original board did. I don’t think memory will be an issue in driving two strips or one with 96 LEDs even. I am sure it can go more if the coding was made a bit more efficient.

    Beav: I am going to try to update the spreadsheet this weekend and get some other versions out there. Thanks to John (jah~), he has come up with a much easier way to deal with the spreadsheets and I am going to adapt them to his method. THANKS JOHN!! :-)

  240. Posted July 23, 2011 at 3:39 am by Beav | Permalink

    Mike, first of all I love the work you did on this,,,,Just Great! I plan on trying this out as soon as I have one built.

    On another thought I am having issues with my excel program, would you have a generic file that I could get? Just so I could have the basics there. I would greatly appreciate it.

  241. Posted July 21, 2011 at 9:15 am by Plan - B (Chris) | Permalink

    I just read your interview over on LPP.com and really enjoyed it. I’m glad to see your project is getting the acknowledgment it deserves.

    I noticed in the interview you mention you’d like to increase the resolution of the tool and this is something I’ve been pondering myself. I was thinking an easy method might be to just use two equal lengths of strip, side by side and wired together to make the U-turn at this top of the tool. Then the strips could be fastened to stagger out the LED’s essentially doubling your resolution.

    Your excel sheet output would have to be changed to accommodate the new LED layout. In this set up the 1st or 2nd LED from the bottom of the tool / excel sheet would actually be the last LED in your wiring / programing chain. (hope that made sense.) I’m not sure but I think that should be fairly easy???

    A problem this idea may have is the program space required for twice as many LEDs? (It sure would be cool if there was a SD card shield for arduino that would let you store mass amounts of program data. It seems to me that they can only write to SD for data logging and not read from them.) Another issue may be that the two strips would be slightly staggered horizontally. With the LEDs not in a perfect straight line, sharp and straight edges in your photo results might look a little rough.

  242. Posted July 19, 2011 at 3:53 pm by jah~ | Permalink

    FYI – One meter = 32 LEDs.

  243. Posted July 16, 2011 at 7:09 pm by Plan - B (Chris) | Permalink

    Here’s another option to buy the strip at different lengths.

    http://www.pcboard.ca/shop/home.php?cat=147

    Based outta Canada but they do ship internationally.

  244. Posted July 15, 2011 at 2:08 am by Evan | Permalink

    The best! Thank you!

  245. Posted July 14, 2011 at 7:42 am by darren | Permalink

    Wow.. this opens up a lot of doors.. Thanks so much for sharing Mike! Incredible innovative work.

  246. Michael Ross
    Posted July 12, 2011 at 12:38 am by Michael Ross | Permalink

    Thanks everyone! :-)

    Lee, you can find the HL1606 RGB LED strip at the following link.

    http://adafruit.com/products/306

    I think they sell it in 1 meter lengths.

  247. Posted July 11, 2011 at 6:55 pm by Lee | Permalink

    Great tut! I’ve been trying to find the light strip… I looked on DealExtreme.com but I’m having trouble deciphering from the pictures if they use the same chip…

  248. Posted July 11, 2011 at 4:45 pm by Dovepistil | Permalink

    Mike,
    I can not thank you enough for the obviously ENORMOUS effort you have put into sharing your creative techniques with us in cyber land. Your giant .pdf is clearly a labor of love. It was very thoughtful of you to thank its “editors”.

    I hope that your efforts here will be the genesis of a community of light painters supporting each other as you have so lovingly supported us. I would site jah’s post as a shining example of such support (sorry for the pun).

    Thanks Mike for taking so much of your time to share your creative efforts with us. You give the internet a soul.

  249. Posted July 11, 2011 at 2:40 pm by jah~ | Permalink

    First, let me say this is really appreciated Mike. The level of effort that has gone into this project shows and you have made it accessible to the average user. Also, your spirit of sharing is commendable. This has been much anticipated and I think I speak for all the LP community in that we can’t thank you enough.

    I didn’t see any mention of where to get the supplies so I’m adding some URLs:

    Arduino board: http://www.hacktronics.com/Arduino/Arduino-Mega/flypage.tpl.html $60 US

    Custom box: http://www.hacktronics.com/Arduino/Arduino-Case/flypage.tpl.html $13 US – if you don’t want to cut your own USB and power slots.

    Boards seem to range from about $50-75, but I wanted to combine the box and board for cheaper shipping from hacktronics.

    I already have some RGB strips.

    The rest: Radio Shack.

    I’ll let you know how I fare. I’d encourage others to post their suppliers if they find cheaper, reliable sources.

    Thanks again Mike!
    jah

  250. Michael Ross
    Posted July 10, 2011 at 7:01 pm by Michael Ross | Permalink

    The DIGITAL LIGHT WAND Tutorial is now complete!!!

    HOW TO MAKE YOUR OWN DIGITAL LIGHT WAND!!

    (aka The Programmable Light Strip)

    Alright Everyone! After some long hard hours creating a VERY detailed document on how to do this (and creating a How To Video as well!), here it is, as promised! Many have asked me how this was done over the past few years and I quite honestly did not have the time to spend with many individuals in explaining how it was done or supporting any problems that might have come up with others trying to follow a quick how to lesson so I was hesitant about getting any information to anyone. Now… With the Help of Blacklodge, Dennis Calvert, and Garnatha as my test subjects and getting valuable questions and feedback from them during the process, I have now completed the tutorial to a point where it is ready to show everyone how it is done.

    Here is a VERY LARGE (~30MB!) PDF document that details everything including High Res photos to show the details as well.
    DigitalLightWandTutorial.pdf

    Other Files and Reference Links:
    1) The 48 LED Spreadsheet to draw the image and generate the code for the Arduino (See below for newest version)
    2) The Arduino Website to download the Arduino Software
    3) The Library files needed to communicate with the HL1606 RGB LED Strip

    *** Here is a the Latest Excel Spreadsheet! It will work with any length of the HL1606 light strip between 16 and 64 LEDs! Please read the HELP section since this will differ a lot from how the use of the Excel Sheet is explained in the written tutorial

    *** Additional info can be found in the LIGHT JUNKIES Group on Flickr in the discussion tread about this tool.

    And here are videos of showing the assembly of the 16 LED – 6 program version of the DLW!

    Part 1
    http://www.youtube.com/watch?v=Gmr4JRJ7VOw

    Part 2
    http://www.youtube.com/watch?v=lrtD-hTkT7o

    Part 3
    http://www.youtube.com/watch?v=JPp61N4wgzI

    Part 4
    http://www.youtube.com/watch?v=EtPpdfLlsuU

    ENJOY!!! And please let me know what you think about it all! :-)

    • Posted May 22, 2012 at 1:55 am by Miguel | Permalink

      We got our equipment and now we just need to get the code to get working :)

      Thanks for the great tutorial ;)

    • Posted June 14, 2012 at 3:40 am by Dirk | Permalink

      Hello, i use the 64 LED Stripe and the Lightwand Code Generator 1.0.0.76, the librarys are copied to the compiler, but i can´t compile this. Because the error is:

      C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp: In constructor ‘LEDStrip::LEDStrip(int, int, int, int)’:
      C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:41: error: ‘LOW’ was not declared in this scope
      C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:41: error: ‘digitalWrite’ was not declared in this scope
      C:\arduino\arduino-1.0.1\libraries\RGBStrip\LEDStrip.cpp:42: error: ‘OUTPUT’ was not declared in this scope

      What´s wrong?

2 Trackbacks

  1. [...] Read more about the Digital Light Wand. [...]

  2. To view the entire Digital Light Wand tutorial visit Michael’s website HERE

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protected by WP Anti Spam