OctoWS2811 LED Library


Hi, I’m Paul Stoffregen, and I’d like to show
you a new Arduino library I’ve been developing for Teensy
3.0. [title:] It uses the most affordable WS2811 LED strips.
Other libraries like FastSPI already exist, so why
another? First, this drives 8 LED strips at once instead
of just one, so the update rates are 8 times faster. It’s also extremely efficient, using DMA transfers
and double buffering. There’s also a frame sync feature,
but first lets see it play video. [video: Belen Rodriguez,] This demo uses nearly 2000 LEDs, driven by
two Teensy boards. The frame sync I mentioned earlier
is this wire. [camera pans along frame sync wire] Each Teensy drives 1000 LEDs. Any number
can be linked for fast refresh and precise timing. Let’s try another video fine details, where
you’d want a LOT more LEDs. [video: Sintel Trailer,] Something this youtube video can’t show is
the incredible brightness of 2000 LEDs. In fact, I had to
buy a special filter just to get my camera to shoot these
clips. [screenshot of movie2serial software] The library includes this video application.
I’m hoping to someone might contibute a gamma correction
curve? I’ll leave you with one more really bright video
to demonstrate [video: Rachel Platten, “Nothing Ever Happens”,] Thanks for watching, and if you build a giant
LED project, please send photos.

Tags: , , , , ,

