Problem with Nano clone from China

I bought this:

Driver is installed, the COM port shows up, and a red LED turns ON.

But the Arduino 1.6.5 software can not find the board it seems. It says:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x60

I have set the correct COM port (I have disabled all other COM ports), I have set the processor to ATmega328 as I can read from the chip (well, it says MEGA328P), and I have set the board to Arduino Nano.

Or should I set something else, as this is not an official Arduino thing?

Or can that version of the software not handle V3?

Other ideas?

You've got the CH430G driver?
Try the loopback test to start.
Perhaps the processor isn't bootloaded, so the '328P isn't responding.

CrossRoads:
You've got the CH430G driver?
Try the loopback test to start.
Perhaps the processor isn't bootloaded, so the '328P isn't responding.

Well, driver says CH340. I don't seem to be able to find any additional lettering.
It is made by WCH.CH and has version number 3.4.2014.8. It is from Aug. 2014.
Just a download I made. Can't remember how I found it, but site was in Chinese. (not my favorit language or alphabet, I'm afraid)
I am running 32 bit XP.

Add on: Chip on the back is CH340G!

Where do I find that loopback thing?

I have tried the Upload Booloader. Same result. (It did say something about missing USB or ...)

Which 'programmer' should I select? (if any)

340, 430, what goes with the chip.
LoopBack test is described in the Installation/Troubleshooting forum.
Basically, connect Rx & Tx, open the serial monitor, and see if text you enter is echoed back.

To install a bootloader, you must have a Programmer, or an Arduino running a bootload installer sketch, I suggest Nick Gammon's:
http://www.gammon.com.au/forum/?id=11635

(forum screws up the link, need to tweak the front of it to delete extra http characters)

walker1:
I bought this

That link works only if you have already visited "banggood.com". The site uses some psychopathic Web software and frankly, I have been unable to purchase from them because of it.

walker1:
Driver is installed, the COM port shows up, and a red LED turns ON.

Ah, but the question is - does the "L" LED start flashing as well? Generally when you buy a chip with the bootloader installed it will also contain the test "blink" sketch, so whilst it is not necessarily the case, failure to "blink" will indicate no bootloader and as CrossRoads points out, to burn a bootloader, you must have a programmer (USBASP or another Arduino) to do so.

walker1:
Or should I set something else, as this is not an official Arduino thing?

"Official" has little to do with it. We are talking hardware and software.

walker1:
Or can that version of the software not handle V3?

The "V3" is meaningless.

CrossRoads:
LoopBack test is described in the Installation/Troubleshooting forum.
Basically, connect Rx & Tx,

And connect RST to GND. Just need two jumpers.

There seems to be some confusion about the device I have.

The following are pictures of the device. None of the pictures are mine, I do not know the sources, but I can not tell the difference from my device.



