0

So I've been happily making away with these nodeMCU boards now for a while but I came across a strange issue when updating some code on my board.The problem was that I couldn't flash anymore with Arduino's IDE (OR the NodeFlasher tool)

The error I was getting in Arduino's IDE was:

warning: espcomm_send_command: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed

I tried flashing over all the memory with the flash tool but that didn't work, I also tried connecting D3 to 3.3v output, that did nothing. I've also tried holding the flash button down while flashing without any effect.

  • 1
    the flash button should be held down at power-up or reset to go into flashing mode at boot. it connects io 0 to ground (D3 is io 0). NodeMCU has circuit to control reset and reset to bootloader by the esptool. The esptool in IDE is different from the esptool.py (until 2.5.0 esp8266 arduino). – Juraj Mar 1 at 17:33
  • Thanks @Juraj , I tried to figure out the right way to "press" the flash button but a lot of things I read were misleading and said to hold until flash was complete. – Tyler C Mar 1 at 19:16
  • I am afraid your answer to this question is misleading too. NodeMcu has pull-up resistor on io 0. The bootloader checks io 0 for LOW to start in flashing mode. I don't see a difference in plain wire to ground and a 220 Ohm resistor to ground. – Juraj Mar 1 at 20:18
  • It's entirely possible there isn't one but I hadn't seen anything telling me to do that, this is simply what worked and since it's not broken anymore, I can't test it. But with how many of these I'm running I'm sure it will happen again. I'll update the answer though since not everyone has a 220ohm resistor to try. – Tyler C Mar 2 at 1:00
1

The fix ended up being to use a 220ohm resistor between D3 and GND (It has been pointed out, though I haven't tested it, that just wiring D3 to ground on startup should have the same effect). Then unplugging the USB cable, plugging it back in, then flashing the blink program to test. That got it going. I tried a 10kohm resistor too per some documentation I read but that didn't end up working. Wanted to post in case someone else stumbled on this issue.

Source

GitHub Issue

Helpful Articles:

ESP8266 bootloader modes

NodeMCU Pinout

  • NodeMcu has pull-up resistor on io 0. The bootloader checks io 0 for LOW to start in flashing mode. I don't see a difference in plain wire to ground and a 220 Ohm resistor to ground – Juraj Mar 1 at 20:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.