How to Read the Arduino Schematic Diagram

Get deeper into the Arduino craft by looking into a reference design. In here I will get into details with the basic arduino schematic diagram using one of their more popular development board, the Arduino UNO.

So what is an Arduino? It can basically mean two things:

One, it is an open-source hardware and software company that creates circuit boards that makes microcontrollers easier to use. Open-source means its source code and hardware design is freely available for anyone to modify. With the code and design free, public collaboration can develop the product way faster than any proprietary product. The only downside of giving the public access is that it gives birth to competition. It allows clones. This is the also the reason why we can only do a diagram analysis of Arduino, and not a Raspberry Pi.

Two and the more popular use of the term is that the board itself is called an Arduino.

There are a lot of tutorials for Arduino in the internet. Nearly all of them explains how to make it work but, how does it work? A good understanding of the hardware design will help you learn how to incorporate them on your machines, small-scale to large.

Here we have the schematic diagram of the latest revision of Arduino UNO. Don’t worry if you can’t see it much right now. We’ll chop it up after and analyze every section according to their function.


Image courtesy of

Here we can visibly identify each component on board, besides the obvious Atmega328P. Depending on the IC package, these components can appear differently. If you want to learn more about IC packages. Visit this SparkFun webpage.

See also  Using AT commands on the ESP8266

We will divide the schematic diagram into four major sections: Power Supply, Main Microcontroller, USB bridge and lastly the Input and Output.


This section of the schematic diagram powers our Arduinos. For this, we can use either DC power supply or USB connection as a source. To trace how the circuit works, let us start with the 5V linear voltage regulator NCP1117ST50T3G. This regulator has a pretty straightforward function. It takes voltage input up to 20V and converts it to 5V. The Vin of this regulator is connected to the DC power supply via the M7 diode. This diode provides

reverse polarity protection, which means current can only flow from the power supply to the regulator and not the other way around. There are two kinds of capacitors used in this circuit. One, the polarized capacitors PC1 and PC2. They are used to filter supply noise. Two, the 100nF capacitor on the far right side acting as a decoupling capacitor. Decoupling capacitors “disconnects” circuit elements to reduce its effect on the rest of the circuit. Also, notice the +5V terminals circled in blue? You can see them around the schematic diagram. That is basically a connection. Designers often use these terminals so that they can fit their design in the least amount of pages. Labels like Vin and GND also works the same.

Choosing the Power Source

If you use the USB source, power will enter through the USBVCC section into a P-channel MOSFET FDN340P. Explaining briefly, MOSFETS are transistors that are normally closed (connected) until a certain amount of voltage triggers the gate. Consequently, triggering the MOSFET opens the transistor (disconnected). Using this characteristic, a comparator is connected to the gate terminal of the MOSFET to function as a switch mechanism. If you use the USB source, it will just power up the 3.3V regulator since the MOSFET is normally connected. If you plug a dc supply, the LMV358 op-amp will produce a high output triggering the gate of the MOSFET, disconnecting the USB source from the 3.3V regulator. So if both are plugged, the board will use the DC power supply.

The 5V terminal here indicates a connection to the circuit powered by the DC power supply earlier. This means that the 3.3V regulator is powered by whichever powers the circuit.



This section is the main microcontroller circuit of the Arduino UNO. It has the ATmega328P microcontroller. We won’t go into details with the microcontroller’s specs. The only thing you need to know is that it is an 8-bit device which means it can handle 8 data lines simultaneously.

These three are the black headers you see on board. As you can see, the TX and RX from the ATmega16U2 are connected into pins 0 and 1. The IOL and IOH headers are for pins 0 to 13 in addition to the I2C pins, GND, and AREF.

There’s a CSTCE16M0V53-R0 16MHz ceramic resonator connected to the oscillators of the microcontroller. This circuit serves as the clock.

The capacitors here has the same function with the decoupling capacitors in the previous section.



The ICSP (In-Circuit Serial Programming) Header is used to program the ATmega328P using an external programmer ( e.g. Raspberry Pi ). Usually, we only use this for remote programming or for flashing of the microcontroller for the first time. We don’t use this way of programming often since we can already do it via USB, which we will discuss in the next section.




This section is the USB to UART bridge. Since the main microcontroller, ATmega328, does not have a USB transceiver, we use the ATmega16U2 microcontroller as a bridge to translate the USB signals from your computer to UART, the communication protocol the ATmega328 uses.

See also  Controlling Servo Movement with a Joystick Using Arduino Uno

This is basically the same with the main microcontroller section. This MCU has capacitors, an ICSP header and a crystal as well.

These RN3 resistors are termination resistors. They are used so that the total impedance of the line matches with the USB specification. It slows the speed of the USB pulses lessening EMI interference. On the other hand, Z1 and Z2 are varistors. They are used for ESD (Electrostatic Discharges) protection.

When the ATmega 16U2 transmits or receives a signal from the ATmega 328P, yellow LEDs light up. We can also see here the two lines where the two microcontrollers communicate.


Image courtesy of MarcusJenkins

Quite refreshing to see the board again right? By now, you should be able to appreciate how these are connected to the several electronic components in our schematic diagram. We don’t need to explain them anymore. This is an article for the basic arduino schematic diagram after all.

If you have comments or suggestions, feel free to write below.  Get updates on technical articles like this by staying tuned on Learn. I did a test on an TFT LCD previously, you might want to check it out here. Also, I did a tad for the season of gift giving. Check this link if you want to try it out as well. Keep circuit rockin’!

Leave a Reply