44 thoughts on “OctoWS2811 LED Library”

  1. Christian Rheinnecker says:

    Very Cool !!!!

  2. Steve French says:

    Great job Paul!

  3. Jens Van Herck says:

    very nice my hat goes of to you sir

  4. PaulStoffregen says:

    Thanks for the great comments! 🙂

    So far, 3 people have sent me good ideas (but not patches) for inverse gamma correction, which more accurately might be called "CIE lightness correction". I'm planning to work on version 1.1 in April. When I do, I'll post another video showing the difference. I'll probably add a couple other features people have been requesting…

    This LED demo might be at Maker Faire in San Mateo, May 18-19, 2013. If I do that, it'll be showing live video with effects.

  5. Michiel Brink says:


  6. young mills says:

    Can you help me? I want to what type of software I should use to for my led strips?

  7. PaulStoffregen says:

    I might be able to help, but not here. These 500 character comments are too limiting (no links, no pictures, no attachments). Please go to forum dot pjrc dot com and post your question on the Project Guidance forum. Try to write a detailed description of what you want to accomplish. More detailed questions tend to get more useful answers…..

  8. young mills says:

    I tried to but it wont let me

  9. dayji says:


  10. Sandwich says:

    Mind. Blown.

  11. NicosLeben says:

    I think you need a gamma correction for you LEDs. On my LED Matrix I got a much better image quality when applying a gamma correction of 2.5. But this way there are only 5 to 6 bits per channel instead of 8 available.

  12. DigitalValleyUSA says:

    This is not really useful for showing videos.
    These bright LED pixels are now used for DJ booth and stage effects where they show graphics and simple animations.
    To show any kind of detail, you will need much smaller pixels, especially if you are looking at the screen up close.

  13. italo peirano says:

    are u electrical engineer or computer engineer

  14. Chris Gagné says:

    Paul, this is absolutely extraordinary! 😀

  15. Douglas Souza says:

    first of all, congratulations for this job!!
    How many LEDs per meter strip did you use (32, 48 or 60)?

  16. Christian Rheinnecker says:

    Very cool video !!

  17. Kier Simmons says:

    Well done man.  I'm glad to see there has been improvement on the old FastSPI library.  I can't wait to try this out.  Since you need a teensy to drive 1000, and an arduino to push the video, isn't it possible to make a modular panel of 30×30 with it's own teensy and powersource so you could link these together for larger displays?

  18. UBANNER Impressão Digital says:


  19. UBANNER Impressão Digital says:


  20. joão bruno cisielski says:

    muito bom trabalho !!!

  21. HauntedCircuit says:

    Hi Paul, awesome stuff. I'm interested in making a 1500 LED display using a single Teensy 3.1 with WS2811 strips and I am wondering if it is possible to control that many LEDs with just 1 board. You mention that a single Teensy 3.1 can control thousands of LEDs. I saw on your website that I need a 74HCT245 to be able to control the strips at 5v and it seems to have 8 +/- outputs. Does the 3.1 allow me to use those same 8 outputs to control a larger string of LEDs or will I need to use more outputs?

  22. Emil Saroian says:

    Great work… can you please explain it …. starting from scratch. thank you

  23. Francisco Castro says:

    Hi Paul this is just awesome man, I am trying to make a panel led with audio animations with teensy 3.1 and the octows2811 adapter, I am just not sure what else do I need, I mean i am going to buy the teensy, the adapter and 11 led strips 30 led/m to build a 60×60 cm panel led, can you guide me in what else do I need for this project, also if you know a good software for this kind of project. Thanks a lot.

  24. MrRobertpn says:

    this type of creativity and sharing is superb – there is a great future for humanity

  25. Antonio Diaz says:

    Just wondering if you had to retake this project now would Teensy still be the best option? asking coz I'm planning to jump in but there are just so many options from RPi to Beagle to Arduino, and I'm trying to find the best scalable in size and reliable in frame rate and bit-depth, so far yours seems like the best one suited for video… Any news on the gamma correction?

  26. 박상혁 says:


  27. Telmo Monteiro says:

    Can I make a 4K display out of super-dense LED strips? Or at least 1080P? This is awesome!

  28. Mikael Georges says:

    How would you implement multiple (x) displays as one or independent from each other and control them?

  29. quintonmarcus says:

    Hi Paul, thanks for your posting, interesting. I have also bought WS 2811´s. I am making a matrice of X30, Y20. So a total of 600 LEDs. by daisy chaining them all together. I would like to individually Control them. For example : (X20;Y8 HIGH, every other LED LOW. ) and so on and so forth. How would I go about doing this with Arduino Code? Thanks. Quinton.

  30. Jan Martin Bolstad says:

    Wow must I say(checked the web page as well). A lot of effort and time went in this project. I stated introducing my son to programming and embedded systems. I am not the biggest Arduino supporter-to easy lol. But I must say, that compare to the help/resources and forums as well the price of the equipment today when I started way over 20 years ago in High School it's incomparable.Remember my mother almost killing me after seeing the phone bills-spending thousand of hours every night on technical BBS somewhere in California from Montreal on a 1400 baud modem was not cheap. lol

  31. Consulting Joe says:

    I want to do this but with
    Any ideas about this. I like ur solution but this is more expandable. I would just need more pro mini.

  32. Ali Ha says:

    can we do it with an arduino board ?????

  33. Joachim Coline says:

    how can i get a complete tutorial on how to use this library? i don't find any

  34. Walker Dauber says:

    Hey Paul I really need to initialize my Pixels BRG and The OctoWS2811 Library only supports RGB GRB GBR and RBG
    any suggestions?

  35. 天照 says:

    Do you have a guide for formatting a video for a sd card so that it can run on the teensy?I'm trying to get video to run through a led display.

  36. Will Liu says:

    wonderful job!!!

  37. Yannick 73 says:

    That really impressive! 😀
    I wrote a library, that converted chars of a matrix into a pixels matrix for such type of diyplay. The only issue I have, is that I have not coded in a routine to import chars of a string. That would be helpful. Shouldn't be difficult, was just to lazy^^
    If you have public access to the matrix, my library would work more or less instantly with this display library. Could be quite interesting for larger DIY signs, I guess. But then, who would pull something thisalike off? 😉
    Dunno about the scaling of Memory and CPU ressources though, Atmega324 (the uno one) got me safe up to 300 LEDs (those one wire ones) @20fps? Havent tested it yet but quite good espacially for the poor optimication and only using one data line.

  38. Ganesh gani says:

    how much cost ?

  39. Jhon Fredy Estrada Ortíz says:

    Hi, Did you test on Raspberry pi?

  40. Laurence Peart says:

    Very good love it. I have a p5 outdoor screen do know how to do live stream on it.

  41. chatrapatee sivaa reddi says:

    Hello everyone can anyone tell me
    I want to control 4000+ led using teensy 3.6 can it be possible??how many teensy boards i need??

  42. Jacob Klucznik says:

    So you could play videos from an SD card using a Sparkfun MicroSD Shield? I saw a guy build a daft punk helmet using this library, and I was also wondering if the animations on his came from this library or if he designed them himself, here is the video Thank you if anyone knows!

  43. V E N G A T E S H V E says:

    Is it possible to make a 60×10 display using ws2811 that plays gif with arduino

Leave a Reply

Your email address will not be published. Required fields are marked *