"I've recently discovered that ESP8266 (NodeMCU 0.9 and NodeMCU 1.0 boards at list) has a weak SCLK output that vary from module to module, I really don't know why but voltage goes around 1.7 to 2.5 volt max. This should not be a problem for a SPI device but connecting more devices or some type of chip buffer can be problem! My 74HC125N for example do not work well. It's just a note ut I will investigate in future but please if you connect several SPI devices and not nothing work take count of this and do not apology!"
When I stumbled across this comment in the doc and decided to check it out with the scope. I disconnected the NodeMCU board from everything and took the attached traces of the SPI bus signals without anything connected.
- BLUE it the SPI clock (GPIO14 - HSCLK - D5)
YELLOW is the SPI data line (GPIO13 - HMOSI - D7).
The SPI data line is a total mess, sometimes failing to even reach 1.3v while the SPI clock is typically 1.7v to 1.8v. The GPIO on the same chip delivers a crisp 3.3v as expected.
Suspecting bad hardware I tested with four different Lolin NodeMCU V3 boards and with multiple 2A power supplies and they're all the same. I added all kinds of capacitors to 5v and 3.3v, no change. I checked the schematic and beep tested the board to see where the SPI pins go, and they seem to be directly connected to the ESP module and nothing else as you would expect. Suspecting that the traces might be too thin, I tried it connected directly to the ESP12E module. No change. What do heck is going on here?