I recently purchased two Arduino starter kits from Ali Express. These include clone R3s and various components for projects. One was for a friend and I later got one for myself. I also ordered two additional boards described as R3s with 16U2 from a different seller.
The first two boards looked like clones. Those from a different seller have fake logos.
The last three boards have problems: they aren't recognised on all USB ports. Some show fine (ports on a laptop and via hubs) others (on my PC) give "device descriptor request failed".
Uploading sketches works fine on all boards when they're recognised.
The later three boards wont enter DFU mode. Shorting the reset pin on the 16U2 ICSP to ground has no effect. Using an USBASP programmer doesn't work either for the 16U2 ICSP: not recognised. The main ICSP works fine for the 328P.
I checked out the faulty boards and they're visibly different round the 16U2. This is the good board:
Using a meter most of the 16U2 ICSP pins don't seem to connect to the chip itself. I suspect it's a counterfeit 16U2: maybe a dedicated USB/Serial chip repackaged to reduce costs. For most users they wont try DFU mode and will never notice.
Anyone got a similar board? If so can you enter DFU mode on it?
It sounds like whatever chip is being used to interface the fake UNOs to the PC need drivers. The fact that Windows didn't do an auto-install tells me they are not common chips. Worst case is you have useless boards.
Despite the apparent similarity, the font used in the logo is quite different. Add that to the non-functional pins you describe, then your suspicions may well be correct. I did wonder whether it might be a CP9102X, but those come in a 28 pin package so perahps not.
Other than not liking some USB ports I can upload sketches fine to the things. The Mega328P is socketed and its ICSP port works. I removed the chip and put it in an external programmer and it checks out as far as I can see. So the Mega328P seems OK or is at least a good clone.
The board shows as a COM port and is reconised as Uno R3 with VID/PID 2341:0043.
As I said DFU mode can't be entered and the 16U2 ICSP port is unresponsive. The type number is horizontal on all the bad boards and vertical on the good one.
I've partly traced the circuit round there. The +5v/GND pins are connected. There is a diode and resistor between +5V/ ICSP RST pin but doesn't seem to be connected to anything on the fake 16U2.
It's a sketch that dumps a kind of serial number of some chips. If the result contains a lot of FF then it's suspect.
TLDR version I ran this sketch:
//found this code here
//https://gist.github.com/speters/f889faec42b510052a6ab4be437d38ca
//Purpose is to simply run a memory check on ATMEGA238P to test for counterfeit parts
#include <avr/boot.h>
#define SIGRD 5
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("");
Serial.println("boot sig dump");
int newLineIndex = 0;
for (uint8_t i = 0; i <= 0x1F; i += 1) {
Serial.print(boot_signature_byte_get(i), HEX);
Serial.print("\t");
newLineIndex++;
if (newLineIndex == 8) {
Serial.println("");
newLineIndex = 0;
}
}
Serial.println();
}
void loop() {
}
As I said this was a test for the Mega328P not the 16U2. Yes the first few bytes are the device ID and it contains miscellaneous other information. Some of it is documented here and other parts on the data sheet. Copied Mega328Ps seem to have more FF than genuine ones (see the link in the thread).
As for the "16U2": since I can't reprogram it in any way there aren't many tests I can do with it. I wonder how many people have these boards and don't realise since they never tried to put them in DFU mode?
Before this I'd had good experiences with Aliexpress: pretty much every board I had worked fine.
Thanks for that link; I think I've seen it before but it did not click.
Have you tried ICSP via the 6 pin header closest to the 16U2? I did search this topic but did not see it mentioned.
Lots of people don't have a need for other functionalities on the 16U2 (e.g. UnoJoy) so will never realise what they bought till the sh.t hits the fan.
I guess it depends who you buy from; I don't buy on Ali. Did you buy everything from the same supplier?
I tried a USBASP programmer and and an external programmer on the ICSP header next to the 16U2. They power the board but neither can even read the chip ID. Later tests showed several of the pins of that ICSP don't connect to the fake 16U2 at all.
The main ICSP for the Mega328P works fine with both programmers.