Controlling WS2812 device (RGB LED strip)



  • @Eric I recently bought a SK6812 based strip but haven't found the time yet to try it out. Having RGBW should make these much more suitable for actual lighting, not only decoration. I will post a followup here once I have tried these, probably I'll do it along with the WS2813 tests.



  • @luz : I'm really interested about your feedback about those WS2813 and the ability to use them directly from our Omegas. I've just order a few of them, but they'll be sent from China to Europe and won't arrive until a few weeks, so in the meantime, if you can make it work, I'd be glad to know how you did.

    And if not, or if you needed extra components, I'm all hears too!

    Thanks!



  • @Brice-Parent I just tested my SK6812 strip and it works fine! :-)

    As each LED now needs 4 bytes of data (instead of 3 with WS2812), I had to modify the ws2812-draiveris kernel driver to add an option for RGBW LEDs.

    See my post above about how to get and install the driver. Just use the updated driver here, which has a new module parameter called 'rgbw'. Set this to 1 when loading the module, for example:

    insmod /lib/modules/4.1.23/ws2812-draiveris.ko gpios=7 leds_per_gpio=20 rgbw=1


  • Please note that I falsely thougth the WS2813 LEDs were the new SPI interfaced ones - they are not, just improved WS2812 using same data format with an additional wire (keeps chains working when one chip fails). The new SPI ones are called APA102 (of which I now also ordered some samples, but will take another few weeks to arrive). I edited my earlier posts above accordingly.

    So the status is:

    • WS2812 (RGB, 3 wires) : works with original ws2812-draiveris
    • WS2813 (RGB, 4 wires) : also works with original ws2812-draiveris
    • SK6812 (RGBW, 3 wires) : work with my modified ws2812-draiveris with extra "rgbw" module parameter
    • APA102 or "DotStar" (RGB, 4 wires, SPI) : should work with standard SPI, but can't test until I get samples in a few weeks.


  • @luz Too late for me, I've ordered the WS2813 (but I won't get them until some weeks).
    So, it means that I need an interface between my Omega and the led strips, like an Arduino for example? Or is it still possible to drive the strips directly from the Omega, even with some other running service which could make a synchronised communication hard?



  • Hi Luz,

    I tried your cool way to control leds.

    Driver is working correct, and I can echo some colors to the leds.
    But sadly messagetorch is not working for me.

    Installation was ok, but start fails with "-ash: messagetorch: not found"

    Binary is in "/usr/bin/" folder.
    Same message appears if I try to open it via "/usr/bin/messagetorch".

    I'm on latest 0.1.4 b330 version of omega and also resetted it to factory. But still the same.

    Do you have an idea what else I can try?

    Thanks in advance.



  • @Brice-Parent No need for extra hardware, you can drive WS2812 and WS2813 directly from the Omega, using the ws2812_draiveris kernel module. I mentioned the fact that the driver blocks the kernel for relatively long time because it will affect other kernel timing that is in the sub-millisecond range.

    In practice however, I haven't noticed any delays in the usual services running in parallel on the Omega (ssh, onion desktop etc.).

    So it's basically just a thing to keep in mind, in case you experience strange behaviour with other peripherals that might rely on tight timing. But otherwise, just use ws2812_draiveris and enjoy the colors :-)



  • @Thomas-Mueller Hmm, im about to leave for a week of vacation - but on one of my Omegas indeed messagetorch does not work (it does on another one, though). I guess it must be something with libary dependencies, probably my build depends on a newer version of libstcpp or librt, which might be fixable/hackable by symlinks. I'll look into it when I'm back in a week.



  • @luz

    thanks for having a look into this.
    I have compiled the source now on myself and now it seems to work.

    If I have a couple of hours freetime in the next days I will build a "test torch".

    If someone is interested in the binary which is working on stock Onion firmware then let me know and I will upload it somewhere.

    Genieß deinen Urlaub!



  • I actually saw this post a few days ago, and I had previously been planning on having 5050 RGB strips in my room. I was planning on using the esp8266 but when I realized that it would take some time and programming understanding to control the rgb's, so I decided to use an LED amplifier because they generally cost less than $2 even with a remote. So I am going to use an arduino ir receiver to read the encoding from the remote and replicate it, so that the arduino/omega can send the ir signals to the RGB strips and I dont have to do much work.



  • @Matthew-Hartsuch that sounds like a good practical solution for lighting, where you want the same color for all LEDs of a strip :-)

    WS281x/SK6812/APA102 on the other hand allow controlling the color of each individual LED indepentently, which is great for animations and fancy light effects of all kinds.



  • @luz you are right, except that this does have color changing features, I can do the moving rainbow function, or just have one straight color, there are 20 basic colors plus the rainbow and some flashing light features, and I can change how fast it moves



  • @Thomas-Mueller looking forward to hear about test torch results ;-)

    I probably built the messagetorch binary in the wrong openwrt tree, as I've switched from 15.05 to current master for my own experiments and also trying LEDE in parallel...

    Returning from vacation, I found the APA102/Dotstar LEDs I ordered in the mailbox, and quickly tried those today. They seem to work fine with the Omega's GPIO based (bitbanging) SPI (first using the spi-tool as shown here and some useful background info!

    I will now refactor my WS281x-wrapper class to also support APA102 (in addition to WS2812,WS2813,SK6812), and then use it in messagetorch, along with cleaning it up a bit. Once that's working, I'll try to provide new binaries actually working on stock Omegas.


  • Banned

    This post is deleted!

  • Banned

    This post is deleted!

  • Banned

    This post is deleted!

  • Banned

    This post is deleted!


  • @Alvin-chan said in Controlling WS2812 device (RGB LED strip):

    @Matthew-Hartsuch so good,and clever. we are the professional led strip manufacturer,like ws2812b,5050rgb.ws2813,apa102,sk6812,sk9822,8806,dmx512 with good price and quality,,if need,contact me.

    Email:Alvin@.........

    @Alvin-chan no need to spam this forum with your advertisement!



  • @Luciano-S. It's a bot, no point in talking to it. Just report its posts and move on.



  • @Luciano-S. Your comment is OK, but please remove your unneeded quote (it's still spam).


Log in to reply
 

Looks like your connection to Community was lost, please wait while we try to reconnect.