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.

4
  • 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
    Commented Mar 1, 2019 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
    Commented Mar 1, 2019 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
    Commented Mar 1, 2019 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
    Commented Mar 2, 2019 at 1:00

1 Answer 1

3

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

2
  • 2
    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
    Commented Mar 1, 2019 at 20:26
  • 1
    Yep, 220ohm worked pretty well for me, thank you :)
    – R1S8K
    Commented Aug 22, 2020 at 22:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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