(Just found out how to convert links to actually showing the pics :slight_smile:

In one end is an USB connector, and underneath is the 'famous' CH240G chip. The bottom side also holds what seems to be a 5V regulator.

This device, in other words, go, via an USB cable, directly into an USB port and produces a COM port to be used. Not sure, if I can hook Tx and Rx to each other, as they must already be connected to the 'big chip' too. Or ...?

In the opposite end there is a 2x3-pin connector and 4 LEDS. Named Rx, Tx, Pow and L. Here is also a push button, which I believe is Reset. Pin named RST is connected to it and one pin on the 2x3-pin.

Except the Pow LED coming on, nothing else seems to happen. I have tried the push button, but no cigar.

Just one new idea that popped up! Am I supposed to put jumpers on that 2x3-pin connector? One pair has now been verified to be GND and RST. Some alternative boot option maybe?

The CH240G seems to be connected to the 2x3.

My eyes, unfortunately, are not good enough to trace much more than that.

The Chinees driver site sounds right. If you open up Device manager, does the Arduino shows up under ports? No devices with a ! after plugging the Arduino in?

walker1:
Not sure, if I can hook Tx and Rx to each other, as they must already be connected to the 'big chip' too. Or ...?

That's why you need a jumper between GND en RST when you do the loopback test.

walker1:
Except the Pow LED coming on, nothing else seems to happen. I have tried the push button, but no cigar.

That's not normal (in 9% of the cases). When you power on an Arduino for the first time it should start flashing the L led as a sort of "hello world" program. But before you panic, just do the driver check and loopback test first.

walker1:
Just one new idea that popped up! Am I supposed to put jumpers on that 2x3-pin connector? One pair has now been verified to be GND and RST. Some alternative boot option maybe?

Nope, that's just the ISP header. Used to program the microcontroller with a programmer (for example, burning the bootloader).

You missed a "9"?

OK, have some follow-up info.

Inserted a jumer to keep RST LOW. Inserted another to short TX1 to RX0.

Fired up Hyperterminal and connected it to COM 6, the only available COM port.

Keystrokes made both the RX and the TX LEDs flash, rather weakly,
Nothing came back to the terminal! :frowning:

Removing the RST jumper changed nothing!

Removing both jumers and trying to let the IDE upload made the RX LED flash, again rather weakly, once every 3 sec.s or so. Nothing seen on TX LED. Upload failed.

There is a 1kohm resistor inserted in both lines from CH240 to RX0 and TX1. The LEDs are connected directly from the pins up to +5V through another 1 kohm each.

Wonder if the two LEDs produce too much of a pull-up, to create a proper 0 into CH240? This meaning, that a 1 kohm pull-down from CH240 may not create a good 0 when the 'ouput' has to deal with the pull-up from even one LED?

Havn't yet seen where the ATmega is connected into those signals. If on the LED side of the 'isolation' resistors, that chip may fail too!

I have not been able to find a datasheet on the CH240 chip.

OK, so you ran the test.

walker1:
I have not been able to find a datasheet on the CH240 chip.

Presumably because it is not a "CH240"; it is a CH340. :roll_eyes:

Paul__B:
OK, so you ran the test.
Presumably because it is not a "CH240"; it is a CH340. :roll_eyes:

A small error at around sqrt(2)! Minor detail. :wink:

Did find the datasheet, and as expected, a LOW into CH340 needs to be below 0.7V. That will NEVER happen in the loop config!

Look at attached schematic.
With both LEDs connected, I get about 2.1 V into CH340, if it gives 0V out. The voltage drop across the LED is about 1.8V.
With only one LED active, I get 1.6V, which may be enough for a true CMOS input on the ATmega. But is it?
From that datasheet I get 1.5V max at VCC = 5V, so again No Go!

Does anybody know, how the circuit looks like on a genuine Nano?

NanoCh340a.gif

walker1:
Did find the datasheet, and as expected, a LOW into CH340 needs to be below 0.7V.

Well, not necessarily. It needs to be significantly below 1.5 V. It is apparently designed for compatibility with original "TTL" logic!

If this is the circuit, b6d8a87877010fb836cad35760f1a8947dd36029.gif then you clearly will have a problem. If the LEDs went to ground it would be no problem but of course they would be on by default.

walker1:
Does anybody know, how the circuit looks like on a genuine Nano?

No problem! It is on the (Arduino) website here, under "Products".

The trick is that the FT232 has lots of pins, and has separate status outputs to drive the LEDs, presumably responding not to the data itself, but the mode of sending or receiving data.

Paul__B:
No problem! It is on the (Arduino) website here, under "Products".

The trick is that the FT232 has lots of pins, and has separate status outputs to drive the LEDs, presumably responding not to the data itself, but the mode of sending or receiving data.

The circuit is as shown. At least that is what I make of it, and I am not all that bad at reverse engineering :blush:

But I suspected so. Arduino does not have any LEDs on Tx and RX. The Chinese may have wanted to make a difference? No engineer nor test involved?
I did read somewhere, that there is some license fee on the original USB interface chip.

And the two external pins (RX0, TX1) ARE connected directly to the 'big' chip on my board.

Will see, if I can disconnect the two LED resistors or the LEDs. Then I still may have a chance. No big money involved, and Banggood have made refunds to me before, but...

walker1:
The circuit is as shown. At least that is what I make of it, and I am not all that bad at reverse engineering :blush:

I do not doubt it. That is precisely how you would expect it to be.

walker1:
But I suspected so. Arduino does not have any LEDs on Tx and RX.

Because it uses the FT232 which has the speial LED status outputs.

walker1:
The Chinese may have wanted to make a difference? No engineer nor test involved?

The difference, is the use of the cheaper interface chip. I was going to say that there is nothing wrong with the circuit, but in fact, there is as depicted. R1 should be 220 ohms, not 1k.

walker1:
I did read somewhere, that there is some license fee on the original USB interface chip.

No licence fee but more expensive and also, the company has made itself very unpopular by "doing a Sony" and many people feel as a consequence, its products are best avoided.

walker1:
And the two external pins (RX0, TX1) ARE connected directly to the 'big' chip on my board.

As they should be as you may want to use them for other purposes under certain circumstances, though you should not plan to use them for general I/O unless absolutely essential. R1 and R2 are provided so that the CH340 chip does not prevent such alternative uses (R2 is in fact, superfluous)

walker1:
Will see, if I can disconnect the two LED resistors or the LEDs. Then I still may have a chance. No big money involved, and Banggood have made refunds to me before, but...

I would advise against it. It is almost certain that you have simply been provided a board which does not have the bootloader itself loaded. This is an extra step which the particular "cottage industry" assembler has not performed in this case. You merely need another (working) Arduino to load the bootloader using Nick Gammon's instructions.

Will see, what I have. There is one other clone somewhere, I have never used.
Primitive serial interface. But I have something for that, used for PicAxe.

I may be lucky.

Otherwise some cheap programmer like this may do the trick.

I will need to make a 10 -> 6 pin conversion, though.

Well, that 'Funduino' Pro Mini worked!

It blinked at 0.5 Hz.

I managed to modify the given code and upload that. Now it blinks at 2.5 Hz! (aprox.)

But why is it so extremely hard to find the correct timing for releasing the Reset button???? :frowning:

OK, can see, that at least my 'Nano' has a caacitive reset coupling to the CH340 chip! And the 'Fun' has a similar connection to a DTP pin. My COM port may simply be too primitive? (has Rx and Tx only)

walker1:
My COM port may simply be too primitive? (has Rx and Tx only)

Please cite it (web link or perfect photo) - there most likely is a way to access the DTR.

Paul__B:
Please cite it (web link or perfect photo) - there most likely is a way to access the DTR.

This is it: PL2303HX

The DTR is probably available somewhere on that chip, but you need a very steady hand to get it!
Starting with cutting open the shrink.
In the long run it will be easier and cheaper simply to get another 'thing' with DTP or something available.
This for instance?
Or would a cheap programmer be better?

I am not sure if a programmer can be used for anything other than burning the loader :frowning: As my status says, I'm pretty new here. Processors were not this small nor powerful, when I 'fully' educated left college 35 years ago :slight_smile: (Education never stops!)

I have no idea why it is called DTP on the 'Fun' board. A typo or bad silk, maybe.

walker1:
This is it: PL2303HX

Ah yes, the five-pin wonder!

walker1:
The DTR is probably available somewhere on that chip, but you need a very steady hand to get it!
Starting with cutting open the shrink.

It is pin 2. Some of the ones with a (wrongly implemented) "RST" pinout - generally six-pin variants - can be modified by cutting a track and using a fine (Biceflux enamelled) transformer wire jumper to connect that "RST" pin correctly to the TQFP.

walker1:
In the long run it will be easier and cheaper simply to get another 'thing' with DTP or something available.
This for instance?

That would be the correct(ly designed) one. It uses the TQFP too! There are others which may have the incorrect "RST" pin, but also have the handshake pins brought out along the sides and are really easy to correct.

walker1:
Or would a cheap programmer be better?

I am not sure if a programmer can be used for anything other than burning the loader :frowning: As my status says, I'm pretty new here.

Generally, you can burn either the bootloader or the sketch from the IDE. If you use avrdude outside the IDE, you can splice the .hex files and burn them together.

walker1:
I have no idea why it is called DTP on the 'Fun' board. A typo or bad silk, maybe.

Clearly a glitch. DTP means something entirely different to me!