Arduino UNO needs a dedicated programming chip, and you can see this on every development board. Some of them use FTDI programmer, CH340 and 16U2 programming chips. The original one is provided by Atmel itself. But today we are going to design a compatible chip. So that we can program our Arduino externally.


This is important because some of the Arduino boards like pro mini and Nano, have driver problems. Yet I have the solution but Usb to serial programmers are very widely used in the programming IT engineering sector.



This single name has a variety of ICs packages, Here is the list. The available packages are with external crystal, Internal crystal, RTS and DTR pins, ONLY RTS pin. Without DTR pins and more.

Here you can find the datasheet to all of them


But today our focus is on ch340g, which is easily available in market and used with a lot of clone Arduino development boards.

Components required:

1) Ch340g

2) 12MHz crystal

3) 1k resistors

4) 100nf capacitors

5) 0805 package led

6) Usb

7) Power system

Circuit diagram:


Circuit description:

The CH340G programmer do not have internal crystal oscillator for clock. As mentioned in the datasheet we have to give a proper 12MHz signal on the clock input. And this is supplied with 5v/3.3 optional power. TX and RX pins are used to make serial connection between the microcontroller and this programmer IC. Tx is usually connected with RX and RX is connected with TX, But we have to place 1k resistor between those TX-RX pins to lower down the impact of signal. DTR pin is used to reset the microcontroller when uploading the sketch, here a 100nf capacitor is joined in series with DTR pin and reset. TO avoid and disturbance and DC signal.

Pcb designs:

Download Gerber files from here