Arduino

How to Read the Arduino Schematic Diagram

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.

Components

Image courtesy of allaboutcircuits.com

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.

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

POWER SUPPLY

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.

See also  Automatic Water Sprinkler

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.

 

Lastly, the LED indicator circuit. Put simply, it lights the green LED up when it detects power from the 5V terminal.

 

MICROCONTROLLER

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.

 

USB

 

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.

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.

See also  LSM9DS0 As Impact Sensor

I/O

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’!

ATmega328P Pin Map: Arduino Pin Numbers vs AVR Ports

The 8-bit ATmega328P uses three I/O ports (B, C, D) but the Uno board labels its headers with friendly numbers (0–13 plus A0–A5). The mapping matters when you write fast code with direct port manipulation, when you read someone else’s pinMode in a hurry, or when you want to understand what the schematic is actually doing.

Arduino pinAVR portNotes
0 (RX)PD0UART receive
1 (TX)PD1UART transmit
2–7PD2–PD7Digital I/O. Pins 2 and 3 also handle external interrupts
8–13PB0–PB5Pin 11 is MOSI, 12 is MISO, 13 is SCK and the onboard LED
A0–A5PC0–PC5Analog input. A4 is also SDA (I2C data), A5 is SCL (clock)

Reading the schematic you’ll see references like PB5/SCK/PCINT5. Same physical pin (Arduino pin 13) wearing three hats: digital pin, SPI clock, pin-change interrupt source. This is why the LED on pin 13 flickers whenever you transfer over SPI. Not a bug.

USB-to-Serial: 16U2 vs CH340 vs FTDI on Clones

Original Arduino Unos use the ATmega16U2 as the USB bridge. Clones almost always use the CH340 from WCH or sometimes an FT232 from FTDI. They all do the same job (turn USB into a TTL serial stream the ATmega328P can talk to over pins 0 and 1) but they show up differently to your computer.

  • 16U2: appears as Arduino Uno in Device Manager. No extra driver needed on Windows 10+.
  • CH340: needs the WCH driver on older Windows. On macOS Catalina and newer, it’s already in the kernel.
  • FTDI: works out of the box on most systems. Watch for counterfeit FTDI chips that the official driver bricks.

If your board doesn’t show up as a COM port, the USB-to-serial chip is the first thing to suspect. Not the ATmega328P. The 328P never sees the USB at all.

Common Mistakes When Reading the Arduino Schematic

  1. Mixing up Vin and 5V. Vin is whatever your DC jack is supplying (7–12V typical) before it hits the regulator. Touching Vin directly with logic-level peripherals is how you fry sensors.
  2. Treating GND symbols as separate grounds. They’re all the same net. Schematic designers split them so the diagram reads cleanly across pages.
  3. Reading the ATmega328P pinout straight from the chip datasheet without translating to Arduino pin numbers. Use the pin map above.
  4. Ignoring decoupling capacitors. Every chip has them. Skipping them on a prototype board is the most common cause of “it worked yesterday” bugs.
  5. Forgetting that pin 13 doubles as SPI clock. If you’re using SPI, the onboard LED will blink with every transfer. That’s expected behavior.
See also  Ultrasonic Obstacle-Avoiding Robot
[faq][faq_q]What is shown on the Arduino Uno schematic?[/faq_q] [faq_a]The schematic shows the ATmega328P microcontroller, USB-to-serial chip (16U2 or CH340 on clones), voltage regulator, crystal oscillator, reset circuit, ICSP header, and the pin connections that map to the physical Arduino headers.[/faq_a][faq_q]Where does the Arduino Uno get its 5V power from?[/faq_q] [faq_a]From either the USB connection (regulated to 5V via the LP2985 LDO) or from the DC barrel jack/Vin pin (regulated through the NCP1117 voltage regulator). An automatic switch built around an FDN340P MOSFET and an LMV358 op-amp picks whichever source is supplying voltage.[/faq_a][faq_q]What’s the role of the crystal oscillator on the schematic?[/faq_q] [faq_a]The 16 MHz crystal (CSTCE16M0V53-R0 ceramic resonator) provides the clock signal that drives the ATmega328P at the speed Arduino code expects. Without it, the timing of millis(), delay(), and serial baud rates would all be wrong.[/faq_a][faq_q]Why are there capacitors near each chip on the schematic?[/faq_q] [faq_a]Those are decoupling/bypass capacitors. They smooth out high-frequency noise on the power rails so each chip sees a clean voltage. Skipping them often leads to flaky behavior on prototypes.[/faq_a][faq_q]Can I program the ATmega328P without the Arduino board?[/faq_q] [faq_a]Yes. Pull the chip from the socket (or use a bare 328P), wire it on a breadboard with a 16 MHz crystal, two 22 pF caps, and a 10k pullup on the reset pin. Program it via the ICSP header using a USBasp or another Arduino running ArduinoISP.[/faq_a][faq_q]What’s the difference between the Arduino Uno R3 and R4 schematics?[/faq_q] [faq_a]The R3 uses the 8-bit ATmega328P at 16 MHz. The R4 (Minima and WiFi) uses a 32-bit Renesas RA4M1 at 48 MHz with more flash and RAM, plus the WiFi variant adds an ESP32-S3. The Uno header pinout and form factor stayed the same so most shields still work.[/faq_a][faq_q]Why doesn’t my clone Arduino show up in the Arduino IDE?[/faq_q] [faq_a]Most clones use the CH340 USB-to-serial chip instead of the 16U2. Install the WCH CH340 driver from wch-ic.com, restart, and the board should appear as a COM port. If it still doesn’t show up, try a different USB cable. Some cables only have power lines, not data.[/faq_a] [/faq]

Frequently Asked Questions

What does this How to Read the Arduino Schematic Diagram tutorial cover?

Get deeper into the Arduino craft by looking into a reference design.

Can I use an Arduino Nano or Mega instead of UNO for the How to Read the Arduino Schematic Diagram build?

Yes. Nano shares the same ATmega328P and pinout. Mega has more I/O if you outgrow UNO. The code stays the same — just match the pin numbers used in the Sample Code section.

Why does my How to Read the Arduino Schematic Diagram sketch fail to upload?

Usually wrong COM port, missing CH340/CH341 driver for clone boards, or another program holding the serial port. Disconnect the board, install the driver, reselect the port, retry.

// written by Ruzell Ramirez

Ruzell Ramirez writes the Arduino, ESP32, and Raspberry Pi tutorials at Circuitrocks Learn. Background in embedded electronics and microcontroller projects, with a soft spot for schematic-level explanations and beginner-friendly project builds. Based in the Philippines. When a tutorial here goes deep on power-supply quirks or USB-to-serial gotchas, that's usually him talking.

Leave a comment