Revisit title [Controlling addressable LED strips (SK6812](WS2812))

  • Re: Controlling addressable LED strips (SK6812)

    Forum thread wouldn't allow me to reply.

    As it can be seen from the instagram links, this is a 'must include' feature IMO, as most all micro environments support driving these WS23812 RGB strips. I'd hate to see others pass up Neonious just because it doesn't support this feature.

    re: 'because it is definitly some work getting it working well'

    What exactly, or where might one peek under the covers to determine what 'some work' is required? I haven't enough of an understanding of the environment just yet to determine if my skills could contribute or even if allowable.

  • We would have to write a module which interfaces the remote control api of ESP-IDF. But most importantly, there must be some well defined logic with which JavaScript can build graphs on animation which can then just simply be run with one command, because JavaScript has proven to be too slow to build good RGB strip animations in real time...

    It is a bit larger project. And well, it is not a "must include" feature, I believe, because you are the first person for a while who asked for it 🙂


  • @neoniousTR said in Revisit title [Controlling addressable LED strips (SK6812](WS2812)):

    believe, because you are the first person for a while who asked for it

    I created account here to write he is not the only one, I'm also searching for the way to make it work without big effort.
    And I do not agree the complicated library is needed, it should be enough to have same functionality espr**no has (with neopixel module).
    One question from my side: isn't it possible to make WS2812 work using standard SPI interface?

  • No.. It is a custom protocol, not SPI.

    Well, it currently is not implemented, and on my side implementing ist would be big effort. Not saying I do not like the LED strips, and it did work once:

    But I cannot implement this in my free time right now. Sorry 😞

  • @neoniousTR said in Revisit title [Controlling addressable LED strips (SK6812](WS2812)):

    But I cannot implement this in my free time right now.

    Sure, that's clear. Any documentation how the community modules could be implemented for low.js projects?

    I drop idea to implement it on espruino or mongoose.os now because of performance issues. Yes, drivers exists and it works, but no chance to get smooth animation on 250 led strip - even very simple array operations (like shift) consumes up to 300ms, which is absolutely not ok.
    Solution would be to move resource consuming array operations to C, but it's not supported for non-espruino boards. So in any case I need to say good bye to idea of absolutely quick prototyping and start writing C and here I have a dilemma: build it just for my project or try to do a bit more but help to community.

    So my question is: what is the right path for potential community committers?

  • I would suggest adding this as a native C/C++ module. The only thing we need to do for this, is actually export the ESP-IDF functions to do this. A simple update of low.js. I think it would be the RMT module which is needed.

    Here is the native C/C++ module documentation:

    Do you think you can undertake this?

    If the result is really nice, we can then integrate the native module in the official distribution of low.js if you like.


Log in to reply