I thought all the USB cables where the same. I made fun of audiofools, but now...
I received a new NodeMCU board and proceeded to flash it via USB using the Arduino IDE. After a while the flashing process was interrupted. Well, it happens. Let's tray again. Same. Let's just read serial data from another, already flashed board. Garbage. Only after a while I tried a new cable and... it worked.

The MCU flashed correctly and the serial output was working just fine. I tried again with the other cable and the old problems reappeared. I could not, and I still can not believe it.

I tried all the mirco USB cables I have in my house, from solid data cables to random cables that came with power adapters. Out of 15 only 3 worked reliably.
Why? All these USB cables work just fine when I used them to connect to external HDs and other stuff. I can imagine that these MCU dev kits are using chipsets that are flakier than what is used in USB-SATA controller, but still I cannot imagine which part of the cable could make a difference. They are just four wires twisted together, aren't them?
What makes the three working USB cables better than others 12 non-flashing cables?