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