Arduino Nano CH340 – schematics and details

Because of substantial price difference, many users are using Chinese clones of the genuine Arduino development boards. Although in most cases the functionality is similar or even identical to the original, there may be some differences. Unfortunately, quite often there is virtually no schematics, datasheets or detail description available. This is a case for a Chinese clones of the Arduino Nano R3 board as well.

After some research, measurements and detail inspection of the boards I was able to get together all circuits.  Below you will find both schematics and few technical comments to the Nano CH340 R3 development board. I have purchased several Nano 3.0 CH340 clones in different orders from several Asian vendors and they are all almost identical, so it seems that this type of the Nano 3.0 board is widely used.

Nano CH340 R3 board description

nano_ch340_1The Nano CH340 R3 board is similar to the genunine Arduino Nano board, described on the original Arduino website here . The board uses same type of Mini-B USB connector, same side connectors and 6-pin SPI connector, as well as the Atmel ATmega328P microcontroller in the 32-TQFP package. There are also 4 LEDs – Power LED, LED connected to digital output pin D13, and two LEDs showing status of the RxD and TxD communication lines.

nano_ch340To provide +5.0 V Vcc power supply, the board uses LM1117-5.0 SOT-223 linear stabilizer 5.0 V (compared to original UA78M05), with slightly higher current (800 mA vs. 500 mA of original UA78M05) and lower drop-out voltage (typ. 1.2 V vs. 2.0 V for UA78M05).

To facilitate the USB communication and to provide 3.3 V output, the board uses USB communication circuit CH340 in SOP-16 package (instead of FT232RL used on the genuine Nano R3 board), manufactured by several Chinese companies. The CH340 IC requires installation of driver software, which was covered and explained many times already, so I will not repeat this information. With installed driver, communication with Arduino (IDE) is clear and straightforward.

To switch between VIN power supply (6-12 V) and USB power supply, the board includes a Schottky diode with low forward voltage. Most of the boards I got seems to be using the Vishay Semi SD101CWS diode (Vf 0.6 – 0.8 V at 20 mA, S4 SMD marking code).

Differences to the genuine Arduino Nano R3 board

  • For both ATmega328P and CH340, the board uses 3-pin SMD ceramic resonators with internal load capacitors, so no external capacitors for oscilating circuit are needed not they are used (although there are soldering pads provided next to the CH340 resonator).
  • Rx and Tx LEDs are connected directly to the ATmega328P outputs PD0 and PD1, so keep that in mind in case those two pins will be used for something else than USB communication (on genuine Nano R3 board the Rx and Tx LEDs are driven by additional outputs on the FT232RL chip).
  • nano_ch340_3v3The CH340 chip includes the 3.3 V LDO voltage regulator, which can supply up to 25 mA. There is no refence in the original CH340 datasheet or elswhere on the internet, so I measured the supplied 3V3 voltage directly.
    With no load, the 3V3 pin voltage was 3.28 V. With load up to 25 mA the voltage dropped to 3.18-3.22 V (on different boards); however at 30 mA load the voltage dropped to 3.10 V and further to 2.85 V at 40 mA.


Finally, below is a link to schematics of the Nano CH340 R3 board in pdf. Feel to copy and share as you like, providing you will attach the copyright info “copyright”. Please note that previously there was an error in connection of pins 2&3 on CH340 – on rev. 1 of the file this is corrected (CH340 (3) Rx pin is connected to Tx LED and (31) Tx pin of ATMega 328P, while CH340 (2) Tx pin is connected to Rx LED and (30) Rx pin of ATMega 328P – thanks Jindra Fučík to pointing this out).

nano_ch340_schematics rev1

Li-ion battery testing, #2

Please see the video recording attached Li-ion capacity test
– multimeter on the left measuring true voltage on Li-ion cell
– clock in the middle measuring time
– multimeter on the right measuring current through the Li-ion cell
– power resistor 6.8 ohm prepared for discharge
– power supply setting up both voltage and current limit.

Charging voltage was set to 4.25 V, charging current was limited to 500 miliAmps. Charging started at 0:00:21 video time. Li-ion cell will be charge according to standard specifications, with constant current of 500 mAmps until cell voltage reaches 4.25 V, after that cell is charged with constant voltage 4,25 V until charging current drops down below 100 mAps.

After 75 minutes, at 1:12:37 2 charging current dropped to 90 miliAps at 4.20 V, charging was stopped.

At 1:13:29 of video time Li-ion cell was connected to discharging resistor 6,8 Ohm / 10 W. Battery voltage was 3.55 V, discharging current 390 mA (discharging resistance is combination of resistor value of 6.8 ohm and resistance of cabling, multimeter internal current-sensing resistor and resistance on contacts – alltogether approximately 9.0 ohm). Timer was started.

Discharging current and battery voltage was measured and recorded every 5 minutes. After 53 minutes, battery voltage dropped to 2.75 V, so discharging was stopped (please note that standard end discharge voltage is 3.0 V, because discharging below 3.0 V will permanently damage the battery, however this was requested in seller´s testing protocol).

For every 5 minute interval, battery capacity [in miliAhs] = current [miliAmps] x battery voltage [V] / nominal voltage 3,7 V / 12 [60 minutes / 5].

