Upload to ESP8266 fails: "PermissionError(13, 'A device attached to the system is not functioning.'"

Continuing the discussion from A fatal esptool.py error occurred: Cannot configure port, something went wrong:

Hello @ptillisch - I've tried to do all steps as you decribe, but I have one difference (I think most important) - I cannot see USB-SERIAL CH340 (COMn), Instead of this I see
image.
Version of my driver is:


and no matter what I do it remains the same.

I cannot unistall it neither revert to older version (button remains disabled).

May I ask for help? I am stuck.

Hi @ankadet. Please tell us which USB to serial bridge chip your Arduino board has. This is a black chip near the USB socket.

The chip will usually be identified by writing on the top. This might say something like "WCH CH340G" or "SILABS CP2102".

Examples:

FTDI FT232R

📷

ICIC-SS28-X-K232-01 by oomlout - CC BY-SA 2.0 (cropped)

WCH CH340

📷

SparkFun - CC BY-SA 4.0 (cropped)

Silicon Labs CP2102

CP2102

📷

SparkFun - CC BY-SA 4.0 (cropped)


If it isn't clear, alternatively you can provide the link to where you bought the board from and we'll see if we can determine the chip from the product listing.

Hi @ptillisch. Currently, I'm using Wemos D1 from several lots. All of them looks the same with top of the chip completely cleared. Some boards are identified as USB Serial USB CH340 some as USB Serial only.

Left is identified as CH340, right - not.
You should know - I changed cables, ports in computer and nothing. I noticed problem is much more often for chips "serial only".

Thanks for the clarification. I'm a bit doubtful that COM4 is the port of your Wemos D1 board because Windows Device Manager is indicating that COM4 is produced by a chip manufactured by FTDI, but the chips on your Wemos D1 boards are the WCH CH340, not an FTDI chip.

Please perform this experiment to conclusively determine whether COM4 is the port produced by the Wemos D1 board:

  1. Disconnect the USB cable of the Arduino board from your computer.
  2. Select Tools > Port from the Arduino IDE menus.
  3. Take note of the ports (if any) listed in the menu.
  4. Close the Tools menu.
    :exclamation: The ports list is only updated when the Tools menu is re-opened, so this step is essential.
  5. Connect the Arduino board to your computer with a USB cable.
  6. Select Tools > Port from the Arduino IDE menus. - If a new port is listed in the menu, that is the port of your Arduino board.

Now please reply here on this forum thread with the answer to the following question:

  • While following those instructions, did you see a port in the Tools > Port menu at step (6) that was not present at step (3)?

I performed test as you decribe and

step 3

step 6


So - it seems that Wemos produces COM4 but is identified as other chip.

On another note, I bought a few more boards and they have the same behaviour. After contacting the seller it turned out that these are probably counterfeit chips and are not compatible with the CH340. I returned the purchased boards and received another one that worked.

Thanks for taking the time to post an update. I'm glad you were able to obtain boards that work correctly.

It is very interesting to learn about these chips on the bad boards you received. It is well known that the chips marked as "FTDI FT232RL" on the cheap Chinese products are always counterfeits (but fully functional at least). We are also familiar with the unlabeled SOIC-16 chips that identify as WCH CH340, but are incompatible with the latest WCH driver. But an unlabeled SOIC-16 that identifies as an FTDI device is new to me. Hopefully we won't see these become a new cause of sorrow for the Arduino community members who take the gamble of buying suspiciously cheap boards from random sellers.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.