Alternative to FastLED?

I want to control a string of WS2812b's. I've seen FastLED. Rather than comment on how little the C++ code it is naturalized for Arduino, or how straightforward the usage is--is there any alternatives, other than writing my own assembly routine?

I wish I could just shift some 3-byte sequences out to a pin, or something like that, but according to the docs, the Arduino's timers might be too course. Sigh.

[ Yes, I posted to the creators of FastLED, asking for it to look like, well, any other Arduino library, in vain. Some of the feature concepts were very good, but then, something... ]

Are you looking for something very simple to output data ?

Have you seen the timing protocol ?
There is no timer or serial device in a Arduino Uno that outputs multiple bytes with specific timing.

The NeoPixel library from Adafruit is also often used.
It has many variations which use the specific hardware of some boards. I think there is even a Neopixel library that uses DMA.

A few things that you can do:

  • Use FastLED, why worry about something that works well ?
  • Use ledstrips with a clock + data signal.
  • Get a Raspberry Pi Pico with Python. There is code that used the internal programmable hardware of the Pico to make the Neopixel signal.

I still don't understand what the problem is.

Me neither.

What does that even mean?

Or that?

1 Like

WS2812B without fastLED.h - Using Arduino / LEDs and Multiplexing - Arduino Forum

Most of Arduino's style of C--except for library routines is flavored like C, which is preferable for writing small compact efficient code.

The FastLED library is one of the the most C++ like library I have seen that runs on the Arduino, noting that: Ref: Linus Torvalds: “C++ is really a terrible language!” | by Shingai Zivuku | Nerd For Tech | Medium

It appears that the writers of FastLED either were not aware of Arduino's Byte variable, or did nothing to naturalize their code. If you truly think I am being ungrateful for FastLED, please explain what I should feel grateful for. Well, I appreciated that someone tried to make a WS2812B library. I am sure that it's true that many people seem to have little trouble with it.

Yet, in the kitchen, I have a string of WS2812Bs in a box, two nice lithium batteries, a buck converter set to 5 volts. Let's see, I need a polycarbonate tube, and a clear plastic sheet, and some jacks to separate the batteries for charging, and yes, I've got to code for it, but I just don't want to do it C++. I have been working on another project, with 2,700 lines of code, in which, in some ways I have emulated C++, yet in some ways I have gone through great lengths to avoid its pitfalls, such as hiding the memory it's using. Notwithstanding....

The responses I have seen in this thread an others, begs the question: does user feedback count on this forum? Sure, I have seen others be really cruel to others of this forum, berating people for asking honest questions, or being new, so much so that I have warned others to make sure their kids are not feint of heart when the come to the forum. So, it's difficult to judge if what I am experiencing is personalized or not.

But for me, it's not that I expect everything I suggest, or perhaps anything--such as making a 24-bit variable standard, as they are used for RGB colors, and could save memory over longs on a micro-controller--or even my request to not have space on the editor that does little of anything but take up vertical space on a 16x9 monitor--it's just that I truly believe that my suggestions weren't considered. : (

That's what I feel when I come here to this forum : (

I will go back to what I was doing, that if I have some code to share with people, I will share it. That's it.

I’m not sure I understand what is your complaint about the fastled library? Just that it’s too C++ like?

I’ve been using Adafruit neopixel library. I doubt that it’s much slower than fastled on an avr, anyway. And it seems fast enough.

Note that fastled is not an Arcuino-written library, afaik.

does user feedback count on this forum?

It depends on how close you are to the target market.
Experienced programmers complaining that c++ is too inefficient are not the target market…
People who want new features that require changes at the compiler level are not the target market.
In general,performance improvement of existing feature don’t get done - just buy a faster board (SO many implementations of digitalWriteFast() have gone by the wayside…)

Yes, we can sometimes be a bit harsh. Usually when someone asks a really dumb question or completely ignores any prior responses to their question.

I almost left the forum altogether when I answered question incorrectly a few years ago. One user (whom I haven't seen on the forums since) harshly berated me for my not completely correct answer. (Which is why to this date I rarely offer any answers).

On to your question.
I discovered WLED a couple of years ago and have converted all of my holiday decorations to using WLED.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.