Hi guys, idk why the hell this could happen, but neither of my computers can upload to an ESP thru the esptool.py, which gives out an error, stating: could not open port 'COM5': PermissionError(13, 'A device attached to the system is not functioning.', None, 31)
. Tried reinstalling drivers, downgrading them to a 2023 version, none helped. (it's the CH340 serial chip), also tried uploading to Generic ESP8266, D1 mini (clone) and a Generic ESP32 C3. None worked. Port selection also correct, as an ESP8266 is displayed on boards list when connected, and only one single port is opened when i connect it on my laptop. Any ideas?
Hi @SabatM.
I think you were on the right track, but you just didn't install an old enough version of the driver.
This "PermissionError(13, 'A device attached to the system is not functioning.', None, 31)
" error can occur when uploading to the boards that use specific batches of the WCH CH340 USB chip. The problem only occurs when using the versions of the CH340 driver from 2023 and after.
The affected users have reported that doing a "roll back" to an older version of the driver from 2022 was an effective workaround. You can give that a try.
I'll provide instructions you can follow to do that:
- Click the following link to download the previous version of the driver from the chip manufacturer's website:
https://www.wch-ic.com/downloads/file/65.html?time=2023-03-16%2022:57:59 - Wait for the download to finish.
- Run the downloaded
CH341SER.EXE
file. - A "User Account Control" dialog may now appear asking "Do you want to allow this app to make changes to your device?". Click the "Yes" button.
- A "DriverSetup(X64)" dialog will open. Click the "INSTALL" button in the dialog.
- Wait for the driver installation to finish, as indicated by the appearance of a "Driver install success!" dialog.
- Click the "OK" button in the "Driver install success!" dialog.
The dialog will close. - Click the X icon at the top right of the "DriverSetup(X64)" dialog
The dialog will close. - Close Arduino IDE if it is running.
- Connect the Arduino board to your computer with a USB cable.
- Open the Windows Device Manager.
- Select View > Devices by type from the Device Manager menus.
- Open the "View" menu.
- If there is a ✓ to the left of the "Show hidden devices" menu item, click on "Show hidden devices" to disable it.
- Open the "Ports (COM & LPT)" section of the Device Manager tree.
- You should see a port identified as "USB-SERIAL CH340 (COMn)" under the "Ports (COM & LPT)" section (where "COMn" is some serial port e.g., COM4). Double click on that item.
The "USB-SERIAL CH340 (COMn) Properties" dialog will open. - Select the "Driver" tab of the "USB-SERIAL CH340 (COMn) Properties" dialog.
- You will see a "Roll Back Driver" button in the dialog. If it is not clickable, perform the following instructions:
- Click the "Update driver" button.
An "Update Drivers Device - USB-SERIAL CH340 (COMn)" dialog will open. - Click on "Search automatically for drivers" in the "Update Drivers Device - USB-SERIAL CH340 (COMn)" dialog.
- You should now see the driver installation wizard update the driver. Wait for the update to finish, as indicated by the message "Windows has successfully updated your drivers" in the dialog.
It is possible you will instead see the message "The best drivers are already installed". If so, please stop following the instructions here and reply on the forum thread to let me know. I'll provide alternative instructions you can follow.
- Click the "Close" button in the "Update Drivers Device - USB-SERIAL CH340 (COMn)" dialog.
The dialog will close.
- Click the "Update driver" button.
- Click the "Roll Back Driver" button in the "USB-SERIAL CH340 (COMn) Properties" dialog.
The "Driver Package rollback" dialog will open. - Click the radio button next to "My apps don't work with this driver" in the "Driver Package rollback" dialog .
- Click the "Yes" button.
The "Driver Package rollback" dialog will close. - Click the "Close" button in the "USB-SERIAL CH340 (COMn) Properties" dialog.
Now start Arduino IDE again and repeat whatever you were doing before when you encountered that error before. Hopefully this time you will not encounter that "PermissionError(13, 'A device attached to the system is not functioning.', None, 31)
" error during the sketch upload.
Just when you wrote that, i found a post on a forum that had 2014 drivers - it works! Thanks for making me sure to go for the older ones. Have a nice day!
You are welcome. I'm glad it is working now.
For the benefit of anyone else with the same problem who finds this forum topic through their research, I'll add a note that, even though I'm sure the 2014 driver will work, installing such an old version is not required. The last compatible driver version is 3.7.2022.01
, which is the version you get from following the instructions I provided. The incompatibility was introduced in the next version of the driver after that: 3.8.2023.2
.
Regards, Per
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.