0 -5      min  390 mA  /  3,55 V  =  31 mAh
5 -10    min  400 mA  /  3,62 V  =  32 mAh
10 – 15 min  400 mA  /  3,62 V  =  32 mAh
15 -20 min   400 mA  /  3,58 V  =  32 mAh
20 -25 min   390 mA  /  3,55 V  =  31 mAh
25 – 30 min   390 mA  /  3,53 V  =  31 mAh
30 – 35 min   390 mA  /  3,49 V  =  30 mAh
35 – 40 min   390 mA  /  3,48 V  =  30 mAh
40 – 45 min   380 mA  /  3,46 V  =  29 mAh
45 – 50 min   360 mA  /  3,23 V  =  26 mAh
50 – 53 min   360 mA  /  3,23 V  =  15 mAh
53 min 300 mA / 2,75 V stopped.

Total capacity = 323 mAh


Li-ion 18650 6000 mAh capacity test

330 mAh real value :(((

18650Li-ion 18650 rechargeable cells, advertised as 6000 mAh (in the product specifications even as 8800 mAh), were purchased on from Happy Cross-border On-Line Shopping store, for USD 14.14 for 12 pieces, including shipping ( see here ).

6000 mAh capacity seems to be quite high for the price, the cell is also very light for the declared capacity (just 26 grams), so I decided to test it´s real capacity.

In simplicity, for a cell with 3.7 V standard voltage, capacity of 6000 mAh means that it should give a current of 6000 mA ( = 6 Amps) for 1 hour, or 1000mA for 6 hrs. Well, let´s see…

In short, I expected that the capacity would be less than 6000 mAh. Honestly, I would be happy with capacity somewhere around 3000 mAh, which is just 50% of the declared value. Even with 1500 mAh the cell could be still useful. However, on average the measured capacity was around 330 mAh, with some cells even below 300 mAh – that is just 5% of the declared value. In fact, this would be quite low even for the smallest AAA Nickel-metal hydride cell, which is almost 5 times smaller. Clearly counterfeit product :(

It is also important to mention that at standard maximum discharge current of 2 C rated for 6000 mAh cell, that is 12 Amps, this cell would overhat and explode after few seconds!!


IMG_29698 pcs of 18650 Li-ion 6000 mAh rechargeable cells were fully charged using standard 230 V AC 2×18650 charger until full voltage of 4.2 V and drop of charge current below 10 mA. Initial battery voltage for each cell, under no load condition, is listed in table below. After that each cell was plugged into a 18650 battery holder and discharged over a calibrated power resistor.

First two cells were discharged to a 3.3 ohm power load, which for 3.7 V cell voltage equals to approx 1.10 A discharge current. For capacity of 6000 mAh this represents less than 0.2 C, so the battery should last for at least 5 hours. Discharge current is not that high, this is a standard discharge condition for most Li-ion cells of this capacity. However, on the tested cells the voltage dropped almost immediately, within 5 seconds, under 2.5 V, which would soon permanently damage the battery, so the discharge was stopped. Tried this on second unit with the same result. Clearly, the cell does not have 6000 mAh and definitely would not give a current of 1 A for more than just a few seconds…

After that, remaining 6 cells were tested with smaller load –10 ohm power resistor (measured value 10.06 ohm), which for 6000 mAh cell represents current of approx 0.07 C – very considerate and slow discharge.

lion test 1During discharge, I used an Arduino Uno to continually measure battery voltage. Discharge was stopped and buzzer connected to Arduino output started to beep, when the tested cell reached a cut-off voltage of 3.3 V. For standard 3.7 V Li-ion cell this would represent depletion of 98% of the battery capacity. To measure voltage values close to limit of the Arduino analog input, I used a voltage sensor module with transfer ratio of 1:5. During programming, measurement constant (value of 1130) was set-up during calibration using 3.3V source and precise volmeter (Proskit MT-1710), so the program will report true voltage.

Voltage values were printed every 30 seconds into a serial console window and than transferred to Excel spreadsheet. screenFor every 30 second interval, discharge current was calculated using the Ohm´s law, as ID – UBATT [V] / 10.06 [ohm] . After that, for every 30-second interval power dissipation value was calculated as UBATT * ID / 120 * 1000[mAh] / 3.7[V]  (value of 120 converts Ah (1 hour load) into 30 s intervals; value of 1000 converts Ah into mAh; value of 3.7 V converts capacity value from actual voltage to standard Li-ion voltage of 3.7 V).


Table below shows the summary result. First two cells were not considered for calculation of the average cell capacity, because at discharge current just over 1 Amp they would die or explode after 30 seconds :(

For remaining 6 cells, an average capacity was 335 mAh, ranging from 290 to 410 mAh. 20 times less than what does the advertising say. DO NOT BUY!!!

Actual testing data in Excel spreadsheet can be downloaded here .

Cell 1 2 3 4 5 6 7 8 Avg.
Initial voltage 4.28V 4.34V 4.18V 4.20V 4.22V 4.12V 4.20V 4.14V 4.10V
Discharge current 0.2C 1.25A 0.2 C
0.07 C
Discharge time, [min] 0:05 0:05 61 74 62 59 56 53 61
Total capacity, [mAh] N/A* N/A* 334 408 341 317 314 290 335

Arduino program

Very simple one :) Setup() function starts communication and defines buzzer output pin. Loop() function measures voltage on analog input, converts it to real value, prints out to serial console, checks for undervoltage and than waits 30 seconds for next cycle. Value of 1130 was set up during calibration, so the printed voltage matches the actual voltage on analog input measured by lab volmeter.

void setup() {
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);

void loop() {
   int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1130 * 5);
if (voltage < 3.3)
digitalWrite(2, LOW);