@Robin My English is not good enough, so sometimes I am not sure I see that you write. And that is the only I mean in my previous post. (And I am also not sure I write exactly that I think because of the same reason, so I am sorry :) )
I call neopixel.write twice only at startup. Besides that there is only one point where it called. Moreover, the code contains some trivial event aggregator to minimize number of calls.
When I write about synchronization I mean that WS1812 may be in any state when the code starts. Particularly, it may be still in process of byte receiving. For example, if we press reset button on ESP32 module when LED is in the process. In the state LED will interpret new data incorrectly and we will see number of bright pixels on display until next write. First regular write (current time etc) will be only after about 1 second after power on or reset, and display will be ill all the time. To minimize time of the effect I call neopixel.write twice at start.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
@Robin My English is not good enough, so sometimes I am not sure I see that you write. And that is the only I mean in my previous post. (And I am also not sure I write exactly that I think because of the same reason, so I am sorry :) )
I call neopixel.write twice only at startup. Besides that there is only one point where it called. Moreover, the code contains some trivial event aggregator to minimize number of calls.
When I write about synchronization I mean that WS1812 may be in any state when the code starts. Particularly, it may be still in process of byte receiving. For example, if we press reset button on ESP32 module when LED is in the process. In the state LED will interpret new data incorrectly and we will see number of bright pixels on display until next write. First regular write (current time etc) will be only after about 1 second after power on or reset, and display will be ill all the time. To minimize time of the effect I call neopixel.write twice at start.