Uno Clone will not upload

I was gifted 3 arduino uno clones that are new in the pack. I can not get any of the three to upload any sketches. I get:

An error occurred while uploading the sketch
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x9e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x9e

Each time that I try to upload any code. I have tried three different windows cpus and three different serial cables. Doesn't seem to help. I have looked around the forum for answers, but nothing... The weird thing is in the drop down menu Tools --> Port I can see the "COM" show up when the arduino is connected, but it doesn't say "Com X Arduino Uno" like most of my other boards do. What can I try?

Thanks!

My guess is that the Arduino Uno serial port hasn't be recognized.
Many clones of Uno use CH340 for USB serial, so you'll have to add the driver yourself.

Well, that seemed to help... THANKS! But it didn't fix it completely... I can now upload a simple sketch like the one below one time and it will go through the upload process and say "upload done".

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:

}

If I try the very same sketch again, I get the error:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avr_read(): error reading address 0x0000
read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_recv(): programmer is not responding
the selected serial port avrdude: stk500_recv(): programmer is not responding
does not exist or your board is not connected

I cannot upload any code that has any actual "code" in it. Such as:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

}

I get this error:
avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x73
avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x61
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x61

Thanks for any and all help!

The bootloader may be incorrect and you should try rewriting.
Do you have a working Arduino other than your clone new one?

Ok, I have no idea what that means lol.

Yes, I have a different cloned uno that will upload. But all three that are alike give me the same errors.

I simply downloaded the file you provided unzipped it and installed it. I don't know if I am supposed to put in a specific place or if I am supposed to change a setting in the ide?

The Arduino chip needs to have a pre-written "receive sketch" program.
The bootloader does that.

Unfortunately, rewriting it requires one "working Arduino", so it can't be run in that situation.

Moreover, I'm sorry, I have to leave my desk and can't come up with an alternative right away.
There may be help from other forum volunteers.

I do have a working arduino uno.

If it completed successfully then that was all that was required.

You can use it as an "Arduino as ISP" programmer to do a "Burn Bootloader" operation on the non-working boards. This might possibly put them into a condition where you can upload to them. If you would like to give it a try, you can follow this tutorial:

Ok, I will give it a shot, but do you think all three of them would have the same issue?

Also, I do have another uno that works to do this with, but I have an arduino mega that is easier for me to access. Can I do it with the mega?

Thanks!

It doesn't make any sense. It just uploaded a fairly complex code (no idea why) but now it won't upload again. It is almost like the first time you connect it to a "new" usb port and select it in the tools port drop down menu it will upload and then it won't upload any more....

Hello, I have seen the same behavior on several recent batches of Nano Clones as well
Uploads once, never again
Have been using similar clones for years without issue, The old ones used CH340G driver and "old" bootloader. The new ones use "new" bootloader, but only work once. Occasionally I have had them upload a second time after connecting/disconnecting multiple times but no rhyme or reason to it.

Usually the "can only upload once" symptom is caused by the board's auto-reset circuit not working.

Normally you need to do a hardware reset of the microcontroller to activate the bootloader, then start an upload before the bootloader times out and starts the user application. However, after burning bootloader the bootloader is perpetually activated so no reset is necessary, meaning the first upload will work with or without a reset. The board may be in that perpetual bootloader state when shipped by the manufacturer. I haven't actually seen this reported before for a manufactured board with built-in USB adapter chip (it has always been DIY circuits or Pro Minis), but it's certainly possible the manufacturer messed up the reset circuit.

The auto reset circuit (for an example, see these "minimal setup" schematics) is the DTR pin of the USB-TTL serial chip connected to the reset pin of the ATmega2560 via a 0.1 uF capacitor. In combination with the pullup resistor on that pin, it generates a reset pulse when the serial connection is opened.

To test this, you could see whether uploads work after a manual reset. The tricky thing is that when you press the "Upload" button in the Arduino IDE, it first compiles your sketch before starting the actual upload. If you reset the microcontroller immediately after pushing the button, the bootloader will have timed out by the time the upload actually starts. The way to get the timing right is:

  1. Select Sketch > Upload from the Arduino IDE's menus to start an upload (or click the upload button or whatever you prefer).
  2. Watch the black console window at the bottom of the Arduino IDE window until you see something like this:
    Sketch uses 444 bytes (1%) of program storage space. Maximum is 30720 bytes.
    Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. 
    Maximum is 2048 bytes.
    
  3. Immediately press and release the reset button. The upload should now finish successfully.

While that did not work, you got me thinking. I have a MAX485 chip connected to the hardware serial port and when I popped out that socketed chip it uploaded fine. Earlier i had programed the Nano before i connected it to the rest of the circuit.
Thank You for the quick response

The one that I got to work is still hit or miss with uploading. Sometimes it does fine... other times I get errors. I haven't had a chance, but I will try the suggested solution above and report back if it works for mine. Thanks @in0

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