Failed to connect to ESP8266: Timed out waiting for packet header

Hi. I am trying to flash a sketch to my NodeMCU, using my USB-TTL converter.
I have been using these as my guide:

instructables.com/id/NODEMcu-Usb-Port-Not-Working-Upload-the-Code-Using/
and
lastminuteengineers.com/esp8266-nodemcu-arduino-tutorial/

When i upload the sketch, it takes a long time to connect, and then i get this error:

esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

Output:

Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
  File "C:\Users\sampw\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.1/tools/upload.py", line 65, in <module>
    esptool.main(cmdline)
  File "C:/Users/sampw/Documents/ArduinoData/packages/esp8266/hardware/esp8266/2.7.1/tools/esptool\esptool.py", line 2890, in main
    esp.connect(args.before)
  File "C:/Users/sampw/Documents/ArduinoData/packages/esp8266/hardware/esp8266/2.7.1/tools/esptool\esptool.py", line 483, in connect
    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

What can I do about this?

The NodeMCU has a UART on the board- why are you wasting time with the "instructables" method?
If you insist on doing it the hard way OR if your board's UART is bad, here's a couple of ideas.

First, as expected, the instructables instructions are wrong:
"So as to successfully upload the code using the USB to TTL module, first press the flash button and while you keep the flash button pressed, press the reset button, and then release them together."

  1. Press and hole FLASH
  2. Press and release RESET
  3. Release FLASH

Next, check your wiring. The UART Tx must connect to the NodeMCU Rx, and vice-versa.

txrx.jpg

Also, check the baud rate of the UART. I run mine at 115,200.

txrx.jpg