Wemos is not recognised

I connected the Wemos D1 mini to the Arduino IDE but it seems it is not getting detected. What could be the reasons?

1 Like

Most commonly there are three reasons.

1) Wrong Cable
Many micro USB cables are only able to charge devices but not transfer data. So please make sure you have a data cable.

2) Driver problem
On some operating systems, the CH340 chip that it uses to connect to the computer might not be recognised. This most likely affects older operating system (versions). If you think you are affected by it, you can search and download the CH340 driver for your operating system.

3) Flashing speed
Sometimes if you cannot consitently flash, it helps to reduce the flashing speed in the Arduino IDE under Tools, Upload Speed.

Please let me know if you could resolve the issue.

I might be having the same problem as you Micha.

I bought two kits, assembled one, and have tried to upload Blink & the AG sketch into both Wemos boards with the same result.

I’ve tried a different USB port, USB cable, confirmed the board is recognised by Windows 10, and dropped the flashing speed, all without success.

Here’s the board showing in Device Manager:


I use this same PC to program other Arduinos without problems.

My setup appears to be erasing and programming the board fine, it just stops at this step:


After Googling this I see some notes that suggest there might be a problem with the GPIOs? Another suggestion is to change the Tools > Reset Method, but that appears to have been removed from the Arduino programmer. (I’m running Arduino 1.8.13 for Windows). Here’s another link that goes into this issue. Am I clutching at straws by suggesting there might be a dodgy batch of D1 Mini’s out there, or is it something more simple?

- Greig.

Greig, are you flashing with the Wemos already soldered on the DIY PCB or the Wemos detached from the PCB?

If you already soldered it onto the PCB, please post some images of the PCB front and back side.

There might be a short somewhere that prevents the Wemos from getting flashed.

It actually looks from the flashing output that it successfully flashed.

When I flash successfully I get this output:

It looks pretty identicial to yours. Why do you think it did not flash successfully?

As I mentioned earlier I have two kits - one I’ve assembled and the other not. I moved the focus of my testing to the bare board on the off-chance something on the assembled board was the problem.

Both Wemos boards fail to do anything after I get to the “hard resetting via RTS pin” message. No apparent signs of life running Blink, although the LED does flash briefly through the “writing” steps of the programming process, which confirms it’s at least functional.

It looks to me like this is a problem with Blink!!

I’ve just returned to the assembled board and loaded the “CO2_PM_SHT_OLED_WIFI” sketch, and it’s now reporting “Init dceddd” on the display, and I see I have a new WiFi network available…

My only apparent change from yesterday’s build efforts was lowering the programming speed. (That had previously defaulted to 921600, and this successful upload was at half that speed - 512000.)

The only apparent difference in our outputs is the additional line referencing the changed speed:

Relevant or red herring?

So it’s no big deal if it’s not going to run Blink. I’ll move on! I have some [lack of] air quality to measure.

My advice for anyone following is to not be too bothered if Blink … doesn’t. If it uploads OK and you get to the “Hard resetting via RTA pin” message, you’ve proven you can upload a sketch to it sucessfully, so time to move on to the AirGradient sketch. Good luck!

- Greig.

I just flashed the BLINK example on the Wemos and it works for me. Can you please compare below to your Blink code, especially if it also uses LED_BUILTIN or a specific PIN number instead?


I bought a 3 pack of D1 Minis off Amazon and the first one I tried was failing to be flashed with what I wanted, so I tried uploading Blink to the same device and it failed. The 2 other D1s I got worked just fine, so it does happen.

But I was getting a different failure much earlier than what your screenshot shows, so hopefully a different issue.

1 Like

Here’s the issue: we have different versions of Blink.

When I change LED = 2; or replace ‘led’ with ‘LED_BUILTIN’ it works as expected.

  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.

// Pin 13 has an LED connected on most Arduino boards.
// Pin 11 has the LED on Teensy 2.0
// Pin 6  has the LED on Teensy++ 2.0
// Pin 13 has the LED on Teensy 3.0
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);

One for future constructors to be on the lookout for.

- G.

Ok Great. That is what I suspected. Good that we sorted it out.