11

When trying to upload the blink sketch to my (unofficial) Arduino Uno, I get the following error:

avrdude ser_open() can't set com-state for "\\.\COM3"

I have programmed this Arduino before using this same laptop, but not for quite some time. I have not changed anything in the Arduino IDE in this time.

I have tried the following:

None of the above fixed the issue and all gave the same error as shown above (except when trying different USB ports which showed the error just for different COM ports).

EDIT: Just tried both the Uno and Nano on another computer and both worked fine. This confirms that both the arduinos and cables I'm using are working properly.

rozzy
  • 213
  • 1
  • 2
  • 6

4 Answers4

10

Maybe a Windows driver problem. Do your uno and nano use a ch340? (It is the component translating USB to uart (serial pins of atmega328). Windows has no software way to differenciate boards using this component. It is a common use on cheap clones to lower price. Official arduinos use a second atmega (atmega16u2 natively supporting usb) instead of the ch340. Allowing windows to identify the arduino model.

You should try to update your ch340 driver as you have the same problem with the 2 boards. here is the download page of the manufacturer (ch341ser.exe is the package you want)

You can also try to connect your board to an usb2 port as some problems (and solutions to try) are posted here (arduino forum) And even try to use an usb2 hub...

Bouc
  • 192
  • 1
  • 4
2

I had the same problem, open the port under COM and LPT in your device manager. Then roll back driver so the PC uninstalls all updates to the driver. At this point uploading the code will give the "Windows does not recognize driver" or some error like that. Now just unplug and plug the UNO back in and update driver. This solved the problem for me. Hope this helps :)

Tejas Rao
  • 21
  • 1
0

I had the same problem. I was able to upload a simple Blink example, but not my own program. And I thought there's no problem in my program, since I successfully tested it on other Arduino before. But actually, that was the problem. I had this in my program (for console logs):

void setup() {
  Serial.begin(9600);
}

Then I read that different Arduinos use different baud rates. Originally I tested it on Arduino Mega, but this time I wanted to upload it to "unofficial" Arduino Nano (for which you have to use ATmega328P (Old Bootloader) option when uploading).

Since I didn't need debug logs in my program anymore, I removed these 'Serial' commands completely. Then it got uploaded without problems.

A short article on this topic

juice
  • 119
  • 4
-1

I have the same problem. I found it related to the card and not the PC. The offending card uses processor ATMEGA328P_U_TH (Image 1). The successful card uses a different processor ATMEGA328P_U (Image 2). I have NOT found a way to use the ATMEGA328P_U_TH card. It will not correctly connect to a PC and allow code to download from IDE to card.

Image 1 Image 1

Image 2 Image 2

StanB
  • 9
  • 3