My knock-off "Arduino UNO R3" Board isn't connecting with my computer properly (anymore)

Hello! I ordered a knock-off "Arduino UNO R3" Board on Amazon last year. It was for a project. When I ordered it, it used to initially work perfectly fine. Then, all of a sudden, it stopped connecting properly with my computer. It was receiving power from my computer, but the actual data transfer function from the computer to the board wasn't working. This was also unusual because, like I said, the data transfer USED to work properly. I tried to connect it through the I.D.E, but it didn't work. I checked my device manager, and it said:

Windows has stopped this device because it has reported problems. (Code 43)

A request for the USB device descriptor failed.

The Device Manager called the board "Unknown USB Device (Device Descriptor Request Failed)".
Is there a problem with my board's USB Port ? What does this mean and how can I fix it ?

Firstly, have you tried another USB cable?

Secondly, does it work on another computer?

Actually, there was no USB Cable that came with the board. I've been using a different cable that came with a whole other kit (which was also a knock-off) from a completely different company (it was called "QUAD"). The kit included a completely separate Arduino UNO R3 (again, knock-off) which worked and works perfectly fine with the cable. So, I don't think it was a problem with the cable. I think it might actually be a problem with the USB Port on the board because it had some minor damage done to it (don't remember why, but was caused by me) with some tube getting lodged inside it and then it was taken out forcefully using a sharp object and I don't remember if the board stopped functioning before or after that. Hope this helps.

What is the serial-to-USB converter on the board? It's the IC closest to the USB port.

  1. If it's a CH340 you can try to rollback the driver. See Port monitor error: command 'open' failed: Invalid serial port. Could not connect to COM serial port - #49 by ptillisch.
  2. Not wanting to be the bearer of bad news but be aware that you might have damaged the serial-to-USB converter due to wiring mistakes. We don't know what your last project was when you did not have a problem and we don't know what your current project is.

The USB connector could have a problem with the data lines but still provide power. I have a clone board that developed that problem. I can still program it with a tedious ritual using a USB to serial converter directly to the serial pins bypassing the onboard USB-serial chip.

If by "tedious ritual" you mean getting the reset timing just right, then yes that is a bit of a faff. However, there is an easier way if your USB-to-serial converter exposes the DTR signal? If so, that can be connected via a small capacitor (4.7uF, 10uF) to RST which will trigger reset automatically. Makes things a bit easier than timing the reset button manually.

The other way is to use a cheap USBASP programmer on the 6-pin ICSP header. That's the way I am programming a clone Nano I have here with a faulty UART. The UART chip has been removed so no chance of serial comms or programming that way any longer. The UART was unmarked so not replaceable either. I can still use the USB cable to supply power to the board though.

@the_arduino_duo, the UNO R3 usually has a USB A port which, unlike Micro-USB, is usually quite robust, but I guess not impossible to damage. Perhaps one of the data pins was caught with the sharp object you mention and has lifted or bent out of position. If you look into the connector there should be 4 tracks on the centre pillar, two on either side. Since the tube was removed "forcefully", it might be worth also checking the solder joints on the underside. BTW, if the connector is not repairable, then you may still be able to program the UNO board using one of the two methods above. Since you have a second Arduino UNO, you can also use the "Arduino as ISP Programmer" method.

https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/

1 Like

Some thin like this. The tedious part is hooking it all up.

I don't know exactly what the USB-to-Serial Converter is on the board, but it might be a CH340 like you said, since the board is supposed to be a copy of the Arduino UNO. I tried what ptillisch said, but I got stuck on step 15. I couldn't see the "Ports (COM & LPT)" section in the device manager tree.
My previous project was actually a copy of someone else's project (uploaded on Youtube for other people to copy, ofcourse), and that worked on my other Arduino UNO and their Arduino NANO. Plus I didn't do ANY projects with it yet, and just bought it to do a project in the future. So, I don't think the project is the problem.

The UNO R3 actually has a USB-B Port on it (y'now, the one used for printers) and the USB-A is used to connect to the computer. As for the B Port on the board, the two underside pins and the right upper pin look okay to me, but the left upper pin is kind of damaged. The plastic covering the very front edge of the pin is damaged and the pins pointy edge is exposed. I don't think that the damaged plastic has anything to do with the problem, but I don't know for sure. As for the solder joints of the port, they look fine to me and the port is not wiggling (much, as in the port is not wiggling so much hat it shoudn't).

The IC (left of the Rx and Tx LEDs) in this picture is the Atmel 16U2 that handles the serial-to-usb conversion.

Can you post an image of it for your board.

OK, so it's brand new.

That will happen if Windows has a problem with the device.

What might work is to download the driver from the link and install it without the board connected. You will get a message that the driver is successfully pre-installed.

Next you can connect the board and check device manager.

As for the solutions you have given me, I have some questions:
Solution 1 Questions:

What do you mean by a DTR Signal ? What is it ?
Is this solution just to reset the code on the Arduino ? If so, then it doesn't solve my problem because I can reset the code using the reset button on the Arduino.

Solution 2 Questions:

What is a USBASP Programmer ? How can I connect it to the 6-Pin ICSP Header on the board ? How does it work ?
What is a UART Chip ? How does it work ? What is its function ?

Solution 3 Questions:

The link you sent clarifies everything about this solution, so yeah, no questions here.

Please answer all the questions I've given you. Also, what is the easiest, cheapest and best method to use out of the above 3 ?

Actually, what is the 'Device Manager Tree' ? Is it just the application 'Device Manager', or is it something else ? Also, I still couldn't see the 'Ports (COM & LPT)' Section.
I don't know how to transport pictures onto my laptop :sweat_smile:. So, that is REALLY going to hinder the process. Although, I can tell you what is SAYS on the IC:

Atmel

MEGA328PB
-U
2233D   TH
22332CT

I just DESTROYED my eyes trying to read that and I REALLY hope it was worth it :tired_face:. I hope this helps you.

P.S.: Your board looks REALLY dusty and rusty. You should probably check on that.

Oops my bad!. Yes that was the one I meant, the square one used on printers.

DTR - Data Terminal Ready is a signal used in serial communications in addition to Tx and Rx. On Arduino R3 (and earlier) boards, this signal is used to trigger the RESET function to re-start the MCU (processor) and load the bootloader whenever a serial connection is made. The bootloader then checks whether a upload is waiting to happen, and if that is the case, uploads the new program code to the MCU. Once uploaded, the program is then run. Otherwise, if nothing happens within a certain time, the existing code is run. That's how the Arduino boards conveniently provides a means for a sketch to be uploaded via USB/serial. The slight downside is that there is a delay of a second or two while this happens and before the serial port becomes responsive.

Usually USB-to-Serial adapters will present DTR on one of the pins on their edge connector, but not always. For example:

The Reset button can be pressed manually, but it can be a bit fiddly to get the timing just right, although it can be done with a bit of practice. However, if you connect DTR to RESET via a small capacitor, it will trigger reset automatically.

Solution 2 Questions:

What is a USBASP Programmer ? How can I connect it to the 6-Pin ICSP Header on the board ? How does it work ?
What is a UART Chip ? How does it work ? What is its function ?

A USBASP programmer is a cheap device to program the Arduino via the six pin ICSP port. They are cheap and readily available and handy to have to recover a corrupted board.

As shown in the pircture they often come with a ribbon cable and the siz pin adapter whoch just plugs into the header on the Arduino board. The only thing to make sure, is that it is plugged in the correct way around. In the IDE you select Tools -> Programmer -> Usbasp. To upload the sketch, instead of selecting Sketch -> Upload, you use Sketch -> Upload using Programmer. You also have the option to install or recover a corrupt bootloader with Tools -> Burn Bootloader.

Wrong IC. That is the main processor.

Take a photo and enlarge it; mine was taken with macro mode on a cell phone.

I did not tell it that it had to go for a photo shoot. So it did not shower :rofl:

So, which method is the easiest, cheapest and best one to use ?

Cheapest - if you already have a second Arduino UNO, the last one is the cheapest because all it requires is 6 jumper wires. The other two require an additional bit of kit (USB-to-Serial, or USBASP programmer), but they are both cheap options.

Best - not sure you can characterise one as being 'best'. They all do the same thing in effect, i.e. upload a program to the board. One works via the serial port, the other two via the ICSP header. Uploading via The ICSP header has the advantage that it is a bit faster and in addition to uploading a program allows you to install a bootloader and recover the board.

Easiest - it is simpler to just plug in a USBASP to the six pin header and then USB on your PC than individually connect the six wires, but connecting six wires is not that difficult either.

I do think that before doing anything further we need to let @sterretje just talk you through checking the chip and driver in case it is a driver issue.

Yeah, I think I'll choose the second option.

Yeah, I think we should do that.

My board's chips are completely jumbled up so I don't know which one is the IC and which one is the Main Processor.

What I said above :up_arrow:. Can you tell me how to do it ?

:laughing: Just told you that you should clean it.