With the help of fellow travelers here, I got my WS2811 50LED test strip working using the neoPixel call. I was unsuccessful using SPI directly through GPIO13 (NodeMCU D7) with the exact same code that works like a champ on the Pico. I followed the example in the tutorial using the send4bit call to shape the NZR waveform the 2811B modules are expecting.
Got some light, but weird colors, not what I sent. I'm guessing the baud rate setting is not precise, or, as Gordon mentioned in another thread, the H/W SPI still does some waiting/checking/something for each byte, so the continuous 800khz stream isn't actually happening. (Aside, where can I find the source for the neopixelWrite() call? I'd like to see how its implemented).
Anyway, my main problem's solved: I can drive these strips effectively with an 8266, which was the goal.
Here's the problem: I get these random crashes:
| __|___ ___ ___ _ _|_|___ ___
| __|_ -| . | _| | | | | . |
|_____|___| _|_| |___|_|_|_|___|
1v85.tve_master_66fde09 Copyright 2016 G.Williams
Espruino is Open Source. Our work is supported
only by sales of official boards and donations:
Flash map 4MB:512/512, manuf 0xe0 chip 0x4016
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
load 0x40100000, len 1396, room 16
load 0x3ffe8000, len 776, room 4
load 0x3ffe8308, len 540, room 4
2nd boot version : 1.4(b1)
SPI Speed : 80MHz
SPI Mode : QIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
What's going on? Looks like a reset -- is that a flaky reset button on the NodeMCU board? I note that if I rest my finger over the button area, contacting the USB connector, and over some other components on the board, the problem goes away. So it looks like noise. However, I don't know how to interpret "rst cause:4" and the other stuff sent to the console.